在线的Azure IoT Hub开发者工具


Click here to read English version

Azure IoT发布了Device Explorer使发送和接受IoT Hub消息变得容易,可以Device Explorer只能运行于Windows之上。

我们开发了一个在线的Azure IoT Hub工具,你不必安装任何东西就可以在浏览器里使用它来发送和接收IoT Hub的消息。

由于一些限制,目前此工具还无法在谷歌浏览器中运行[为什么?],但你可以通过运行一个中间人工具来解决这个问题,比如Fiddler。这个工具现在已经可以在谷歌浏览器中使用了。

你可以通过浏览器访问https://azure-iothub.github.io/v2/来使用这个工具,将Device Connection String粘贴到输入框中,然后点击Connect按钮。你可以在Azure的控制台找到Device Connection String。

Azure Portal

Azure Portal

Connect

如果你想通过MQTT over WebSockets连接IoT Hub,打开Show MQTT over WebSockets connection options开关,就可以看到MQTT相关的参数。如果你不知道MQTT是什么,并且只想使用SDK,那么可以忽略它。

MQTT connection options

After connected, switch to D2C Messages tab. You can send anything, including JSON, XML and plaintext. Just type anything in the box, and click send button. If your server is listening IoT Hub, it should receive the message you just sent. Also, switch MQTT options on if you need.

连接成功后,转到D2C Message标签。你可以发送包括JSON、XML和文本等任何消息。只需将信息填入输入框中,然后点击Send按钮。如果你的服务器正在监听IoT Hub,它将会收到你刚刚发出的消息。同样,如果需要,你可以打开显示MQTT连接相关的参数。

Send D2C Message

在C2D Message标签中你可以看到来自云端的消息。

Receive cloud message

Direct Method是用于需要立即确认通讯结果的功能,通常用于控制设备,比如发生指令打开一个风扇。你可以通过https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-direct-methods了解更多有关Direct Methods的内容

切换至Direct Methods标签来使用它。首先你需要在设备端添加一个需要监听的method。点击Add a method listener,填写method的名称,比如reboot,这代表当云端发送reboot这个method时,设备就会被通知到。Response payload是设备回应的正文,它将在云端调用direct method函数时已回调的形式传递给云端。Status code也是设备回应的一部分,当设备没有回应正文时,这个状态码通常是204。Response delay是对网络延迟的模拟,回应正文会在指定的延时之后发送至云端。

Add method

注意,如果使用Device Explorer调用direct method,你必须使用JSON格式的数据作为response payload,否则Device Explorer会报错。

Call direct method

Device twins是用来保存设备状态信息的JSON文档,你可以通过https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-device-twins了解更多有关Device twins的内容。

切换至Device Twin标签以获取和发送device twin。

Device twin

You can see Desired Properties and Reported Properties. Desired Properties is managed by the cloud, it will update automatically on the page. Reported Properties is managed by devices. If you want to update Reported Properties, write a JSON format string in Send Reported Properties to Cloud box. You needn't write the entire device twin, but just write properties need update.

可以看到Desired Properties和Reported Properties。Desired Properties是云端维护的,它会在页面中自动更新。Reported Properties是设备维护的。如果想要更新Reported Properties,可以在Send Reported Properties to Cloud输入框中填写JSON数据。你无需将整个device twin都写入输入框中,执行填写需要更新的部分即可。

Update device twin

如有任何反馈,可以通过https://github.com/azure-iothub/v2/issues提交。

为何无法在谷歌浏览器中运行

由于未知的原因,IoT Hub要求客户端提供证书以进行身份验证,即使使用了key来连接IoT Hub而非X.509证书。然而IoT Hub并不会验证所请求的证书。当谷歌浏览器发现服务器需要一张无法找到的证书时,就断开的连接。而其他的浏览器会尝试着不带证书去连接服务器。

在我们将入口从wss://<iothubname>.azure-devices.net/$iothub/websocket改为wss://<iothubname>.azure-devices.net/$iothub/websocket?iothub-no-client-cert=true之后,这个工具已经可以在谷歌浏览器里使用了。

Comments (0)

Skip to main content