找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1995|回复: 1
打印 上一主题 下一主题
收起左侧

STM32单片机多功能智能插座设计

[复制链接]
跳转到指定楼层
楼主
ID:532517 发表于 2020-2-9 20:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本次设计采用了32单片机来完成,真正的完成了电能的采集与管理

单片机源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "usart.h"
  4. #include "usart3.h"
  5. #include "esp8266.h"
  6. #include "string.h"
  7. #include "timer.h"
  8. #include "led.h"
  9. #include "adc.h"
  10. #include "lcd.h"
  11. /*
  12. 项目的主要内容:STM32配合ESP8266模块与服务器数据交互

  13. ESP8266的连接:USART3(PB10、PB11)

  14. 如何判断数据接收完全?
  15. 1、出现了换行符;
  16. 2、如果超过10ms了都没有下一条数据(TIM7来进行10ms的定时)。
  17. */


  18. int main(void)
  19. {                        char a[15];
  20.   float k,kk;
  21.                   float w;
  22.         u8 * m="zhinengchazuo";
  23.   u16 adcx;
  24.         float temp;
  25.         delay_init();                     //延时函数初始化          
  26.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级

  27.         uart_init(115200);                 //串口初始化为115200
  28.         //LED_Init();                             //LED端口初始化
  29.         LCD_Init();                                
  30.         Adc_Init();                                  //ADC初始化

  31.         POINT_COLOR=RED;//设置字体为红色
  32.         LCD_ShowString(60,50,200,16,16,m);       
  33.         //LCD_ShowString(60,70,200,16,16,"信通学院");       
  34.         //LCD_ShowString(60,90,200,16,16,"智能插座");
  35.         LCD_ShowString(60,110,200,16,16,"2019/12/9");       
  36.         //显示提示信息
  37.         POINT_COLOR=BLUE;//设置字体为蓝色
  38.         LCD_ShowString(60,130,200,16,16,"ADC_CH0_VAL:");             
  39.         LCD_ShowString(60,150,200,16,16,"         V :0.000V");          
  40.         LCD_ShowString(60,170,200,16,16,"         W :0.000W");         

  41.         //delay_init();                                             //延时函数初始化          
  42.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                         //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

  43.         //uart_init(115200);                                         //串口初始化为115200
  44.         usart3_init(115200);                                         //串口初始化为115200
  45.         LED_Init();
  46.          
  47.         esp8266_start_trans();                                                        //esp8266进行初始化
  48.        
  49.         while(1)
  50.         {
  51.                 if(USART3_RX_STA&0xf000)
  52.                 {
  53.                        
  54.                 adcx=Get_Adc_Average(ADC_Channel_1,10);
  55.                 LCD_ShowxNum(156,130,adcx,4,16,0);//显示ADC的值
  56.                 temp=(float)adcx*(3.3/4096);
  57.                 adcx=temp;
  58.                 w=adcx*4;
  59.                 LCD_ShowxNum(156,150,w,1,16,0);//显示电压值
  60.                 temp-=adcx;
  61.                 temp*=1000;
  62.                 LCD_ShowxNum(172,150,temp,3,16,0X80);
  63.                
  64.                 kk=(float)temp*(3.3/4000);
  65.                 adcx=kk;
  66.                 k=w/2;
  67.                 LCD_ShowxNum(156,170,k,1,16,0);//显示电压值
  68.                 kk-=adcx;
  69.                 kk*=1000;
  70.                 LCD_ShowxNum(172,170,kk,3,16,0X80);
  71.                
  72.                 delay_ms(250);       
  73.                   
  74.                        
  75.                         printf("USART3_RX_BUF=%s\r\n",USART3_RX_BUF);
  76.                         sprintf(a,"%s",USART3_RX_BUF);
  77.                         printf("a=%s",a);
  78.                
  79.                         if(strstr((const char*)a,"on"))   GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  80.                         if(strstr((const char*)a,"off"))  GPIO_SetBits(GPIOB,GPIO_Pin_5);               
  81.                          USART3_RX_STA=0;
  82.                 }
  83.        

  84.         }
  85. }
复制代码

所有程序51hei提供下载:
设计程序代码.7z (235.75 KB, 下载次数: 23)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2020-2-10 01:53 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表