Добрый день, камрады. Такая непростая ситуация. При построении обмена с другим контроллером "диалог" по Serial проходит нормально - и прием и передача. А вот когда начинаю цеплять модуль PubSubClient (mqtt), естественно с поддержкой Wi-Fi сигналы по Serial как будто теряются. Контроллер ESP-01...
Я использовал в MajorDomo следующую фичу: на ESP периодически с отправкой топиков получаю millis() и отправляю в топике uptime. В MajorDomo сравниваю через определенные промежутки времени получаемые uptime и если прошлый и полученный равны - значит плата отвалилась.
Ну тогда совсем для "профессионалов"
#096 Как правильно подключить реле к ESP8266. Ардуино уроки
Релейный модуль для esp01. Управление через вэб интерфейс с прошивкой Tasmota.
Вот кусок кода (не помню на основе чего писал, но код рабочий)
void SetRelayStatus(byte Relay, byte Status)
{
/*
Open relay 1 :A0 01 01 A2
Close relay 1 :A0 01 00 A1
Open relay 2 :A0 02 01 A3
Close relay 2:A0 02 00 A2
Open relay 3 :A0 03 01 A4
Close relay 3 :A0 03 00...
Во-первых. Предполагаю что на пинах GPIO0 и GPIO2 стоит подтяжка к High, во-вторых проще использовать INPUT_PULLUP и подавать кнопками ноль. При этом нет гемора при перезагрузке модуля и входе в boot
Собственно сабж: Решил воспользоваться решением от компании RobotDyn с Arduino 2560 + ESP8266 на борту. Получать команду по mqtt для esp, пересылать по Serial Arduino Mega, затем возвращать ESP и отправлять результ по mqtt.
Для асинхронного приема данных по Serial использовал библиотеку...
Тоже занимаюсь сейчас проблемой "скрещивания" но взял для этого Arduino Mega +ESP на одной плате от RobotDyn (не реклама - совет)
НО у меня другая проблема - от ESP у меня все посылается по Serial на ура, а вот обратно - что-то пошло не так :( ничего не приходит - видимо теряется во время...
1) я Использовал библиотеки
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
2) пины которые использовал для связи с BME задавал так
#define esda 2 // for ESP GPIO0 = D3
#define escl 0 // for ESP GPIO2 = D4
Adafruit_BME280 bme;
в setup()
Wire.begin(esda, escl)...