<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLAir724UGA/aly.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
說明
如果設備成批量的出售,誰也不想,一個一個的在網頁上添加上設備
然后再一個一個的把設備信息(三元組)燒錄到設備!!!!
這節呢就是不需要再燒錄或者配置什么三元組,
所有的設備都是一個程序.
設備連接上網絡以后自己去注冊.
然后設備的名字我規定的是:
如果是WiFi設備,就用WiFi的MAC地址作為設備名字
如果是GPRS設備,就用IMEI作為設備的名字.
動態注冊的方式(咱使用的是,一型一密免預注冊)
先解釋幾個名詞:一機一密 ;一型一密(預注冊) ;一型一密(免預注冊)
一機一密:
就是咱原先測試的在網頁上去手動注冊設備,然后把ProductKey、DeviceSecret、DeviceName
給設備,然后設備根據這三個信息組合計算下得到mqtt的連接參數,然后就連接通信了
https://help.aliyun.com/document_detail/74005.html?spm=a2c4g.11186623.6.585.3bb41114l1EN77
一型一密(預注冊):
需要咱先在網頁上注冊上設備,然后把ProductKey、ProductSecret、DeviceName
給設備,然后設備通過https或者mqtt獲取DeviceSecret
然后設備根據ProductKey、DeviceSecret、DeviceName這三個信息組合計算下得到mqtt的連接參數,然后就連接通信了
一型一密(免預注冊): 免預注冊就是不用在雲端自己注冊設備,設備連接上網絡以后設備自己去注冊.
這樣子的話,每個設備燒錄同樣的程序就可以,不用再配置什么三元組了!
不過每個設備程序里面的需要寫上產品的ProductKey 和 ProductSecret 的值,這兩個值是固定的.
主要是區分開你注冊的時候注冊到哪個產品下.
然后設備通過https或者mqtt接口注冊設備,
注冊的時候服務器會返回ClientID和DeviceToken 等參數
最后按照平台規定的組合MQTT參數
MQTT連接的方式注冊設備:
拼接注冊返回的參數連接MQTT:
測試本節一型一密(免預注冊)程序
1.打開本節的單片機程序
2.登錄自己的雲平台查看自己產品的ProductSecret; ProductKey;
注:選擇哪個產品,設備就會注冊到哪個產品下
打開動態注冊
3.替換自己的 ProductSecret; ProductKey;
4.編譯下載后測試(可以觀察日志口)
7.在物聯網平台上刷新一下設備列表,會看到注冊了一個新設備
單片機程序說明
1. 先瀏覽下阿里雲文檔
2.打開SSL,連接阿里雲的MQTT服務器,發送注冊協議
3.根據阿里雲的文檔,組合發送注冊設備信息
注:DeviceName 是獲取的模塊的IMEI
4.解析處理數據,並把數據存儲到flash
5.解析說明
//·µ»ØµÄÊý¾Ý+IPD,166:0?/ext/regnwl{"clientId":"RYzzfPbVqLE6J5H5dvSm000100","productKey":"a1m7er1nJbQ",
"deviceName":"862167052968868","deviceToken":"^1^1602183887248^35fa4b40451a986"}
服務器規定的組合:
mqttClientId: clientId+"|securemode=-2,authType=connwl|"
mqttUsername: deviceName+"&"+productKey
mqttPassword: deviceToken
連接地址: ${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com:1883
7.設備連接阿里雲(設備就正常使用了)
結語
有了動態注冊以后,咱的設備就可以燒錄一個程序
然后只要設備可以連接網絡,那么注冊的事情就交給設備去做了.
設備的名字一般使用模組的IMEI