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);

Почему мое тело-результат выглядит как массив ASCII? (Примечание: с помощью обозревателя Azure IoT)

Это должен быть такой массив. Надо ли распаковывать этот массив с другой стороны?

введите описание изображения здесь

Я хочу иметь возможность отправлять данные в формате JSON, как это делает симулятор устройства Azure:

введите описание изображения здесь


person mleister    schedule 14.03.2021    source источник


Ответы (1)


Да ладно, разобрался. В следующем примере данные будут отправляться в формате 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);
person mleister    schedule 15.03.2021