Как стать автором
Обновить

ESP-NOW — альтернативный протокол обмена данными для ESP8266 и ESP32. Основные понятия

Время на прочтение8 мин
Количество просмотров35K
Всего голосов 15: ↑14 и ↓1+20
Комментарии13

Комментарии 13

Аналогичен протоколу с низким энергопотреблением, используемому в беспроводной мыши 2,4 ГГц.

Пожалуйста, уточните насколько низко в % (или с цифрами по току) в сравнении с общим потреблением и с режимом wifi.
Можно ли уменьшить? Например уменьшением скорости обмена или периодичности посылок (или это несущественно с общим потреблением). Спасибо.

Интересное сравнение протоколов WiFi, ESP-NOW и LoRa www.youtube.com/watch?v=6NsBN42B80Q, там же приводят вариант решений для WiFi/Esp-NOW для Arduino
Японцы из M5Stack провели такое тестирование lang-ship.com/blog/work/m5stickc-esp-now-2

Резюме
Если вы используете ESP-NOW, потребление тока составляет около 3 мА для передачи с интервалом до 100 мс. Потребление тока увеличится примерно на 3 мА с интервалами в 10 мс
насколько низко в % (или с цифрами по току) в сравнении с общим потреблением и с режимом wifi.

По току кушает столько же сколько и при работе wifi. Выгода во времени — в более шустром соединении и передаче пакетов.

Видимо протокол предназначен для автоматики, где нужно быстрое время реакции, для этого предусмотрено постоянное соединение. Но все равно, не понятно ограничение протокола 1 Мбит/с, если не предполагается экономия энергии.

Да там как бы и постоянного соединения нет как такового, просто шлется "The Vendor Specific Action frame", с определенным макадресом (список макадресов я так понимаю формируется на этапе привязки), принял его адресат или нет — его проблемы.
Вобще esp now больше напоминает BLE adversing, только ездит на wifi.

А как выводить наружу информацию из сети ESP устройств, если все они будут использовать ESP-now. Например, можно ли поставить на обычный компьютер драйвера вайфай адаптера, чтобы он смог общаться с ESP-now сетью?

Самое простое — воткнуть в комп espиху и сварганить на ней мост esp-now<->ПК.
Для линуха где то натыкался на реализацию esp-now на raw_sock, правда wifi адаптер при этом должен работать в режиме монитора.

ESP-NOW можно использовать совместно с WiFi.

На таких устройствах вы физически не добудете столько данных, чтобы их передавать с такой скоростью.


Можно запрограммировать ESP-8266 так, что по включении он передаёт пакет по ESP-NOW (быстро, гораздо быстрее чем WiFi) и сразу выключается. Такая схема делает обоснованным схему запитывания от батареек, которые при этом будут жить долго.


В сочетании с повышенной по сравнению с WiFi дальностью (умельцы показывали до 700м) применение ESP-NOW привлекательно для автономных сенсоров, до которых непрактично тянуть провода.

Можно пояснить про максимальное количество пар. Вот я хочу сделать сеть сенсоров, ставлю одну ESP в качестве центральной ноды. Сколько сенсоров на эту ноду можно подвесить? И что делать по достижении этого лимита — ставить несколько ESPшек на центральной ноде?
Сколько сенсоров на эту ноду можно подвесить?

The maximum number of paired devices is twenty.


И что делать по достижении этого лимита — ставить несколько ESPшек на центральной ноде?

Как вариант — на центральной ноде перевести esp в promiscuous и разбирать все приходящие пакеты (хз правда насколько это работоспособно — надо проверять).

github.com/HarringayMakerSpace/ESP-Now — репозиторий одного из экспериментаторов ESP-NOW, возможно, подтолкнет к каким-либо решениям в Вашем случае. Вообще, нет ограничений на организацию иерархии, к примеру, я группирую информацию по территориальному признаку — котельная и находящийся рядом курятник или пасеку, собираю в более плотный пакет и переправляю тому, кто по смыслу может разумно распорядиться полученной информацией. В этом отношении интересны алгоритмы реализации mesh-сетей, которые должны позволить донести информацию от сенсоров и обратно к управляющим элементам по оптимальным маршрутам — если какой-либо узел перестал работать. Причем мне хочется это исполнить на MicroPython а не на C. Одна из вдохновляющих идей — здесь github.com/AnyMesh/anyMesh-Python
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории