获取设备证书(ProductKey、DeviceName和DeviceSecret)后,通过MQTT协议将设备接⼊企业版实例。
前提条件
已创建产品和设备。具体操作,请参见创建产品和设备。
操作步骤
示例通过物模型相关Topic上报数据。您也可以通过自定义Topic,向设备发送数据,更多信息,请参见使用自定义Topic通信。
在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: "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的信息。
打开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"}
iot_device.js代码运行成功后,设备状态显示为在线,在设备详情页面,单击物模型数据页签,可看到最新上报的温度值和湿度值。
在左侧导航栏,单击 ,进入云端运行日志页签,选择家庭温控器产品,查看设备上报数据的⽇志。
更多信息,请参见云端运行日志。