API-интерфейс Azure IoT REST от облака к устройству
Я исследовал отправку данных с устройства в облако с помощью Azure REST Apis. Работает без проблем, без проблем. Я не нахожу хороших статей об отправке сообщений Cloud-to-Device на плату Arduino с помощью Azure IoT Hub REST Apis. Может ли кто-нибудь дать предложения по этому
3 ответа
Вы также можете отправить запрос, как это делает портал Azure. Все C2D из портала AZ отправляются через эту конечную точку https://main.iothub.ext.azure.com/api/Service/SendMessage/ а полезная нагрузка представляет собой json, который выглядит следующим образом:
{
"hostName": "iothub-hostname",
"owner": "twinUpdate",
"key": "key for the iothub",
"deviceID": "your device on that hub",
"body": "{\"test\": \"This is a test over postman\"}",
"properties": "[]"
}
Помните, что вам нужно добавить заголовок авторизации с действительным токеном на предъявителя. Вы можете получить это, войдя в AZ Portal.
Как сказал Питер Пэн, в настоящее время нет RESTful API для отправки C2D-сообщений. Тем не менее, у вас все еще есть другие варианты.
Используйте приложение Azure Function. Вы можете создать HTTP-приложение-функцию запуска Azure для использования в качестве RESTful-прокси и запустить IoT Hub SDK в приложении-функции Azure для отправки сообщений C2D.
Используйте AMQP поверх WebSockets с портом 443, если вы не можете использовать порт 5671 для AMQP для подключения к IoT Hub на вашей стороне обслуживания. Мы разработали веб-приложение IoT Hub devtool на основе Rhea, и вы можете сослаться на наш код.
Согласно официальному документу " Отправка и получение сообщений с помощью IoT Hub", а также после просмотра исходных кодов Azure IoT Hub для отправки сообщений "облако на устройство" на разных языках, REST API для поддержки отправки "облако на устройство" не поддерживается. Сообщения. Для отправки сообщения c2d из приложения в концентратор IoT Azure рекомендуется использовать протокол AMQP, а простой способ - использовать Azure IoT Hub SDK. Это вы можете обратиться к разделу Communication protocol
, как показано ниже.
Однако, если вы хотите получить сообщение c2d от Arduino, вы можете обратиться к разделу Cloud-to-device messages
и использовать REST API Receive Device Bound Notification
на Ардуино.