2501_90674617 2025-08-07 14:15 采纳率: 0%
浏览 7

hbuilderx怎么一次接入onenet云平台统一产品下的双设备?

现在在做一个鞋垫项目,先前是单鞋垫设备,目前想接入双鞋垫。是在onenet云平台上的同一产品下的设备

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2025-08-07 14:16
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    HBuilderX 中接入 OneNet 云平台 的同一产品下的双设备,可以通过以下步骤实现。你提到的是“鞋垫项目”,目前是单设备,现在要扩展为双设备,并且这两个设备都在 OneNet 同一产品下


    ✅ 一、准备工作

    1. 确保 OneNet 产品配置正确

      • 登录 OneNet 官网
      • 进入你的产品页面,确认已经创建了两个设备(例如:device1device2)。
      • 确保两个设备的 Device IDAPI Key 正确无误。
    2. 获取设备信息

      • 每个设备的 Device IDAPI 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 IDAPI 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>
    

    ✅ 五、总结

    重点步骤如下:

    1. 获取两个设备的 Device ID 和 API Key
    2. 使用 Paho-MQTT 创建两个独立的 MQTT 客户端
    3. 分别连接两个设备并订阅各自的 Topic
    4. 接收并处理两个设备的数据

    注意: 请确保你使用的 OneNet 产品支持多设备接入,并且每个设备都有唯一标识。

    如需进一步实现数据可视化或控制功能,也可以结合 HBuilderX 的 UI 组件进行开发。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月7日