天天看點

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

小程式效果:

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

1. 準備工作

1.1 注冊阿裡雲賬号

開通阿裡雲賬号,并通過支付寶實名認證 

https://www.aliyun.com

1.2 免費開通IoT物聯網套件

産品官網 

https://www.aliyun.com/product/iot
【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

2. 控制台操作步驟

2.1 建立産品

 JSON格式

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

2.2 産品功能定義

添加産品屬性溫度 temperature,濕度 humidity

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

2.3 注冊裝置

在産品下注冊裝置,獲得身份三元組

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

3. 小程式操作                  

3.1 裝置上線

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

3.2 上報資料

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

3.3 訂閱主題和資料下行

先點選 訂閱主題,再去控制台推送消息。

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

釋出指令日志

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

小程式效果

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

4. 小程式開發過程

【小程式案例】支付寶小程式-MQTT模器,IoT裝置通過WSS接入阿裡雲IoT物聯網平台支付寶小程式-MQTT模拟器通過WSS接入阿裡雲IoT物聯網平台

4.1 支付寶小程式socket接口适配

socket接口my.sendSocketMessage和my.onSocketMessage都是base64的string,不支援ArrayBuffer,需要自己轉換

import miniBase64 from 'mini-base64';
miniBase64.arrayBufferToBase64()           

4.2 阿裡雲IoT身份認證簽名

const params = {
      productKey: pageThat.data.productKey.trim(),
      deviceName: pageThat.data.deviceName.trim(),
      deviceSecret: pageThat.data.deviceSecret.trim(),
      timestamp: Date.now(),
      clientId: Math.random().toString(36).substr(2),
    }
    //1.生成clientId,username,password
    const contentStr = "clientId" + params.clientId + "deviceName" + params.deviceName + "productKey" + params.productKey + "timestamp" + params.timestamp;

    var clientId = `${params.clientId}|securemode=2,signmethod=hmacsha1,timestamp=${params.timestamp}|`;
    var username = `${params.deviceName}&${params.productKey}`;
    var password = crypto.HmacSHA1(contentStr, params.deviceSecret).toString();
           

IoT物聯網技術

繼續閱讀