完成物联网平台控制台的配置工作后,您需要进行设备端业务开发。本文通过Node.js脚本模拟设备业务行为,实现设备的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示例代码。示例代码如下:
// 引入依赖mqtt库,或自己实现。 const mqtt = require('aliyun-iot-mqtt'); // 设备身份。 var options = { productKey: "设备ProductKey", deviceName: "设备DeviceName", deviceSecret: "设备DeviceSecret", host: "iot-cn-***.mqtt.iothub.aliyuncs.com" }; // 1.建立连接。 const client = mqtt.getAliyunIotMqttClient(options); // 2.设备接收云端指令数据。 client.on('message', function(topic, message) { console.log("topic " + topic) console.log("message " + message) }) // 3. 设备订阅指令的Topic。 client.subscribe(`/${options.productKey}/${options.deviceName}/user/cmd/down`) // 4. 模拟设备上报数据(原始报文) setInterval(function() { client.publish(`/${options.productKey}/${options.deviceName}/user/data/up`, getPostData(),{qos:1}); }, 1000); // 模拟设备原有报文格式。 function getPostData() { let payload = "DE02,"+Math.floor((Math.random() * 20) + 10) +","+Math.floor((Math.random() * 20) + 10) +",011101010,am024,1d478f"; console.log("payload=[ " + payload+" ]") return JSON.stringify(payload); }
- 配置设备接入参数。
参数 示例 说明 productKey a16c***** 您添加设备后,保存的设备证书信息。 您可在物联网平台控制台的设备详情页面查看。
deviceName deviceSN1 deviceSecret b2e6e4f102458d84*** host iot-cn-***.mqtt.iothub.aliyuncs.com MQTT设备接入域名。查看方法,请参见查看实例终端节点。 - 打开CMD窗口,使用
cd
命令找到设备端的iot_device.js文件所在路径,在该路径下使用npm
命令下载阿里云IoT的MQTT库。下载后的MQTT库文件如下图所示。npm install aliyun-iot-mqtt -S