201-STM32F103+EC200(移遠4G Cat1)基本控制篇(阿里雲物聯網平臺)-裝置使用一機一密方式連線雲平臺,並使用物模型Topic上報溫溼度資料
阿新 • • 發佈:2022-03-16
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/EC200/aliyun.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
說明
這一節咱們使用平臺提供的物模型Topic把溫溼度資料展示在平臺上
為了是這一節可以單獨使用!故和前面有內容重複.
這一節是在 002-STM32+EC200使用MQTT+SSL加密方式接入阿里雲物聯網平臺(不驗證伺服器證書)
章節的基礎上增加了訂閱主題和釋出溫溼度訊息(使用物模型主題);
注意:如果使用者已經看了前面的 關於阿里雲物聯網平臺物模型Topic 章節,不需要在平臺上重複新增溫溼度功能!
給產品新增上溫溼度功能
1.點選產品,檢視
2.各個版本不一樣,阿里雲總是在更新.....
選擇功能定義 點選編輯草稿
3.新增自定義功能
4.新增一個溫度
使用者請先按照我下面的填寫,待熟悉以後再自己自定義
識別符號是 temp,咱通訊的時候作為溫度的欄位
5.再新增一個溼度
使用者請先按照我下面的填寫,待熟悉以後再自己自定義
識別符號是 humi,咱通訊的時候作為溼度的欄位
6.提交
7.回到裝置裡面
使用微控制器裝置測試
1.安裝好模組
微控制器通過串列埠2和GPRS模組通訊; 微控制器PA8引腳作為復位模組使用
(微控制器)PA2 ---- (EC200)RX;
(微控制器)PA3 ---- (EC200)TX;
(微控制器)PA8 ---- (EC200)RST
2.開啟這節的微控制器程式
3.使用微控制器串列埠1列印串列埠日誌(115200)
4.修改為阿里雲的裝置引數.
5.檢視日誌
連線上伺服器以後,每隔一段時間上報溫溼度資料
6.檢視網頁端
程式說明
1,串列埠2接收模組資料的時候,單獨使用一個快取,快取了TCP接收的資料
2.整體概況
①:控制模組連線TCP伺服器(MQTT伺服器)
②:計算MQTT密碼
③:MQTT訊息處理封裝包(快取管理,支援訊息等級0,1,2)
④:使用Mbedtls裡面的sha1或者md5 計算密碼檔案
3.初始化MQTT,註冊相應的回撥函式
我編寫的包是以註冊回撥函式的形式使用.
4.先使用TCP連線上TCP伺服器(MQTT伺服器就是TCP伺服器嘛)
5.連線上TCP以後,傳送連線MQTT協議
6.傳送連線協議給伺服器以後,如果伺服器返回連線成功訊息,便會呼叫MQTT連線成功回撥函式
在連線成功回撥函式裡面組合訂閱的物模型主題,並執行api函式訂閱; 組合釋出的物模型主題
7.連線上了以後就輪訓mqtt_send_function函式
咱們後面呼叫訂閱,釋出的函式的時候, 資料都會儲存在快取裡面, 然後通過輪訓 mqtt_send_function函式,把MQTT的資料傳送出去
只要是判斷連線上了MQTT伺服器了, 使用者可以在任意地方呼叫訂閱,釋出的函式
8.接收訊息
連線MQTT成功以後收到的伺服器傳送的資料需要讓 mqtt_read_function函式處理, 該函式內部會處理訊息並呼叫相應的回撥函
9.輪訓傳送溫溼度資料給伺服器