<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/aly.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
前言
這一節使用真實的設備接入阿里雲物聯網平台,然后使用自定義topic實現數據上報和下發.
測試(ESP8266)
1.打開工程
2.根據自己的設備修改如下信息
3.設置連接的路由器
4.別忘了
(STM32) PA3 -- TX (WiFi)
(STM32) PA2 -- RX (WiFi)
5.下載后測試(可以觀察日志口)
① 發送連接MQTT協議
② 訂閱主題:/a1m7er1nJbQ/Mqtt/user/get (阿里雲規定的自定義主題)
③ 這是OTA遠程升級信息,這是因為我測試過遠程升級,大家應該沒有.
④ 每隔一段時間發送溫濕度數據給阿里雲服務器
發布的主題:/a1m7er1nJbQ/Mqtt/user/update
消息:{"data":"TH","bit":1,"temperature":30,"humidity":68}
6.用戶可以在日志服務里面看到上報的數據
7.下發數據給設備
可以發送控制繼電器的協議控制繼電器
{"data":"switch","bit":"1","status":"1"} //控制繼電器吸合
{"data":"switch","bit":"1","status":"0"} //控制繼電器斷開
測試(Air202)
1.打開工程
2.根據自己的設備修改如下信息
我還是使用的同一台設備的信息.
在阿里雲上申請了一台設備以后,就相當於阿里雲平台給咱分配了一個MQTT客戶端
咱可以拿着這個客戶端的信息隨意用本地的設備去連接(同一時間只能一個使用).
3, 別忘了用杜邦線連接:
(STM32) A3 --- TX (Air202)
(STM32) A2 --- RX (Air202)
4.下載后按照上面的測試WiFi模塊步驟測試即可
源碼說明
1.首先大家只要明白這就是一個MQTT客戶端連接通信而已.
只要是MQTT連接,其實也就那幾個參數
服務器IP地址,端口號,ClientID,用戶名,密碼,訂閱/發布的主題.
只不過在阿里雲平台上面把各種信息都固定了,
2.控制WiFi或Air202連接通信的程序基本上完全一樣
1.WiFi需要連接路由器
2.然后還有一個是控制連接TCP服務器的指令不一樣.
我就拿WiFi代碼為例子說明一下通信過程
1.根據阿里雲的說明組合下IP地址,ClientID,用戶名,密碼,訂閱的主題,發布的主題,組合計算密碼
2.連接TCP服務器(MQTT服務器),發送MQTT連接協議
3.連接成功以后執行連接成功回調函數,訂閱主題
4,接收處理消息
5.發布消息
結語
這節演示了下設備使用自定義Topic實現數據上報和數據下發.
不過自定義Topic當前並沒有什么實際的應用.
后面章節使用物聯網平台提供的其它功能以后便會有實際的應用.