精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品开源,禁止转载和任何形式的非法内容使用,违者必究
在阿里物联网云需要连接上云来激活设备,同时也可以写js代码来上报数据,在阿里云官网上对例子的几个关键属性和url用了查看详细页来说明,让初学者翻页面不太人性化,这里把我总结的代码公示下,希望能节省大家时间。
本人用的设备信息肯定会用*来代替,先看官方表:
| 参数 | 示例 | 说明 |
|---|---|---|
| productKey | TVz1A1x2wA****** | 设备所属产品Key。可在控制台设备详情页查看。 |
| deviceName | hxt93489234 | 设备名称。可在控制台设备详情页查看。 |
| deviceSecret | b42db5a4fb95deb947f61655ad****** | 设备密钥。可在控制台设备详情页查看。 |
| host | iot-cn-6ja1y******.mqtt.iothub.aliyuncs.com | MQTT设备接入终端节点。可在控制台实例详情页查看。具体操作,请参见查看实例终端节点。 |
下面是代码,注意里面的注释,和官网上有不一样的地方尤其要重视:
const mqtt = require('aliyun-iot-mqtt');
// 1. 设备身份信息
var options = {
productKey: "***",
deviceName: "***",
deviceSecret: "***",
host: "***.iot-as-mqtt.*****.aliyuncs.com:1883"
};
// 2. 建立MQTT连接
const client = mqtt.getAliyunIotMqttClient(options);
//订阅云端指令Topic,在自定义topic里
client.subscribe(`/***/***/user/get`)
client.on('message', function(topic, message) {
console.log("topic " + topic)
console.log("message " + message)
})
setInterval(function() {
// 3.定时上报温湿度数据,在物模型通信Topic里
client.publish(`/sys/***/***/thing/event/property/post`, getPostData(), { qos: 0 });
}, 5 * 1000);
function getPostData() {
const payloadJson = {
id: Date.now(),
version: "1.0",
params: {
temperature: Math.floor((Math.random() * 20) + 10),
humidity: Math.floor((Math.random() * 20) + 10)
},
method: "thing.event.property.post"
}
console.log("payloadJson " + JSON.stringify(payloadJson))
return JSON.stringify(payloadJson);
}
其中5个星的部分要找表格最后一行的链接去查。这些内容如果理解了域名多个节和目录多个节也好理解,所以说搞编程基础很重要,脑子灵活最重要。