1. 准备工作
1.1 注册阿里云账号
使用个人淘宝账号或手机号,开通阿里云账号,并通过
实名认证(可以用支付宝认证)
1.2 免费开通IoT物联网套件
产品官网
https://www.aliyun.com/product/iot
1.3 软件环境
Nodejs安装
https://nodejs.org/en/download/
编辑器 sublimeText/nodepad++/vscode
2. 开发步骤
2.1 云端开发
1) 创建高级版产品
2) 功能定义,产品物模型添加属性
物模型对应属性上报topic
/sys/替换为productKey/替换为deviceName/thing/event/property/post
物模型对应的属性上报payload
{
id: 123452452,
params: {
temperature: 26.2,
humidity: 60.4
},
method: "thing.event.property.post"
}
3) 注册设备,获得身份三元组
2.2 设备端开发
我们以nodejs程序来模拟设备,建立连接,上报数据。
1) 应用程序目录结构
2) package.json添加阿里云IoT套件sdk依赖
{
下载安装SDK
"name": "aliyun-iot",
"dependencies": {
"aliyun-iot-mqtt": "^0.0.4"
},
"author": "wongxming",
"license": "MIT"
}
$npm install
3) 模拟设备thermometer.js代码
/**
"dependencies": { "aliyun-iot-mqtt": "^0.0.4" }
*/
const mqtt = require('aliyun-iot-mqtt');
//设备属性
const options = {
productKey: "替换自己productKey",
deviceName: "替换自己deviceName",
deviceSecret: "替换自己deviceSecret",
regionId: "cn-shanghai"
};
//建立连接
const client = mqtt.getAliyunIotMqttClient(options);
//属性上报的Topic
const topic = `/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`;
setInterval(function() {
//发布数据到topic
client.publish(topic, getPostData());
}, 5 * 1000);
function getPostData(){
const payloadJson = {
id: Date.now(),
params: {
temperature: Math.floor((Math.random() * 20) + 10),
humidity: Math.floor((Math.random() * 40) + 60)
},
method: "thing.event.property.post"
}
console.log("===postData topic=" + topic)
console.log(payloadJson)
return JSON.stringify(payloadJson);
}
3. 启动运行
3.1 设备启动
$node thermometer.js
3.2 云端查看设备运行状态
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。