Объединение WiFiWeb и esp-now

Имелся скетч, в котором собирались данные с нескольких датчиков температуры, влажности, освещенности и углекислого газа. Данные записывались в файл на SD и, по накоплении некоторого количества по емайл, отправлялись на обработку на ПС. Наиболее трудоемкой частью обработки данных являлась процедура объединения нескольких записей в один массив. Чтобы избежать этого был создан скетч, объединяющий все ранее осуществленное и использующий методику esp-now для приема отдельных записей и записи их в единый массив, доступный через WEB.

Созданный скетч работает, но шильдик приемщик записей не получает, хотя при отсылке получается сообщение: Sent with success. При работе программы, содержащей только работу с esp-now, шильдик приемщик получает запись, а при отсылке получается сообщение: Last Packet Send Status: Delivery Success

Sent with success

Поделитесь опытом!

Деактивируйте соединение по WiFi при работе с ESP-Now. Радиомодуль один, он не разорвётся на работу по двум протоколам в одно и то же время.

1 лайк

Протокол там один — 802.11, и в нем есть родная схема разрешения конфликтов. Единственное ограничение - и то и то должно быть на одном канале.

Спасибо!
Но у меня wifi обслуживает WEBserver, почту и esp-now. В моем случае трудно ожидать, что приостановка wifi позволит пользоваться esp-now, если только не включать все по мере надобности, что в случае WEB невозможно.
Я нашел место ошибки, оно расположено между if (esp_now_init() != ESP_OK) которое проходит в setup верно и вслед расположенным: esp_now_register_send_cb(OnDataSent); // Сообщает о ошибке.

Поторгуйтесь с микроконтроллером, может уговорите его работать иначе.

Проблема решена введением 5 минут тишины, как во флоте для приема СОС. Передача возможно if(minutes<55){…