使用 MQTT 连接到 IBM Bluemix 物联网
本文提供了一个分步指南,向您展示如何使用 MQTT 设置与 IBM Bluemix 的连接,以及用于额外设置和方便使用的命令和代码示例。
获取新的 Intel® 物联网开发者套件,这是一套完整的软硬件解决方案,允许开发者使用 Intel® Galileo 和 Intel® Edison 开发板创建令人兴奋的新解决方案。请访问 Intel® 物联网开发者专区。
本文提供了一个分步指南,向您展示如何使用 MQTT* 设置与 IBM* Bluemix* 的连接,以及用于额外设置和方便使用的命令和代码示例。
IBM* Bluemix* 物联网初始设置
-
创建账户(如果您还没有)。
-
登录您的账户。
-
如果出现“新仪表板”选项,请选择它。
添加物联网平台
-
转到您的仪表板,然后单击“使用服务或 API”以添加新服务。
-
单击“物联网平台”。
-
在“服务名称”字段中,键入您选择的名称。
-
从“选定的计划”下拉列表中,选择一个定价计划。
-
单击“创建”按钮。
添加设备类型
-
在“连接您的设备”下,单击“启动仪表板”按钮。
-
这将打开一个新的“IBM Watson IoT Platform”窗口。
-
在“设备类型”图块上,单击“添加设备”按钮。
-
单击“创建设备类型”按钮。
-
这将打开“创建设备类型”页面。
-
单击“创建设备类型”按钮。
-
填写“名称”和“描述”字段,然后单击“下一步”。
-
指定模板的属性,然后单击“下一步”。
-
在“提交信息”步骤中,单击“下一步”。
-
如果需要,添加元数据并单击“创建”。
添加设备
-
从“选择设备类型”下拉列表中,选择您在上一个部分中创建的新设备类型,然后单击“下一步”。
-
在“设备 ID”字段中,键入您的设备的 ID,然后单击“下一步”。
-
如果需要,添加元数据并单击“下一步”。
-
在“安全”步骤中,通过单击“下一步”自动生成身份验证令牌。
-
单击“添加”。
-
记下“您的设备凭据”下的“身份验证令牌”。
摘要
如果您已按照上述所有步骤操作,您应该拥有程序连接到 MQTT* 服务器所需的所有信息
MQTT_SERVER - 使用 \<您的组织 ID\>.messaging.internetofthings.ibmcloud.com,并带上 ssl://(用于 C++)或 mqtts://(用于 JavaScript*)协议
MQTT_CLIENTID - 使用 d:\<您的组织 ID\>:\<您的设备类型\>:\<您的设备 ID\>
MQTT_TOPIC - 使用 iot-2/evt/status/fmt/json
MQTT_USERNAME - 使用 use-token-auth
MQTT_PASSWORD - 使用具有设备授权令牌的字符串
C++ 的其他设置
在 Intel® Edison 开发板上运行 C++ 代码时,您需要在 Eclipse* 中设置 MQTT* 客户端参数。为此
-
转到运行配置,然后在应用程序之前执行的命令字段中,键入以下内容
chmod 755 /tmp/<Your app name>; export MQTT_SERVER="ssl://<Your organization ID>.messaging.internetofthings.ibmcloud.com:8883"; export MQTT_CLIENTID="d:<Your organization ID>:<Your device type>:<Your device ID>"; export MQTT_USERNAME="use-token-auth"; export MQTT_PASSWORD="<Your authorization token>"; export MQTT_TOPIC="iot-2/evt/status/fmt/json"
-
单击应用按钮以保存这些设置。
-
单击运行按钮以在您的开发板上运行代码。
JavaScript* 的其他设置
在 Intel® Edison 开发板上运行 JavaScript* 代码时,您需要在 Intel® XDK IDE 中设置 MQTT* 客户端参数。将以下条目添加到 config.json 文件
{
"MQTT_SERVER": "mqtts://<Your organization ID>.messaging.internetofthings.ibmcloud.com:8883",
"MQTT_CLIENTID": "d:<Your organization ID>:<Your device type>:<Your device ID>",
"MQTT_USERNAME": "use-token-auth",
"MQTT_PASSWORD": "<Your authorization token>",
"MQTT_TOPIC": "iot-2/evt/status/fmt/json"
}