You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将IoT设备接入IBM Cloud?原Watson IoT平台停用,需MQTT通信方案

IoT网关通过MQTT连接IBM Cloud的实操指南

一、可选的IBM Cloud MQTT服务

优先选择以下两种适配IoT场景的服务:

  • IBM Watson IoT Platform:原生支持MQTT协议,是原Watson IoT服务的迭代版本,专门针对设备/网关接入设计,提供设备管理、消息流转、规则引擎等IoT专属能力
  • IBM Event Streams:基于Kafka的高吞吐量消息服务,同时兼容MQTT协议,适合需要大规模消息处理的场景

二、以IBM Watson IoT Platform为例的配置流程

1. 创建服务实例

  • 登录IBM Cloud控制台,搜索"IoT Platform",根据需求创建免费或付费实例
  • 进入实例控制台,完成组织ID、命名空间等基础配置

2. 注册网关设备

  • 在控制台的设备管理模块中,选择添加「网关」类型设备
  • 务必记录以下关键信息(后续MQTT连接必需):
    • 组织ID(Org ID)
    • 网关设备类型(Device Type)
    • 网关设备ID(Device ID)
    • 认证令牌(Authentication Token)

3. 网关侧MQTT客户端配置

使用任意支持MQTT的客户端库(如paho-mqtt、Eclipse Mosquitto),核心参数如下:

  • Broker地址:{你的组织ID}.messaging.internetofthings.ibmcloud.com
  • 端口:推荐使用TLS加密端口8883,明文端口为1883(不建议生产环境使用)
  • 客户端ID格式:g:{组织ID}:{设备类型}:{设备ID}(前缀g标识设备为网关)
  • 用户名:固定为use-token-auth
  • 密码:步骤2中记录的认证令牌

4. 示例代码(Python)

import paho.mqtt.client as mqtt
import time

# 替换为你的实际配置
ORG_ID = "your-org-id"
DEVICE_TYPE = "gateway-type"
DEVICE_ID = "gateway-001"
AUTH_TOKEN = "your-auth-token"

# 构建连接参数
client_id = f"g:{ORG_ID}:{DEVICE_TYPE}:{DEVICE_ID}"
broker_addr = f"{ORG_ID}.messaging.internetofthings.ibmcloud.com"

# 连接回调
def on_connect(client, userdata, flags, rc):
    print(f"连接状态码: {rc}")
    # 订阅云端下发的指令主题
    client.subscribe("iot-2/cmd/+/fmt/json")

# 消息接收回调
def on_message(client, userdata, msg):
    print(f"收到指令: {msg.topic} -> {msg.payload.decode('utf-8')}")

# 初始化客户端
client = mqtt.Client(client_id=client_id)
client.username_pw_set("use-token-auth", AUTH_TOKEN)
client.on_connect = on_connect
client.on_message = on_message

# TLS加密连接
client.tls_set()
client.connect(broker_addr, 8883, 60)

# 启动消息循环并模拟上报数据
client.loop_start()
try:
    while True:
        # 模拟网关采集的传感器数据
        sensor_data = '{"temperature": 26.1, "humidity": 58, "gateway_status": "online"}'
        # 按规范主题上报数据
        client.publish("iot-2/evt/status/fmt/json", sensor_data)
        time.sleep(5)
except KeyboardInterrupt:
    client.loop_stop()
    client.disconnect()

5. 连接验证

  • 在IoT Platform控制台的设备状态页面,查看网关是否显示为在线
  • 通过消息监控模块,实时查看网关上报的消息和云端下发的指令

三、常见问题排查

  • 连接失败:检查组织ID、设备信息、认证令牌是否正确,确认网关所在网络开放了8883端口
  • 消息无法上报:确认主题格式符合规范(事件上报主题格式为iot-2/evt/{事件名称}/fmt/{数据格式})
  • 认证失败:确保用户名固定为use-token-auth,密码为注册网关时生成的认证令牌

内容的提问来源于stack exchange,提问作者Marek Prachař

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:42:33