【小程序案例】支付宝小程序-MQTT模器,IoT设备通过WSS接入阿里云IoT物联网平台 ...
支付宝小程序-MQTT模拟器通过WSS接入阿里云IoT物联网平台
小程序效果:
1. 准备工作
1.1 注册阿里云账号
开通阿里云账号,并通过支付宝实名认证 https://www.aliyun.com
1.2 免费开通IoT物联网套件
产品官网 https://www.aliyun.com/product/iot
2. 控制台操作步骤
2.1 创建产品
JSON格式
2.2 产品功能定义
添加产品属性温度 temperature,湿度 humidity
2.3 注册设备
在产品**册设备,获得身份三元组
3. 小程序操作
3.1 设备上线
3.2 上报数据
3.3 订阅主题和数据下行
先点击 订阅主题,再去控制台推送消息。
发布指令日志
小程序效果
4. 小程序开发过程
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物联网技术