获取设备证书(ProductKey、DeviceName和DeviceSecret)后,即可通过MQTT协议将设备接⼊到物联网平台并上报数据。
操作步骤
- 在Windows系统或Linux系统下载并安装Node.js。本文以Windows 10(64位)系统为例,下载安装包node-v14.15.1-x64.msi。
- 安装成功后,打开CMD窗口,通过以下命令查看node版本。
node --version
显示如下版本号,表示安装成功。v14.15.1
- 在本地计算机创建一个JavaScript文件(例如iot_device.js),用来存放Node.js示例代码。Node.js示例代码如下所示:
const mqtt = require('aliyun-iot-mqtt'); // 1. 设备身份信息 var options = { productKey: "g0d***", deviceName: "tracker0001", deviceSecret: "6b9fb***", host: "iothub-unit-***.mqtt.iothub.aliyuncs.com" }; // 2. 建立连接 const client = mqtt.getAliyunIotMqttClient(options); // 3. 监听云端指令 client.subscribe(`/${options.productKey}/${options.deviceName}/user/config`) client.on('message', function(topic, message) { console.log("topic " + topic) console.log("message " + message) }) setInterval(function() { // 4.上报数据 client.publish(`/sys/${options.productKey}/${options.deviceName}/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), Speed: Math.floor((Math.random() * 20) + 30) }, method: "thing.event.property.post" } console.log("payloadJson " + JSON.stringify(payloadJson)) return JSON.stringify(payloadJson); }
参数 说明 productKey 设备证书信息。您可在物联网平台控制台的设备详情页面查看。 deviceName deviceSecret host MQTT设备接入域名。查看方法,请参见查看实例终端节点。 client.publish() 配置设备上报数据。本示例代码上报物模型数据,您也可修改 client.publish()
和getPostData()
代码,上报自定义Topic数据。例如:setInterval(function() { // 4.上报数据 client.publish(`/${options.productKey}/${options.deviceName}/user/data/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), Speed: Math.floor((Math.random() * 20) + 30) }, method: "user.data.post" } console.log("payloadJson " + JSON.stringify(payloadJson)) return JSON.stringify(payloadJson); }
getPostData() - 打开CMD窗口,使用
cd
命令找到iot_device.js文件所在路径,在该路径下使用npm
命令下载阿里云IoT的MQTT库。下载后的MQTT库文件如下图所示。npm install aliyun-iot-mqtt -S
- MQTT库下载完成后,在CMD窗口输入如下命令,运行iot_device.js代码,启动设备。
node iot_device.js
返回如下信息,表示设备接入成功,并上报数据。- 上报物模型数据时,返回信息如下:
payloadJson {"id":161848***,"version":"1.0","params":{"temperature":16,"humidity":21},"method":"thing.event.property.post"} topic /sys/g18l***/Device1/thing/event/property/post_reply message {"code":200,"data":{},"id":"16184848***","message":"success","method":"thing.event.property.post","version":"1.0"}
- 上报自定义Topic数据时,返回信息如下:
payloadJson {"id":166****,"version":"1.0","params":{"Temperature":11,"Humidity":27,"Speed":34},"method":"user.data.post"}
- 上报物模型数据时,返回信息如下:
- iot_device.js代码运行成功后,设备状态显示为在线。若上报物模型数据,在设备详情页面,选择物模型数据页签,可看到新上报的属性值。
- 在左侧导航栏,单击监控运维 > 日志服务,进入云端运行日志页签,查看设备上报数据的⽇志。
具体操作,请参见云端运行日志。