0

我有一个成功注册为 IBM IoTF 设备的 Arduino Uno。它现在可以毫无问题地向 Bluemix Node-RED 应用程序发送信息。现在,我希望 Node-RED 应用程序向设备(Arduino Uno)发送命令。Arduino 订阅了 MQTT,没有任何错误。但是,它没有收到来自 Node-RED 的任何命令。我按照下面链接中的说明在 Node-RED 中创建了另一个流,以显示命令何时发布以及命令正在显示,因此它们似乎要发送到 MQTT 代理。但是,设备(Arduino)没有收到它们。我怎样才能弄清楚如何让它工作?

Node-RED,IOT Foundation Out 节点未发送命令

我将 IBM IoT Out Node 参数设置如下: 身份验证:Bluemix 服务输出类型:设备命令 设备类型:Arduino-tempsensor(这是我在 IoTF 中注册时用于设备类型(名称)的相同字符串)设备ID:我把MAC地址放在这里,应该是更多命令类型:状态(我在这里使用了“状态”这个词。大小写重要吗?我应该从哪里得到这个值?我用“状态”,因为它在主题中:“iot-2/cmd/status/fmt/json”是正确的吗?)格式:json(这里大写重要吗?)数据:{“d”:{“myName”:“Arduino Uno”,“温度”: 989}}(我使用它是因为它是 JSON,我只想在设备上看到任何东西)名称:IBM IoT App Out

4

1 回答 1

2

我输入了整个问题,然后我想到查找已发布命令的测试流程应该将所有参数设置为与输出完全相同。当我尝试这样做时,我没有收到命令消息。然后,我意识到我的 mac 地址(设备 ID)在一个地方大写,而另一个地方没有。我用来注册设备的 MAC 地址(设备 ID)都是大写的,所以我为命令创建了 Iot-out 节点,使其全部大写,并创建了 Iot-in 节点来测试消息,以便它全部大写。现在它起作用了!然后,我回头看了看设备(它正在打印到串行监视器,所以我可以看到发生了什么),我现在看到了这些消息!因此,请确保您的参数遵循相同的大写!

于 2015-10-06T03:38:49.850 回答