如何正确设置 IBM Bluemix Node-RED Iotout 节点以向设备 (Arduino) 发送命令?

How Can IBM Bluemix Node-RED Iotout node be set up correctly to send command to Device (Arduino)?

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

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

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