#c #mqtt #microcontroller #firmware #zephyr-rtos
#c #mqtt #микроконтроллер #прошивка #zephyr-rtos
Вопрос:
Я новичок в Zephyr OS и хотел бы знать, возможно ли реализовать MQTT на Zephyr OS с сотовыми устройствами, такими как SIM800 или Quectel BG96, которые обычно работают на UART и поддерживают протокол TCP, который является основой MQTT.
Я просмотрел пример для MQTT, приведенный для Zephyr, который выполняется по локальной сети, но не смог понять, как реализовать то же самое с сотовым устройством.
Ответ №1:
Сам по себе MQTT не требует TCP в качестве транспортного уровня, но вам может понадобиться один транспортный уровень. Большинство существующих реализаций полагаются на TCP в качестве транспортного уровня, например:
Существует реализация, которая только сериализует и десериализует пакеты, совместимые с MQTT. Но эта реализация основана на стандарте MQTT-SN (сенсорная сеть) и требует MQTT-SN-совместимого MQTT-шлюза или MQTT-брокера. Эти пакеты вы можете передавать по своему усмотрению: как поток UART, ввод-вывод карты памяти и т. Д.
Кроме того, проверьте, чтобы реализовать и предоставить сокет TCP / IP для клиентской библиотеки MQTT, которая включает спецификацию AT-команд обоих устройств:
Комментарии:
1. Спасибо @fisehara, я заглянул в клиентскую библиотеку MQTT, где должны быть реализованы методы чтения и записи, которые могут быть на любом транспортном уровне. Реализация этих методов и отправка пакета на сотовое устройство, настроенное для TCP, должны работать.