Arduino + ESP8266 для отправки сообщений MQTT
Мне интересно, может ли Arduino Uno (или любое другое семейство 328), которое подключается через последовательный порт к ESP8266, отправлять сообщения MQTT, а не AT-команды.
@Guy . D, 👍0
1 ответ
Я еще не использовал MQTT, поэтому не пробовал ни один из следующих вариантов. Я только знаю, что они существуют.
Прошивка AT версии 2 содержит набор команд AT. для MQTT. Но разработка AT 2 для esp8266 завершилась версией 2.2. Требуется esp8266 с флэш-памятью 4 МБ.
очень старая прошивка esp8266 под названием ESPLink поддерживает регистрацию в теме MQTT, а затем ее использование в Arduino с библиотекой EL-link. (Основной целью прошивки ESPLink было обновление OTA для Uno)
Библиотека PubSubClient — очень популярная библиотека Arduino для MQTT. Он работает с любой стандартной сетевой библиотекой Arduino. Для esp8266 есть несколько вариантов комбинации прошивки+библиотеки. Могу только порекомендовать свою библиотеку WiFiEspAT (у всех остальных слишком много проблем). WiFiEspAT работает с прошивкой AT в esp8266. Лучше всего использовать AT 1.7.5 или "поддельную" прошивку AT ESP_ATMod, который является скетчем Arduino.
Третий вариант потребует гораздо больше флэш-памяти и оперативной памяти, чем первые два, но это стандартный и портативный способ. Вы можете перенести его в другую сетевую библиотеку или другой тип MCU.
EDIT: Другой вариант — написать скетч с помощью MQTT для esp8266 напрямую и передать данные в Uno или вообще не использовать Uno.
- ESP8266 не может подключиться к брокеру MQTT
- Проблема с использованием PubSubClient, функция "обратный вызов" работает некорректно
- Разбор сообщений с сервера MQTT
- AT-команда не отвечает на последовательный монитор
- Отправка данных Arduino в MySQL с помощью phpMyAdmin и XAMPP на Windows10
- Arduino выводит значения мусора на serial monitor с ESP8266
- ошибка: espcomm_upload_mem failed при загрузке скетча
- фатальная ошибка ESP8266WiFi.h: Такого файла или каталога нет