008-STM32+ESP8266+AIR202/302基本控制方案(阿里雲物聯網平台)-在阿里雲物聯網平台上一型一密動態注冊設備(基於Android)


<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端肯定是一個程序.

如果咱向前面章節似的自己去雲端注冊設備,然后再把設備的信息(三元組)給用戶,

然后用戶再填寫信息接入,這樣用戶體驗不好,過於繁瑣,也無疑增加了人工成本.

 

應該是用戶打開手機APP,然后APP自己去雲平台注冊一個設備,然后接入雲平台實現通信

 

 

 

動態注冊的方式(咱使用的是,一型一密(免預注冊))

先解釋幾個名詞:一機一密 ;一型一密(預注冊) ;一型一密(免預注冊)

 

一機一密:就是咱原先測試的在網頁上去注冊設備,然后把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.打開本節的Android程序

 

 

 

2.登錄自己的雲平台查看自己產品的ProductSecret; ProductKey; 

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

 

 

 

3.打開動態注冊

 

 

 

 

4.點擊查看

 

 

 

 

5.替換自己的 ProductSecret; ProductKey; 

 

 

 

 

6.下載安裝到手機

注:注冊的時候設備名字是可以自己規定的

 

 

 

 

7.輸入設備的名稱,然后點擊注冊設備

我寫的是 regapp

 

 

 

8.注冊成功以后自動跳轉到主頁面

 

 

 

9.用戶可以看下日志,和刷新下雲平台設備列表

 

 

 

 

 

源碼說明

1. 注冊設備我封裝成了一個java文件

 

 

 

 

按照阿里雲文檔組合計算注冊時的MQTT參數

 

 

 

 

需要SSL方式

 

 

 

 

接收mqtt返回的數據

 

 

 

 

2.調用注冊函數注冊設備

 

 

 

 

3.注冊完成跳轉到主頁面

 

 

 

 

4.主頁面如果判斷有注冊的信息執行連接MQTT程序

 

 

 

5.正常通信連接還是使用的以前封裝的java文件,把動態注冊返回的參數按照文檔的規定進行拼接計算.

 

 

 

 

結語

之所以我把注冊時的設備名稱拿出來,是因為咱后面可以和手機驗證碼結合.

用戶拿到手機APP之后用戶需要用手機號登錄注冊,然后呢設備的名字就用手機號代替.

注意: 產品的 ProductSecret  ProductKey  別泄露了哈!!!!!

如果讓別人知道了之后,別人也可以在你的平台上動態注冊設備並接入了!!!!

 


免責聲明!

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



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM