支付宝小程序 - 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 物联网技术
来源: https://yq.aliyun.com/articles/698607