阿里云
发表主题 回复主题
  • 943阅读
  • 0回复

[技术交流]10分钟虚拟设备接入阿里云IoT平台实战

级别: 管理员
发帖
52
云币
116


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
  1. /sys/替换为productKey/替换为deviceName/thing/event/property/post
物模型对应的属性上报payload
  1. {
  2.     id: 123452452,
  3.     params: {
  4.         temperature: 26.2,
  5.         humidity: 60.4
  6.     },
  7.     method: "thing.event.property.post"
  8. }



3) 注册设备,获得身份三元组





2.2 设备端开发


我们以nodejs程序来模拟设备,建立连接,上报数据

1) 应用程序目录结构





2) package.json添加阿里云IoT套件sdk依赖


  1. {
  2.   "name": "aliyun-iot",
  3.   "dependencies": {
  4.     "aliyun-iot-mqtt": "^0.0.4"
  5.   },
  6.   "author": "wongxming",
  7.   "license": "MIT"
  8. }
下载安装SDK
  1. $npm install



3) 模拟设备thermometer.js代码


  1. /**
  2. "dependencies": { "aliyun-iot-mqtt": "^0.0.4" }
  3. */
  4. const mqtt = require('aliyun-iot-mqtt');
  5. //设备属性
  6. const options = {
  7.     productKey: "替换自己productKey",
  8.     deviceName: "替换自己deviceName",
  9.     deviceSecret: "替换自己deviceSecret",
  10.     regionId: "cn-shanghai"
  11. };
  12. //建立连接
  13. const client = mqtt.getAliyunIotMqttClient(options);
  14. //属性上报的Topic
  15. const topic = `/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`;
  16. setInterval(function() {
  17.     //发布数据到topic
  18.     client.publish(topic, getPostData());
  19. }, 5 * 1000);
  20. function getPostData(){
  21.     const payloadJson = {
  22.         id: Date.now(),
  23.         params: {
  24.             temperature: Math.floor((Math.random() * 20) + 10),
  25.             humidity: Math.floor((Math.random() * 40) + 60)
  26.         },
  27.         method: "thing.event.property.post"
  28.     }
  29.     console.log("===postData topic=" + topic)
  30.     console.log(payloadJson)
  31.     return JSON.stringify(payloadJson);
  32. }



3. 启动运行



3.1 设备启动


  1. $node thermometer.js



3.2 云端查看设备运行状态











发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 99 + 1 = ?
上一个 下一个