全部产品
Search
文档中心

阿里云物联网平台:设备接入和上报数据

更新时间:Apr 25, 2023

获取设备证书(ProductKey、DeviceName和DeviceSecret)后,通过MQTT协议将设备接⼊企业版实例。

前提条件

已创建产品和设备。具体操作,请参见创建产品和设备

操作步骤

说明

示例通过物模型相关Topic上报数据。您也可以通过自定义Topic,向设备发送数据,更多信息,请参见使用自定义Topic通信

  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示例代码。

    Node.js示例代码如下所示:

    const mqtt = require('aliyun-iot-mqtt');
    // 1. 设备身份信息
    var options = {
        productKey: "g18l***",
        deviceName: "Device1",
        deviceSecret: "b2e6e4f102458d84***",
        host: "iot-cn-***.mqtt.iothub.aliyuncs.com"
    };
    
    // 2. 建立MQTT连接
    const client = mqtt.getAliyunIotMqttClient(options);
    //订阅云端指令Topic
    client.subscribe(`/${options.productKey}/${options.deviceName}/user/get`)
    client.subscribe(`/sys/${options.productKey}/${options.deviceName}/thing/event/property/post_reply`)
    client.on('message', function(topic, message) {
        console.log("topic " + topic)
        console.log("message " + message)
    })
    
    setInterval(function() {
        // 3.定时上报温湿度数据
        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)
            },
            method: "thing.event.property.post"
    
        }
        console.log("payloadJson " + JSON.stringify(payloadJson))
        return JSON.stringify(payloadJson);
    }

    参数

    示例

    说明

    productKey

    g18l***

    您添加设备后,保存的设备证书信息,请参见设备证书信息

    您可在控制台中设备Device1设备详情页面查看。

    deviceName

    Device1

    deviceSecret

    b2e6e4f102458d84***

    host

    iot-cn-***.mqtt.iothub.aliyuncs.com

    您购买实例成功后,保存的MQTT设备接入域名,请参见创建企业版实例

    您可在控制台中实例IoT测试环境实例详情页面,单击查看开发配置,查看MQTT的信息。

  4. 打开CMD窗口,使用cd命令找到iot_device.js文件所在路径,在该路径下使用npm命令下载阿里云IoT的MQTT库。下载后的MQTT库文件如下图所示。

    npm install aliyun-iot-mqtt -SMQTT库

  5. 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"}
  6. iot_device.js代码运行成功后,设备状态显示为在线,在设备详情页面,单击物模型数据页签,可看到最新上报的温度值和湿度值。

    物模型数据
  7. 在左侧导航栏,单击监控运维 > 日志服务,进入云端运行日志页签,选择家庭温控器产品,查看设备上报数据的⽇志。

    更多信息,请参见云端运行日志

    运行日志

后续步骤

数据转发到表格存储