AzureIoTHub:如何以 JSON 格式发送遥测数据?

问题描述

我使用了 Azure 的示例存储库来发送遥测数据:https://github.com/Azure/azure-iot-arduino/tree/master/examples/esp8266/iothub_ll_telemetry_sample

我没有修改任何代码。这是重要的部分:

const char* telemetry_msg = "test_message";
message_handle = IoTHubMessage_CreateFromString(telemetry_msg);
result = IoTHubDeviceClient_LL_SendEventAsync(device_ll_handle,message_handle,send_confirm_callback,NULL);

为什么我的 body-result 看起来像一个 ASCII 数组? (注意:使用 Azure IoT Explorer)

它是否意味着像这样的数组。我必须在另一边解压这个数组吗?

enter image description here

我希望能够像 azure 设备模拟器那样以 JSON 格式发送数据:

enter image description here

解决方法

没关系,想通了。以下示例将以 JSON 格式发送数据:

char telemetry_msg_buffer[80];
sprintf(telemetry_msg_buffer,"{\"temperature\":11.11,\"humidity\":12.12,\"scale\":\"13.13\"}");
message_handle = IoTHubMessage_CreateFromString(telemetry_msg_buffer);