У меня есть тестовая конфигурация, которая состоит из raspberry pi 3 b+, имеет сервер mqtt, esp32 с некоторыми светодиодами и веб-страницу для их переключения (webpage и esp32 являются клиентами). Для esp32 я использую PubSubClient имеет библиотеку для связи. В основном, что происходит, когда я переключаю светодиод, я публикую тему "in1", на которую подписан esp32, читает его полезную нагрузку ("включено" или "выключено"), а затем публикует сообщение для броузера в соответствии с состоянием вывода для подтверждения. Имейте в виду, что все это происходит в локальной сети. После некоторых тестов я увидел, что это занимает макс. 10 мс для браузера, чтобы опубликовать сообщение. Однако полный цикл занимает от 20 до 100 мс с момента первого опубликования сообщения до сообщения подтверждения (сообщение esp32 отправляет отчет о состоянии вывода). Я обнаружил, что это не имеет никакого отношения к коду, так как проходит 1 мс с момента, когда подписанная тема получает новое сообщение, пока esp32 не опубликует состояние вывода разработанного светодиода.

Raspberry Pi работает под управлением Mosquitto v 1.5.5 с включенными веб-сокетами. Не думаю, что это как-то связано с конфигурацией, поскольку то же самое происходит, когда я тестирую его с сервером Mosquitto, установленным на моем ноутбуке.

Все сообщения и подписки 0 кв.

Я просто думаю, что это смешное количество времени для общения в локальной сети, не говоря уже о том, что оно очень противоречиво (от 20 до 100 мс).

Очень благодарен за всю помощь.

1 ответ1

0

Вопрос был решен. Все, что мне нужно было сделать, это отключить режим энергосбережения esp32 wifi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .