Arduino + ESP8266 для отправки сообщений MQTT

Мне интересно, может ли Arduino Uno (или любое другое семейство 328), которое подключается через последовательный порт к ESP8266, отправлять сообщения MQTT, а не AT-команды.

, 👍0


1 ответ


2

Я еще не использовал MQTT, поэтому не пробовал ни один из следующих вариантов. Я только знаю, что они существуют.

  1. Прошивка AT версии 2 содержит набор команд AT. для MQTT. Но разработка AT 2 для esp8266 завершилась версией 2.2. Требуется esp8266 с флэш-памятью 4 МБ.

  2. очень старая прошивка esp8266 под названием ESPLink поддерживает регистрацию в теме MQTT, а затем ее использование в Arduino с библиотекой EL-link. (Основной целью прошивки ESPLink было обновление OTA для Uno)

  3. Библиотека PubSubClient — очень популярная библиотека Arduino для MQTT. Он работает с любой стандартной сетевой библиотекой Arduino. Для esp8266 есть несколько вариантов комбинации прошивки+библиотеки. Могу только порекомендовать свою библиотеку WiFiEspAT (у всех остальных слишком много проблем). WiFiEspAT работает с прошивкой AT в esp8266. Лучше всего использовать AT 1.7.5 или "поддельную" прошивку AT ESP_ATMod, который является скетчем Arduino.

Третий вариант потребует гораздо больше флэш-памяти и оперативной памяти, чем первые два, но это стандартный и портативный способ. Вы можете перенести его в другую сетевую библиотеку или другой тип MCU.

EDIT: Другой вариант — написать скетч с помощью MQTT для esp8266 напрямую и передать данные в Uno или вообще не использовать Uno.

,