完成物联网平台控制台的配置工作后,您需要进行设备端业务开发。本文通过Node.js脚本模拟设备业务行为,实现设备的MQTT建连、数据上报、指令接收。

操作步骤

  1. 在Windows系统或Linux系统下载并安装Node.js。本文以Windows 10(64位)系统为例,下载安装包node-v14.15.1-x64.msi。
  2. 安装成功后,打开CMD窗口,通过以下命令查看node版本。
    node --version
    显示如下版本号,表示安装成功。
    v14.15.1
  3. 在本地计算机创建一个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);
    }
  4. 配置设备接入参数。
    参数 示例 说明
    productKey a16c***** 您添加设备后,保存的设备证书信息。

    您可在物联网平台控制台的设备详情页面查看。

    deviceName deviceSN1
    deviceSecret b2e6e4f102458d84***
    host iot-cn-***.mqtt.iothub.aliyuncs.com MQTT设备接入域名。查看方法,请参见查看实例终端节点
  5. 打开CMD窗口,使用cd命令找到设备端的iot_device.js文件所在路径,在该路径下使用npm命令下载阿里云IoT的MQTT库。下载后的MQTT库文件如下图所示。
    npm install aliyun-iot-mqtt -SMQTT库

后续步骤

服务端开发