1. 程式人生 > 其它 >003-STM32+ESP8266+Air302基本控制篇(阿里雲物聯網平臺)-在阿里雲物聯網平臺上一型一密動態註冊裝置(STM32+Air302)

003-STM32+ESP8266+Air302基本控制篇(阿里雲物聯網平臺)-在阿里雲物聯網平臺上一型一密動態註冊裝置(STM32+Air302)

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/aly.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

說明

此章節程式碼涉及到SSL加密通訊, 使用者一定要看完了前面使用SSL通訊的章節!

如果裝置成批量的出售,誰也不想,一個一個的在網頁上新增上裝置

然後再一個一個的把裝置資訊(三元組)燒錄到裝置!!!!

這節呢就是不需要再燒錄或者配置什麼三元組,

所有的裝置都是一個程式.

裝置連線上網路以後自己去註冊.

然後裝置的名字我規定的是:

如果是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的連線引數,然後就連線通訊了

https://help.aliyun.com/document_detail/132111.html?spm=a2c4g.11186623.2.18.59863f82PBOpQr#task-1545804

 

 

 

一型一密(免預註冊): 免預註冊就是不用在雲端自己註冊裝置,裝置連線上網路以後裝置自己去註冊.

這樣子的話,每個裝置燒錄同樣的程式就可以.

不過每個裝置程式裡面的需要寫上產品的ProductKey 和 ProductSecret  的值,這兩個值是固定的.

主要是區分開你註冊的時候註冊到哪個產品下.

然後裝置通過https或者mqtt介面註冊裝置,

註冊的時候伺服器會返回ClientID和DeviceToken 等引數

最後按照平臺規定的組合MQTT引數

MQTT連線的方式註冊裝置:

https://help.aliyun.com/document_detail/132111.html?spm=a2c4g.11186623.2.18.59863f82PBOpQr#task-1545804

 

 

 

拼接註冊返回的引數連線MQTT:

https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11186623.2.16.1c99426ff6ECtQ#concept-mhv-ghm-b2b

 

測試本節一型一密(免預註冊)程式

1.開啟本節的微控制器程式

 

2.登入自己的雲平臺開啟動態註冊

注:選擇哪個產品,裝置就會註冊到哪個產品下

 

 

 

開啟動態註冊

 

 

3,檢視並替換自己產品的ProductSecret; ProductKey;

 

 

 

 

 

4,檢視並替換自己instanceId

提示:在2021年7月30日之前購買的例項是沒有 instanceId 的, 微控制器程式裡面可保持空

如果有, 則需要填寫上.

 

 

 

 

5.編譯下載後測試(可以觀察日誌口)

 

 

 

 

 

 

6.在物聯網平臺上重新整理一下裝置列表,會看到註冊了一個新裝置

 

 

 

 

微控制器程式說明

1. 先瀏覽下阿里雲文件

https://help.aliyun.com/document_detail/132111.html?spm=a2c4g.11186623.2.18.59863f82PBOpQr#task-1545804

 

 

 

2.初始化MQTT,註冊相應的回撥函式

 

 

 

 

 

3.連線阿里雲的TCP伺服器(MQTT伺服器)

先連線TCP伺服器(MQTT伺服器); 

 

 

 

 

 

上面還使用IMEI作為了, 裝置的名字 DeviceName

 

 

 

 

 

3.根據阿里雲的文件,組合傳送註冊裝置訊息給MQTT伺服器

註冊設定需要SSL方式通訊, 所以需要啟用SSL

 

 

 

 

 

傳送註冊協議

 

 

 

 

 

使用MQTT傳送完以後, 伺服器會把註冊資訊通過MQTT傳送給裝置, 所以咱直接在MQTT接收回調函式裡面獲取就可以

 

 

 

把獲取到的設備註冊資訊儲存到flash, 然後重啟

 

 

 

 

4.重啟之後呢判斷下已經註冊了

 

 

 

 

5.裝置還是先使用TCP連線伺服器,然後使用註冊的資訊連線MQTT伺服器

提示:裝置連線通訊可以使用SSL也可以不使用SSL

 

 

如果使用SSL, 傳送MQTT連線協議之前先初始化好SSL

 

 

根據裝置資訊,組合傳送連線MQTT協議

 

 

 

 

如果是SSL就從SSL裡面提取資料, 然後傳遞給MQTT處理函式處理

 

 

如果不是SSL方式就直接提取網路資料, 然後傳遞給MQTT處理函式處理

 

 

 

 

結語

有了動態註冊以後,咱的裝置就可以燒錄一個程式

然後只要裝置可以連線網路,那麼註冊的事情就交給裝置去做了.