现在在做一个鞋垫项目,先前是单鞋垫设备,目前想接入双鞋垫。是在onenet云平台上的同一产品下的设备
4条回答 默认 最新
檀越@新空间 2025-08-07 14:16关注下午好🌅🌅🌅
本答案参考通义千问在 HBuilderX 中接入 OneNet 云平台 的同一产品下的双设备,可以通过以下步骤实现。你提到的是“鞋垫项目”,目前是单设备,现在要扩展为双设备,并且这两个设备都在 OneNet 同一产品下。
✅ 一、准备工作
-
确保 OneNet 产品配置正确
- 登录 OneNet 官网。
- 进入你的产品页面,确认已经创建了两个设备(例如:
device1和device2)。 - 确保两个设备的 Device ID 和 API Key 正确无误。
-
获取设备信息
- 每个设备的 Device ID 和 API Key 是接入 OneNet 的关键参数。
- 如果你使用的是 MQTT 协议,还需要获取 Broker 地址 和 端口。
✅ 二、HBuilderX 中接入双设备的步骤
1. 使用 MQTT 协议接入 OneNet
(1) 引入 MQTT SDK
在 HBuilderX 中,可以使用 MQTT.js 或者 Paho-MQTT 来实现与 OneNet 的连接。
建议使用 Paho-MQTT,因为它支持浏览器环境。
(2) 配置两个设备的连接参数
// 设备1配置 const device1 = { clientId: 'device1ClientId', username: 'your_device_id_1', password: 'your_api_key_1', host: 'mqtts.heclouds.com', // OneNet MQTT Broker port: 8883, // MQTT TLS 端口 topic: 'device1_topic' // 可自定义 }; // 设备2配置 const device2 = { clientId: 'device2ClientId', username: 'your_device_id_2', password: 'your_api_key_2', host: 'mqtts.heclouds.com', port: 8883, topic: 'device2_topic' };(3) 创建两个独立的 MQTT 客户端实例
// 初始化设备1的客户端 const client1 = new Paho.MQTT.Client(device1.host, device1.port, device1.clientId); // 初始化设备2的客户端 const client2 = new Paho.MQTT.Client(device2.host, device2.port, device2.clientId);(4) 连接设备1和设备2
client1.connect({ userName: device1.username, password: device1.password, onSuccess: () => { console.log('设备1连接成功'); client1.subscribe(device1.topic); }, onFailure: (err) => { console.error('设备1连接失败:', err); } }); client2.connect({ userName: device2.username, password: device2.password, onSuccess: () => { console.log('设备2连接成功'); client2.subscribe(device2.topic); }, onFailure: (err) => { console.error('设备2连接失败:', err); } });(5) 接收数据
client1.onMessageArrived = function (message) { console.log('设备1收到消息:', message.payloadString); }; client2.onMessageArrived = function (message) { console.log('设备2收到消息:', message.payloadString); };
✅ 三、注意事项
- 同一个产品下的多个设备:OneNet 支持一个产品下添加多个设备,只要每个设备有唯一的 Device ID 和 API Key。
- MQTT Topic 路径:建议为每个设备设置不同的 Topic,避免消息混淆。
- TLS 加密连接:OneNet 推荐使用 TLS 连接(端口 8883),确保数据安全。
✅ 四、完整示例代码(简化版)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>OneNet 双设备接入</title> <script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script> </head> <body> <h1>OneNet 双设备接入示例</h1> <script> // 设备配置 const device1 = { clientId: 'device1ClientId', username: 'your_device_id_1', password: 'your_api_key_1', host: 'mqtts.heclouds.com', port: 8883, topic: 'device1_topic' }; const device2 = { clientId: 'device2ClientId', username: 'your_device_id_2', password: 'your_api_key_2', host: 'mqtts.heclouds.com', port: 8883, topic: 'device2_topic' }; // 创建客户端 const client1 = new Paho.MQTT.Client(device1.host, device1.port, device1.clientId); const client2 = new Paho.MQTT.Client(device2.host, device2.port, device2.clientId); // 连接 client1.connect({ userName: device1.username, password: device1.password, onSuccess: () => { console.log('设备1连接成功'); client1.subscribe(device1.topic); }, onFailure: (err) => { console.error('设备1连接失败:', err); } }); client2.connect({ userName: device2.username, password: device2.password, onSuccess: () => { console.log('设备2连接成功'); client2.subscribe(device2.topic); }, onFailure: (err) => { console.error('设备2连接失败:', err); } }); // 接收消息 client1.onMessageArrived = function (message) { console.log('设备1收到消息:', message.payloadString); }; client2.onMessageArrived = function (message) { console.log('设备2收到消息:', message.payloadString); }; </script> </body> </html>
✅ 五、总结
重点步骤如下:
- 获取两个设备的 Device ID 和 API Key
- 使用 Paho-MQTT 创建两个独立的 MQTT 客户端
- 分别连接两个设备并订阅各自的 Topic
- 接收并处理两个设备的数据
注意: 请确保你使用的 OneNet 产品支持多设备接入,并且每个设备都有唯一标识。
如需进一步实现数据可视化或控制功能,也可以结合 HBuilderX 的 UI 组件进行开发。
解决 无用评论 打赏 举报-