物联网设备接入和通信示例介绍
本文介绍了如何使用阿里云物联网平台,通过设备端Link SDK来模拟物联网设备接入和实现上下行通信。以下是整个过程的概述和关键步骤总结:
前提条件
- 在物联网平台控制台创建产品和设备(如
device2
)并获取设备证书信息(ProductKey
、DeviceName
和DeviceSecret
)。 - 详细操作包括创建产品和创建设备。
背景信息
- 使用 WebSocket 方式接入设备。
- 在 Node.js 环境下配置和使用设备端 Link SDK。
操作步骤
- 安装 Node.js:在 Windows 或 Linux 系统下载并安装 Node.js。例如,在 Windows 10 上安装
node-v14.15.1-x64.msi
。 - 验证安装:通过
node --version
命令在 CMD 窗口检查 Node.js 版本。 - 创建 JavaScript 文件:例如
iot_device.js
,用于存放示例代码。
const iot = require('alibabacloud-iot-device-sdk');
// 设备证书信息。
const productKey = 'a1W***';
const deviceName = 'device2';
const deviceSecret = 'ff01e59d1a***';
// 新版公共实例和企业版实例,必须填写实例ID,旧版公实例无需填写。
const instanceId = '';
// 当前产品和设备所属地域的ID。
const region = 'cn-shanghai';
const brokerUrl = instanceId
? `wss://${instanceId}.mqtt.iothub.aliyuncs.com:443`
: `wss://${productKey}.iot-as-mqtt.${region}.aliyuncs.com:443`;
const device = iot.device({
productKey: `${productKey}`,
deviceName: `${deviceName}`,
deviceSecret: `${deviceSecret}`,
brokerUrl,
tls: true,
});
// 监听connect事件:建立MQTT连接,订阅自定义Topic,通过自定义Topic向物联网平台发送消息。
device.on('connect', () => {
device.subscribe(`/${productKey}/${deviceName}/user/get`);
console.log('connect successfully!');
device.publish(`/${productKey}/${deviceName}/user/update`, 'hello world!');
});
// 监听message事件。
device.on('message', (topic, payload) => {
console.log(topic, payload.toString());
});
// 监听error事件。
device.on('error', (error) => {
console.error(error);
});
// 如果您希望主动断开与物联网平台的连接,可以删除下一行注释符号,调用end函数断开与物联网平台的连接。
//device.end();
您需参照下表,替换对应参数的值为实际场景中设备的信息。
参数 | 示例 | 说明 |
productKey | a1W*** | 您添加设备后,保存的设备证书信息,请参见获取设备证书。您也可在控制台中设备device2的设备详情页面查看。 |
deviceName | device2 | |
deviceSecret | ff01e59d1a*** | |
instanceId | '' | 实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。若有ID值,必须传入该ID值。若无实例概览页面或ID值,传入空值,即iotInstanceId = '' 。实例的详细说明,请参见实例概述。 |
region | cn-shanghai | 您物联网平台设备所在地域的代码。地域代码表达方法,请参见地域列表。 |
打开CMD窗口,使用cd命令找到iot_device.js文件所在路径,在该路径下使用npm命令下载阿里云IoT的Link SDK库。下载后的库文件如下图所示。npm install alibabacloud-iot-device-sdk --save
在CMD窗口输入如下命令,运行iot_device.js代码,启动设备。node iot_device.js
返回如下信息,表示设备接入成功,并成功发布消息。
查看运行日志和测试下行通信
- 登录物联网平台控制台。
- 在控制台左上方,选择物联网平台设备所在地域,然后在实例概览页面,单击目标实例。说明若无实例概览页面,会直接进入物联网平台功能页面。
- 在左侧导航栏,选择设备管理 > 设备。在设备列表页签,可查看设备device2的状态为在线。
- 单击设备device2对应操作栏的查看,在设备详情页面,单击日志服务,然后单击前往查看。在云端运行日志页签,查看日志消息。
- 在日志列表,找到设备到云消息,单击查看,查看设备上报到物联网平台的信息。
- 测试下行通信:从物联网平台向设备发送消息。
- 返回设备管理 > 设备页面,在设备列表页签,单击设备device2操作栏的查看。
- 在设备详情页面,单击Topic列表页签,找到已订阅的Topic:
/a1W***/device2/user/get
,单击发布消息。 - 输入消息内容,单击确认。
- 返回设备运行窗口,查看设备能接收消息,表示通信正常。您也可返回云端运行日志页签,查看详细的通信日志。
总结
此示例提供了一个实际的场景,展示了如何通过 Node.js 和阿里云物联网平台的设备端 Link SDK 实现物联网设备的接入和通信。整个过程包括从设置环境、编写和运行代码,到在物联网平台上进行设备管理和通信测试。这为开发者提供了一个指导性的例子,帮助他们快速入门物联网设备的接入和数据交互。
回复