目录

STM32F103RCT6Mini板通过MQTT协议上传温湿度数据至OneNET云平台并控制LED灯

STM32F103RCT6(Mini板)通过MQTT协议上传温湿度数据至OneNET云平台并控制LED灯

目录

简介: ESP8266通过MQTT协议将温湿度数据传输至OnenNet云平台

关键词: OneNet、ESP8266、DHT11、MQTT、LED

1. 相关连接:
  1. github(源码):
  2. CSDN:(图文解析):
  3. Bilibili(视频解析):
2. 具体功能:
  1. DHT11采集环境温湿度数据,ESP8266模块通过MQTT协议将温湿度数据传输至OnenNet云平台
  2. OneNET可以通过云平台远程控制LED灯的亮灭
  3. 串口显示相关数据信息
3. 硬件环境:
  1. 正点原子STM32F103RCT6(正点原子MiniSTM32)
  2. DHT11温湿度传感器
  3. ESP8266-01S无线模块
4. 云平台环境配置:
  1. 云平台配置:

    • OneNET控制台—全部产品服务(多协议接入,选MQTT旧版)—添加产品—进入产品(记住产品ID)—设备列表—添加设备(记住鉴权信息)—创建完成(记住设备ID)
  2. 云平台应用设置:

    • 添加应用—编辑应用—组件库中添加折线图和开关
    • 折线图(数据上传成功后进行配置): 选择数据流 — 选择设备—数据流选择要显示的数据(这里选择温度,temperature)
    • 开关(数据上传成功后进行配置): 选择数据流 — 选择设备—数据流选择要显示的数据(这里选择LED,ledFlag)—开关开值(LEDON)—开关关值(LEDOFF)—EDP不填
5. 接线:
  1. ESP8266-01S(5根线)

    • PA2 RX
    • PA3 TX
    • PA4 复位
    • 3V3 VCC
    • GND GND
  2. DHT11(3根线)

    • PA6 DATA
    • 3V3 VCC
    • GND GND
  3. LED

    • PD2 LED1
6. 功能展示:
  1. 数据流 https://i-blog.csdnimg.cn/blog_migrate/182664753a564b48663c0f8566ea6867.png

  2. APP应用管理

    https://i-blog.csdnimg.cn/blog_migrate/e5f127a22a5f26dc1c65264c2c4b7c82.png

  3. 串口数据

    https://i-blog.csdnimg.cn/blog_migrate/2204616875366ffdda56a23ec2ae1e91.png

  4. 源码简要解析

    https://i-blog.csdnimg.cn/blog_migrate/20ddec6e8f24eceefabb17b179411c93.png

    • stm32f10x_it.c:中断处理函数
    • usart1.c:与上位机通信
    • usart2.c:与ESP8266通信,串口2接收中断处理上位机发送来的数据
    • timer2.c:定时器2中断用来发送温湿度数据,10S
    • timer3.c:定时器3中断用来发送心跳包(ping,用于保持和服务器连接,长时间没给服务器发送数据会被踢下线),2s和30s两种模式
    • timer4.c:将串口2接收到的服务器数据依次存放在MQTT接收缓存数组中,50ms
    • control.c:控制LED灯,并且发送LED灯开关信号
7. 要修改的的地方:
  1. mqtt.h :

    #define  PRODUCTID      "393773"          //自己的产品ID
    #define  DEVICEID       "660024974"       //自己的设备ID 
    #define  AUTHENTICATION  "123456"         //自己的鉴权信息(创建设备的时候设置)
    

    https://i-blog.csdnimg.cn/blog_migrate/5509fccfb8db3f824a2e121be7859ed7.png

  2. wifi.h

     #define SSID   "PPP"                     //自己的路由器名称
     #define PASS   "qaz123qaz"               //自己的路由器密码
    

    https://i-blog.csdnimg.cn/blog_migrate/1109f76047fbb2bdd464ab972d00376d.png

  3. mqtt.c

    sprintf(ServerIP,"%s","183.230.40.39");              //构建服务器域名(ONENET的)
    ServerPort = 6002;                                   //服务器端口号6002
    

    根据平台地址列表填写,这里是mqtt协议

    https://i-blog.csdnimg.cn/blog_migrate/d721554d38e1618c59a9cfd14450f24d.png https://i-blog.csdnimg.cn/blog_migrate/1f8bb80d55e9f590dfa1574d82063b20.png