【物联网实战项目】STM32C8T6+esp8266/mqtt+dht11+onenet+uniapp

海哥  论坛元老 | 2024-6-13 21:03:07 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1572|帖子 1572|积分 4716

一、实物图



前端uniapp效果图(实现与onenet同步更新数据)


起首要确定接线图和接线次序:
1、stm32c8t6开发板毗连stlinkv2下载线
ST-LINK V2STM323.3V3.3VSWDIOSWIOSWCLKSWCLKGNDGND 2、ch340串口毗连底座(注意RXD和TXD的毗连方式)
CH340底座3.3V3.3VRXDTXDTXDRXDGNDGND 3、https://open.iot.10086.cn/console/device/manage/devs
在onenet官网创建装备,名字地域随便写,创建成功后点击装备详情页面

4、产品开发栏举行添加属性

附上main.c一部分代码文件
  1. //单片机头文件
  2. #include "stm32f10x.h"
  3. //网络协议层
  4. #include "onenet.h"
  5. //网络设备
  6. #include "esp8266.h"
  7. //硬件驱动
  8. #include "delay.h"
  9. #include "usart.h"
  10. #include "led.h"
  11. #include "key.h"
  12. #include "dht11.h"
  13. #include "oled.h"
  14. //C库
  15. #include <string.h>
  16. #define ESP8266_ONENET_INFO                "AT+CIPSTART="TCP","mqtts.heclouds.com",1883\r\n"
  17. void Hardware_Init(void);
  18. void Display_Init(void);
  19. void Refresh_Data(void);
  20. u8 temp,humi;
  21. /*
  22. ************************************************************
  23. *        函数名称:        main
  24. *
  25. *        函数功能:       
  26. *
  27. *        入口参数:        无
  28. *
  29. *        返回参数:        0
  30. *
  31. *        说明:               
  32. ************************************************************
  33. */
  34. int main(void)
  35. {
  36.        
  37.         unsigned short timeCount = 0;        //发送间隔变量
  38.        
  39.         unsigned char *dataPtr = NULL;
  40.        
  41.         Hardware_Init();                                //初始化外围硬件
  42.        
  43.         ESP8266_Init();                                        //初始化ESP8266
  44. //        UsartPrintf(USART_DEBUG, "Connect MQTTs Server...\r\n");
  45.         OLED_Clear(); OLED_ShowString(0,0,"Connect MQTTs Server...",16);
  46.         while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))
  47.                 DelayXms(500);
  48. //        UsartPrintf(USART_DEBUG, "Connect MQTT Server Success\r\n");
  49.         OLED_ShowString(0,4,"Connect MQTT Server Success",16); DelayXms(500);
  50.         OLED_Clear(); OLED_ShowString(0,0,"Device login ...",16);
  51.         while(OneNet_DevLink())                        //接入OneNET
  52.         {
  53.                 ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT");
  54.                 DelayXms(500);
  55.         }
  56.                
  57.         OneNET_Subscribe();
  58.        
  59.         Display_Init();
  60.         while(1)
  61.         {
  62.                 if(++timeCount >= 100)                                                                        //发送间隔5s
  63.                 {
  64.                         DHT11_Read_Data(&temp,&humi);
  65.                        
  66. //                        UsartPrintf(USART_DEBUG, "OneNet_SendData\r\n");
  67.                         OneNet_SendData();                                                                        //发送数据
  68.                        
  69.                         timeCount = 0;
  70.                         ESP8266_Clear();
  71.                 }
  72.                
  73.                 dataPtr = ESP8266_GetIPD(0);
  74.                 if(dataPtr != NULL)
  75.                         OneNet_RevPro(dataPtr);
  76.                
  77.                 Refresh_Data();
  78.                
  79.                 DelayMs(10);
  80.        
  81.         }
  82. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

海哥

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表