006-STM32+ESP8266+AIR202/302基本控制篇(阿里雲物聯網平台)-在阿里雲物聯網平台上動態注冊設備(基於STM32+ESP8266)


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

 

說明

前面的章節中寫了使用APP或者微信小程序連接阿里雲平台實現動態注冊設備

這節說明一下使用STM32+ESP8266,AT指令實現動態注冊設備

 

為啥要弄動態注冊?

如果設備成批量的出售,誰也不想,一個一個的在網頁上添加上設備

然后再一個一個的把設備信息(三元組)燒錄到設備!!!!

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

所有的設備都是一個程序.

設備連接上網絡以后自己去注冊.

然后設備的名字我規定的是:

如果是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的連接參數,然后就連接通信了

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.登錄自己的雲平台查看自己產品的ProductSecret; ProductKey; 

注:我前面的設備這個產品下設備,所以我也注冊到這個產品下.

 

 

 

 

 

 

 

 

 

 

 

3.替換自己的 ProductSecret; ProductKey; 

 

 

 

 

 

4.因為是WiFi模塊所以需要連接路由器

注:也可以屏蔽這句話用APP給設備配網(APUConfig)

 

 

 

 

 

 

5.別忘了

(STM32) PA3 -- TX (WiFi)
(STM32) PA2 -- RX (WiFi)

 

 

 

6.下載后測試(可以觀察日志口)

 

 

 

 

 

 

 

7.在物聯網平台上刷新一下設備列表,會看到注冊了一個新設備

 

 

 

 

 

單片機程序說明

1. 先瀏覽下阿里雲文檔

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

 

 

 

 

 

 

2.連接阿里雲的MQTT服務器,和以前的地址是一樣的(不過需要使用SSL方式)

 

 

 

3.根據阿里雲的文檔,組合MQTT信息

注:DeviceName 是獲取的WiFi模塊的MAC地址

 

 

 

4.發送連接信息,並接受處理返回

 

 

 

5.解析並存儲數據

 

 

 

 

 

 

6.解析說明

//·µ»ØµÄÊý¾Ý+IPD,166:0? /ext/regnwl{"clientId":"RYzzfPbVqLE6J5H5dvSm000100","productKey":"a1m7er1nJbQ",
"deviceName":"10:52:1c:f0:82:21","deviceToken":"^1^1602183887248^35fa4b40451a986"}

服務器規定的組合:

 

mqttClientId: clientId+"|securemode=-2,authType=connwl|"
mqttUsername: deviceName+"&"+productKey
mqttPassword: deviceToken

 

連接地址: ${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com:1883

 

因為咱的deviceName在注冊的時候就是使用的設備的MAC地址

然后咱已經知道了,productKey也已經知道了

所以我解析的時候只是判斷了下,並沒有提取

 

 

 

 

7.使用注冊的設備連接阿里雲(設備就正常使用了)

 

 

 

 

 

 

 

8.復位重啟,如果已經注冊了,則直接跳過注冊步驟

 

 

 

 

9.正常使用時和咱在平台上手動注冊的沒有什么區別

訂閱和發布的主題還是由 ProductKey和DeviceName決定的

只不過現在設備的DeviceName是由程序獲取的WiFi的MAC地址

 

 

 

 

結語

有了動態注冊以后,咱的設備就可以燒錄一個程序

然后只要設備可以連接網絡,那么注冊的事情就交給設備去做了.

這節設置的設備的名字是使用的WiFi模塊的MAC地址

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 008-STM32+ESP8266+AIR202/302基本控制方案(阿里雲物聯網平台)-在阿里雲物聯網平台上一型一密動態注冊設備(基於Android) 006-STM32+ESP8266+AIR202/302基本控制方案(阿里雲物聯網平台)-阿里雲物聯網平台加入規則引擎(雲產品流轉),讓兩個MQTT設備之間實現通信 009-STM32+ESP8266+AIR202/302基本控制方案(阿里雲物聯網平台)-在阿里雲物聯網平台上一型一密動態注冊設備(基於微信小程序) 001-STM32+ESP8266+AIR202/302基本控制方案(阿里雲物聯網平台)-測試STM32+ESP8266,GPRS,NB-IOT,Android,微信小程序等連接阿里雲物聯網平台 005-STM32+ESP8266+AIR202/302基本控制篇--Android和ESP8266連接阿里雲物聯網平台,並通過雲平台實現遠程溫濕度采集和繼電器控制(預注冊方式) 003-STM32+ESP8266+AIR202/302基本控制方案(阿里雲物聯網平台)-設備連接阿里雲物聯網平台使用物理模型Topic實現網頁端溫濕度數據展示 002-STM32+ESP8266+AIR202基本控制方案-關於阿里雲物聯網平台上的自定義,物模型,基礎通信Topic使用說明 002-STM32+ESP8266+AIR202/302基本控制方案(阿里雲物聯網平台)-設備連接阿里雲物聯網平台使用自定義Topic實現數據上報和數據下發 002-STM32+Air724UG基本控制篇(阿里雲物聯網平台)-在阿里雲物聯網平台上一型一密動態注冊設備(STM32+Air724UG) 001-使用阿里雲物聯網平台 OTA 遠程升級STM32程序-基於ESP8266
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM