MQTT中文站
  • 首页
  • MQTT 学习
    • MQTT 入门
    • MQTT 进阶
    • MQTT 编程
    • MQTT 实例
    • MQTT 要点
    • MQTT5 要点
    • MQTT 工具
    • MQTT 客户端库
    • MQTT 服务器
    • Zigbee2MQTT
    • Sparkplug
    • Home Assistant
    • Node-RED
      • Node-RED 安装部署
      • Node-RED 用户指南
      • Node-RED 创建节点
      • Node-RED 示例教程
      • Node-RED 开发流程
      • Node-RED 接口参考
      • Node-RED 配置模板
      • Node-RED 常见问题
  • MQTT 规范
    • MQTT 5 规范
    • MQTT 3.1.1 规范
    • MQTT 3.1 规范
    • MQTT-SN v1.2规范
    • Sparkplug® v3.0.0规范
  • 产品中心
  • 解决方案
    • 环境监测
    • 工业制造
    • 智慧水利
    • 水利管网
    • 积水监测
    • 综合管廊
    • 档案库房
    • 交通物流
    • 智慧城市
    • 智慧农业
    • 智慧养殖
    • 能源电力
    • 石油石化
    • 智能家居
    • 物联网
    • 汽车与出行
  • 使用文档
  • MQTT 云平台
  • 登录
  • 注册

利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用

2 年前 • MQTT 编程


物联网设备接入和通信示例介绍

本文介绍了如何使用阿里云物联网平台,通过设备端Link SDK来模拟物联网设备接入和实现上下行通信。以下是整个过程的概述和关键步骤总结:

前提条件

  • 在物联网平台控制台创建产品和设备(如 device2)并获取设备证书信息(ProductKey、DeviceName 和 DeviceSecret)。
  • 详细操作包括创建产品和创建设备。

背景信息

  • 使用 WebSocket 方式接入设备。
  • 在 Node.js 环境下配置和使用设备端 Link SDK。

操作步骤

  1. 安装 Node.js:在 Windows 或 Linux 系统下载并安装 Node.js。例如,在 Windows 10 上安装 node-v14.15.1-x64.msi。
  2. 验证安装:通过 node --version 命令在 CMD 窗口检查 Node.js 版本。
  3. 创建 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();

您需参照下表,替换对应参数的值为实际场景中设备的信息。

参数示例说明
productKeya1W***您添加设备后,保存的设备证书信息,请参见获取设备证书。您也可在控制台中设备device2的设备详情页面查看。
deviceNamedevice2
deviceSecretff01e59d1a***
instanceId''实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。若有ID值,必须传入该ID值。若无实例概览页面或ID值,传入空值,即iotInstanceId = ''。实例的详细说明,请参见实例概述。
regioncn-shanghai您物联网平台设备所在地域的代码。地域代码表达方法,请参见地域列表。

打开CMD窗口,使用cd命令找到iot_device.js文件所在路径,在该路径下使用npm命令下载阿里云IoT的Link SDK库。下载后的库文件如下图所示。npm install alibabacloud-iot-device-sdk --save利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用-MQTT中文站

在CMD窗口输入如下命令,运行iot_device.js代码,启动设备。node iot_device.js返回如下信息,表示设备接入成功,并成功发布消息。

利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用-MQTT中文站

查看运行日志和测试下行通信

  1. 登录物联网平台控制台。
  2. 在控制台左上方,选择物联网平台设备所在地域,然后在实例概览页面,单击目标实例。说明若无实例概览页面,会直接进入物联网平台功能页面。
  3. 在左侧导航栏,选择设备管理 > 设备。在设备列表页签,可查看设备device2的状态为在线。利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用-MQTT中文站
  4. 单击设备device2对应操作栏的查看,在设备详情页面,单击日志服务,然后单击前往查看。在云端运行日志页签,查看日志消息。利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用-MQTT中文站
  5. 在日志列表,找到设备到云消息,单击查看,查看设备上报到物联网平台的信息。利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用-MQTT中文站
  6. 测试下行通信:从物联网平台向设备发送消息。
    1. 返回设备管理 > 设备页面,在设备列表页签,单击设备device2操作栏的查看。
    2. 在设备详情页面,单击Topic列表页签,找到已订阅的Topic:/a1W***/device2/user/get,单击发布消息。
    3. 输入消息内容,单击确认。利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用-MQTT中文站
    4. 返回设备运行窗口,查看设备能接收消息,表示通信正常。利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用-MQTT中文站您也可返回云端运行日志页签,查看详细的通信日志。利用 MQTT 实现物联网设备接入:Node.js 在阿里云平台的应用-MQTT中文站

总结

此示例提供了一个实际的场景,展示了如何通过 Node.js 和阿里云物联网平台的设备端 Link SDK 实现物联网设备的接入和通信。整个过程包括从设置环境、编写和运行代码,到在物联网平台上进行设备管理和通信测试。这为开发者提供了一个指导性的例子,帮助他们快速入门物联网设备的接入和数据交互。

打赏赞(2)微海报分享
mqtt 物联网平台 物联网应用 阿里

西门子 S7 PLC 交互的 Node-RED 节点

智能化汽车制造:集成MQTT平台以预防生产线停机

猜你喜欢

KNX转485网关在物联网领域的应用

KNX转485网关在物联网领域的应用

10/22
2024
物联网智能厨电设备管控方案

物联网智能厨电设备管控方案

10/18
2024
改善基础设施:HiveMQ如何推动智能城市发展

改善基础设施:HiveMQ如何推动智能城市发展

08/07
2024

回复

抢沙发咯
  • 解决方案
    • 智能家居
    • 汽车与出行
    • 工业制造
    • 能源电力
    • 石油石化
    • 交通物流
    • 零售
  • 学习
    • MQTT 规范
    • MQTT 教程
    • MQTT 软件
    • MQTT 客户端库
    • MQTT 服务器
    • 工具和应用程序
  • 关于我们
    • 了解创科慧仁
    • 加入创科慧仁
    • 投资者关系
    • 新闻动态
    • 合作伙伴
    • 联系我们
  • 友情链接
    • Modbus中文网
    • 跳动符号官网
    • 物联网世界
    • RFID世界网
    • 深圳物联网协会
    • isoftstone软通动力
    • 中国发展战略学研究会
    • B.P商业伙伴
  • 在线客服
  • 全国客户服务热线
    4006909885
  • 官方公众号
  • 联系邮箱
    contact@mqtt.cn
Copyright © 2025 MQTT中文站. All rights reserved.Designed by nicetheme. 京ICP备20029519号
在线客服

微信咨询

微信咨询

4006909885

服务热线 7*24小时

电话咨询
  • 首页
  • MQTT 学习
    • MQTT 入门
    • MQTT 进阶
    • MQTT 编程
    • MQTT 实例
    • MQTT 要点
    • MQTT5 要点
    • MQTT 工具
    • MQTT 客户端库
    • MQTT 服务器
    • Zigbee2MQTT
    • Sparkplug
    • Home Assistant
    • Node-RED
  • MQTT 规范
    • MQTT 5 规范
    • MQTT 3.1.1 规范
    • MQTT 3.1 规范
    • MQTT-SN v1.2规范
    • Sparkplug® v3.0.0规范
  • 产品中心
  • 解决方案
    • 环境监测
    • 工业制造
    • 智慧水利
    • 水利管网
    • 积水监测
    • 综合管廊
    • 档案库房
    • 交通物流
    • 智慧城市
    • 智慧农业
    • 智慧养殖
    • 能源电力
    • 石油石化
    • 智能家居
    • 物联网
    • 汽车与出行
  • 使用文档
  • MQTT 云平台
  • 登录
  • 注册
string(5) "2.0.0"