阿里云平台
*.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883 (*表示自己账号的ProductKey )
客户端ID(设备ID):|securemode=3,signmethod=hmacsha1| (设备名称 )
用户名 (产品ID):&# (设备名称 #productKey)
密码: 用DeviceSecret作为秘钥对clientIddeviceNameproductKey#进行hmacsha1加密后的结果 (*设备名称 #productKey)
CONNECT – 连接服务端(1) (客户端到服务器)
固定报头+可变报头+有效载荷(客户端ID、用户名、密码)
实例:
服务器地址:a1pTwOLe4D7.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883
三元组如下
ProductKey : a1pTwOLe4D7
DeviceName : app_control
DeviceSecret : 9da7e4b6d152f4fd5cd8a645a77df6c1
对应的账号密码
客户端ID : app_control|securemode=3,signmethod=hmacsha1|
用户名 : app_control&a1pTwOLe4D7
密码 : 4164382295162909967f6731a0e5f14a33065371
其中密码是用9da7e4b6d152f4fd5cd8a645a77df6c1对
clientIdapp_controldeviceNameapp_controlproductKeya1pTwOLe4D7加密的结果
密码要在加密网站进行HmacSHA1加密
PUBLISH(3)-发布消息( 客户端到服务器 )
固定报头 + 主题长度 +主题+ 数据内容
首先现在阿里云产品里新建一个物理模型,这里建了一个当前温度的模型,它的识别符是
CurrentTemperature
现在我要在demo产品下的app_control设备对
主题:/sys/a1pTwOLe4D7/app_control/thing/event/property/post
发送数据:{“method”:“thing.service.property.post”,“id”:“000000001”,“params”:{“CurrentTemperature”:24},“version”:“1.0.0”}
生成的二进制数据如下:
30 A6 01(固定报头) 00 36(主题长度) 2F 73 79 73 2F 61 31 70 54 77 4F 4C 65 34 44 37 2F 61 70 70 5F 63 6F 6E 74 72 6F 6C 2F 74 68 69 6E 67 2F 65 76 65 6E 74 2F 70 72 6F 70 65 72 74 79 2F 70 6F 73 74(主题)
7B 22 6D 65 74 68 6F 64 22 3A 22 74 68 69 6E 67 2E 73 65 72 76 69 63 65 2E 70 72 6F 70 65 72 74 79 2E 70 6F 73 74 22 2C 22 69 64 22 3A 22 30 30 30 30 30 30 30 30 31 22 2C 22 70 61 72 61 6D 73 22 3A 7B 22 43 75 72 72 65 6E 74 54 65 6D 70 65 72 61 74 75 72 65 22 3A 32 34 7D 2C 22 76 65 72 73 69 6F 6E 22 3A 22 31 2E 30 2E 30 22 7D(内容)
使用网络调试助手发送数据
可以看到app_control设备的当前温度物理模型变成24℃