1. 程式人生 > 其它 >004-HC32F460(華大)+Air724UG(4G GPRS)基本控制篇(阿里雲物聯網平臺)-在阿里雲物聯網平臺上一型一密動態註冊裝置(微信小程式)

004-HC32F460(華大)+Air724UG(4G GPRS)基本控制篇(阿里雲物聯網平臺)-在阿里雲物聯網平臺上一型一密動態註冊裝置(微信小程式)

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

前言

如果咱自己做產品,微信小程式端肯定是一個程式.

如果咱向前面章節似的自己去雲端註冊裝置,然後再把裝置的資訊(三元組)給使用者,

然後使用者再填寫資訊接入,這樣使用者體驗不好,過於繁瑣,也無疑增加了人工成本.

應該是使用者開啟微信小程式,然後微信小程式自己去雲平臺註冊一個裝置,然後接入雲平臺實現通訊

小插曲

前段時間阿里雲把WebSocket 的動態註冊給關閉了!!!

然後動用大家的力量終於讓阿里雲又給開放了....

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

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

一機一密:

就是咱原先測試的在網頁上去手動註冊裝置,然後把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.在微信小程式平臺上設定域名白名單(推薦)

域名為自己裝置連線的MQTT伺服器的IP地址:

wss://{productKey} .iot-as-mqtt.{Region} .aliyuncs.com

我的productKey為:a1m7er1nJbQ

我的Region地區為:cn-shanghai

所以; wss://a1m7er1nJbQ.iot-as-mqtt.cn-shanghai.aliyuncs.com

注意:設定完成以後重啟一下微信開發工具

2.如果不設定域名白名單也可以在軟體上選擇忽略校驗域名

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

1.開啟本節的微信小程式

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

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

開啟動態註冊

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

4,檢視並替換自己instanceId

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

提示:有 instanceId , 則填寫上例項的instanceId

5.點選編譯預覽,微信掃碼安裝到手機

6.執行APP會彈出註冊頁面.

注:這個步驟是讓微信小程式在物聯網平臺上註冊個裝置,讓微信小程式接入雲平臺.

裝置的名字做成了需要使用者去填寫,使用者如果做產品的話可以用使用者的手機號替代.

7.填寫 222222(隨意哈) 後點擊 註冊裝置

8.註冊成功將會跳轉到主頁

9.在平臺上可以看到在相應的產品下面註冊了裝置

原始碼說明

1.先提前說一下

mqtt.js 是正常通訊時使用的

register_device.js 是註冊時使用的

一開始程式執行也執行了 MQTT.ConnectMqtt(); 不過內部是連線不上的,因為沒有配置MQTT的引數MQTT.InitMqttParam

2.呼叫註冊函式註冊裝置

3.MQTT.js是一直輪訓判斷註冊引數,有註冊引數以後,執行連線

結語

以後在產品的時候,那個裝置的名字可以用微信小程式裡面的唯一碼代替.(如果沒有登入註冊的環節)

如果後期做成登入註冊的

使用者需要用手機號登入註冊,然後呢裝置的名字就用手機號代替.

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

如果讓別人知道了之後,別人也可以在你的平臺上動態註冊裝置並接入了!!!!