基于阿里云的MQTT服务测试
本想基于涂鸦进行测试,咨询客户经理了解已经不再支持ESP8266等非官方设备接入,登录官网也未见到相关内容,遂放弃,改为阿里云测试。
登录阿里云物联网平台:https://iot.console.aliyun.com/devices,开启免费的“公共实例”,到控制台里增加设备“智能灯”,名称为LED1main,到设备信息–》MQTT连接参数里复制下连接参数,到MQTTX里依据这些参数来连接。
MQTT 连接参数
clientId:***.LED1main|securemode=2,signmethod=hmacsha256,timestamp=**|
username:LED1main&****
passwd:*****
mqttHostUrl:iot-****.mqtt.iothub.aliyuncs.com
port:1883
到控制台–》产品(设备模型)–》选择灯–》查看设备–》功能定义–》前往编辑草稿–》添加标准功能,增加:
1.其他类型,搜索温度,当前温度“CurrentTemperature”,确认
2.搜索亮度,亮度百分比“Brightness”,确认
3.同时将灯的状态“LightStatus”改为读写(可上报,可远程控制)。
4.发布上线
在MQTTX里连接服务器,云平台–》监控运维–》在线调试,可以设置灯的状态和亮度,点设置下发命令:
Topic:/sys/*****/LED1main/thing/service/property/set QoS:0
{
“method”: “thing.service.property.set”,
“id”: “93543057”,
“params”: {
“LightStatus”: 1,
“Brightness”: 45
},
“version”: “1.0.0”
}
设备端也可以主动上报亮度,温度,状态,位置坐标等信息:
状态信息上报json:
/sys/***/LED1main/thing/event/property/post
{
"method": "thing.event.property.post",
"params": {
"LightStatus":1,
"CurrentTemperature":58,
"Brightness": 14
}
}
位置信息上报
/***/LED1main/thing/event/property/post
{
"params" : {
"GeoLocation" : {
"value":{
"Longitude":39.9935723,
"Latitude":39.9935723,
"Altitude":39.9935723,
"CoordinateSystem":2
}
}
},
"method":"thing.event.property.post"
}
同时更新坐标和亮度等信息
/sys/***/LED1main/thing/event/property/post
{
"method": "thing.event.property.post",
"params": {
"LightStatus":0,
"CurrentTemperature":23,
"Brightness": 77,
"GeoLocation" : {
"value":{
"Longitude":11.9935723,
"Latitude":22.9935723,
"Altitude":33.9935723,
"CoordinateSystem":2
}
}
}
}