STM32F103RCT6(Mini板)通過MQTT協議上傳溫溼度數據至OneNET雲平臺並控制LED燈


簡介: ESP8266通過MQTT協議將溫溼度數據傳輸至OnenNet雲平臺
關鍵詞: OneNet、ESP8266、DHT11、MQTT、LED

1. 相關連接:

  1. github(源碼): https://github.com/Mbwide/DHT11_ToOneNetByMqtt
  2. CSDN:(圖文解析):
  3. Bilibili(視頻解析):https://www.bilibili.com/video/BV1Vi4y1w7U1

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. 數據流在這裏插入圖片描述

  2. APP應用管理
    在這裏插入圖片描述

  3. 串口數據
    在這裏插入圖片描述

  4. 源碼簡要解析
    在這裏插入圖片描述

    • 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"         //自己的鑑權信息(創建設備的時候設置)
    

    在這裏插入圖片描述

  2. wifi.h

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

    在這裏插入圖片描述

  3. mqtt.c

    sprintf(ServerIP,"%s","183.230.40.39");              //構建服務器域名(ONENET的)
    ServerPort = 6002;                                   //服務器端口號6002
    

    根據平臺地址列表填寫,這裏是mqtt協議
    在這裏插入圖片描述在這裏插入圖片描述



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章