<!-- <p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLAir724UGA/hwy.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p> -->
前言
這節測試下使用STM32+Air724UG 和 Android 和 微信小程序 接入華為雲物聯網平台
當前的各種物聯網平台整體思想是提供一個網頁端讓用戶去注冊設備
這個設備就對應一個MQTT客戶端,然后把這個設備的信息放到單片機/APP/微信小程序上使用.
單片機/APP/微信小程序等就作為了客戶端接入了物聯網平台.
物聯網平台應該說是對設備進行管理的平台.
開通物聯網平台
自行注冊登錄和實名認證.
1.產品 -- IOT物聯網 -- 設備接入 IoTDA
2.立即使用
創建產品和設備
點擊確定保存下設備ID和設備秘鑰
這是我的
現在開始找MQTT的各個參數
1.說明
首先記住哈,在平台上注冊一個設備,其實就是生成一個MQTT的客戶端信息.
咱呢拿着這個信息就可以接入到它的MQTT服務器上.
然后MQTT的信息無非就是:
IP地址, 端口號, ClientID, 用戶名, 密碼
然后通信的時候還需要知道訂閱發布的主題.
2,找找IP地址
https://support.huaweicloud.com/devg-iothub/iot_01_2127.html
所以我的MQTT服務器的IP地址就是
a160b63047.iot-mqtts.cn-north-4.myhuaweicloud.com
3,端口號
上面已經說了,走普通的連接是1883, 走SSL加密是8883
4,接着找,ClientID, 用戶名, 密碼
鼠標點擊下打開在線計算工具
把第一開始添加完設備生成的device_id 和 secret 填寫到下面,然后點擊生成
現在連接信息齊全了
ClientId: 60b616bf58115902a5f972d1_1234567890_0_0_2021060113
Username(用戶名): 60b616bf58115902a5f972d1_1234567890
Password(密碼): eb1232f3c601ab4192b021e2ec6163ccc821d44ec290b00d1b7d93bf29bcd10c
使用調試助手作為MQTT客戶端接入平台
使用單片機連接
1.關閉測試軟件
注:一開始說了,一個設備就作為一個MQTT客戶端,也只能一個設備使用.
2.打開這節的單片機程序
3.別忘了安裝好手機卡和天線
4.串口1在程序里面作為了日志打印輸出口
用戶可以打開串口調試助手觀察日志
5.修改自己設備的device_id, secret, MqttIp:服務器IP地址
注:hwy_this_time 只要保證是10個字符就可以,默認是不讓服務校驗時間.
6.然后下載程序到單片機,查看日志
單片機程序說明
1.整體概況
①:控制模塊連接TCP服務器(MQTT服務器)
②:計算MQTT密碼
③:MQTT消息處理封裝包(緩存管理,支持消息等級0,1,2)
④:使用Mbedtls里面的sha256 計算密碼文件
2.關於串口1
串口1作為日志打印,發送數據采用中斷+環形隊列,
在串口2和串口3發送數據的地方把相應數據發給串口1打印出來.
在串口2和串口3接收數據的地方把相應數據發給串口1打印出來.
3.串口2的空閑中斷是使用定時器自定義的,為了兼容GSM模組程序
4.串口2接收的數據,傳遞給配置函數和MQTT數據處理函數
5.正常運行配置函數 ConfigModuleNoBlock
6.控制模組連接TCP服務器,然后發送連接MQTT協議
7.發送連接MQTT協議(關於組合計算密碼在最后面會有詳細說明)
8.然后就連接上了,並每隔一段時間發送心跳包和服務器保持連接.
關於單片機MQTT密碼計算
1.密碼計算需要sha256,我單片機移植了Mbedtls
2.密碼計算
其實就是 hmacsha256(string data,string key)
data填寫 device_secret ; key填寫時間
下面的程序是我根據以往的經驗寫的,用戶直接用就可以
該睡覺了.............明天接着寫