• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Варианты получения данных по ESP-NOW и загрузки их по WiFi на сервер?

doexec

New member
Доброе утро, сочувствующим.

Все таки решил собирать с датчиков/сенсоров/кнопок данные по ESP-NOW. Информация бегает туда-сюда, всё хорошо, но вот вопрос - как теперь полученные данные загрузить на сервер?

Вижу варианты:

1) После каждой сессии обмена ESP-NOW перезагружать WiFi у "главного" ESP в режиме клиента WiFi-сети, отдать данные, и отключиться от сети.
2) Отдать полученные данные второму ESP по RX-TX, а он уже отправит на сервер по WiFi.
3) Подключить Ethernet-модуль и отдавать данные по проводу.

Подскажите, кто уже делал подобное - какой способ выбрали?
Спасибо!
 

pvvx

Активный участник сообщества
Скорее всего, в вашу игру в ESP-NOW тут никто не играл по банальным причинам:
  • Скорость передачи данных у ESP-NOW очень низкая
  • Потребление ESP8266 очень большое
  • Качество связи у ESP-NOW хуже чем у BLE-Mesh/Zigbee
  • Стабильность (меньше выпадений) и дальность связи у новых чипов BT5.0 (или BT4.2 c RF TX +10 Дб) лучше
  • ESP-NOW не дает возможности рядом работать обычному WiFi.
  • Ныне чипы ESP8266 дороже чипов BLE.
  • У ESP мало и убогие аппаратные контроллеры (требуются внешние костыли для некоторых реализаций по сумме превышающие стоимость самого модуля ESP8266).
  • У ESP наличие множественных аппаратных и софт. багов (требующих применения внешних костылей по сумме превышающих стоимость самого модуля ESP8266).
  • Полная несовместимость протокола ESP-NOW с другими.
Т.е. никакого спортивного интереса в ESP-NOW не наблюдается.
 

EvgeniyS

Member
После каждой сессии обмена ESP-NOW перезагружать WiFi у "главного" ESP в режиме клиента WiFi-сети, отдать данные, и отключиться от сети.
На ESP8266 не проверял, но ESP32 одновременно работает по ESP-NOW и WiFi клиентом (использую ESP-NOW для поиска новых модулей и передачи данных о сети: ssid, pass и т.д. для возможности подключения новых модулей к общей сети).
 

doexec

New member
Скорее всего, в вашу игру в ESP-NOW тут никто не играл по банальным причинам:
  • Скорость передачи данных у ESP-NOW очень низкая
  • Потребление ESP8266 очень большое
  • Качество связи у ESP-NOW хуже чем у BLE-Mesh/Zigbee
  • Стабильность (меньше выпадений) и дальность связи у новых чипов BT5.0 (или BT4.2 c RF TX +10 Дб) лучше
  • ESP-NOW не дает возможности рядом работать обычному WiFi.
  • Ныне чипы ESP8266 дороже чипов BLE.
  • У ESP мало и убогие аппаратные контроллеры (требуются внешние костыли для некоторых реализаций по сумме превышающие стоимость самого модуля ESP8266).
  • У ESP наличие множественных аппаратных и софт. багов (требующих применения внешних костылей по сумме превышающих стоимость самого модуля ESP8266).
  • Полная несовместимость протокола ESP-NOW с другими.
Т.е. никакого спортивного интереса в ESP-NOW не наблюдается.
Спасибо за ответ!
Наверно, мне стоило начать с описания своих задач, так как они пока что банально-бытовые, а не производственные.

Затея с ESP-NOW оправдывается, если сравнивать с обычным WiFi подключением - выигрываем и по скорости подключения, и по энергосбережению.
Единственная проблема - это передача с "мастера", который выступает как шлюз и должен соединять две сетки.

В рамках моей сегодняшней затеи (ну и конечно же, моих скудных знаний) ESP-NOW подходит. Подрасту - буду изучать BLE.
 

doexec

New member
На ESP8266 не проверял, но ESP32 одновременно работает по ESP-NOW и WiFi клиентом (использую ESP-NOW для поиска новых модулей и передачи данных о сети: ssid, pass и т.д. для возможности подключения новых модулей к общей сети).
Спасибо за ответ!

Можешь поделиться скетчем для ESP32, где одновременно работают ESP-NOW и WiFi-client?
Я разберу скетч и адаптирую под себя. В целом - мне подходит схема, где esp8266 - клиенты, а esp32 - сервер/шлюз.
 

pvvx

Активный участник сообщества
Тут описывают потери и время передачи в ESP-NOW:
т.е. это надо учитывать и передавать данные с подтверждением или сотни раз одно и то-же, если данные меняются редко...
 

doexec

New member
Тут описывают потери и время передачи в ESP-NOW:
т.е. это надо учитывать и передавать данные с подтверждением или сотни раз одно и то-же, если данные меняются редко...
Ого, спасибо, погляжу.
 

nikolz

Well-known member
В ESP8266 можно без перезагрузки работать и на ESP-NOW и на Wifi.
Лет надцать назад собирал такой эксперимент.
Две ESP общались по ESP-NOW,
одна из них переключалась на Wifi и отсылала данные которые принимал на компьютере.
 

Kabron

Member
Делаю сначала обмен по ESP-NOW, затем запускаю Blynk и ESP.restart().
Все замечательно.
 

pvvx

Активный участник сообщества
Та нет - начнут передавать IPv4/6 пакеты через ESP-NOW. HTTPS :)
Это же можно сделать, как и встроить всякие C++, LUA, Java, Python, sqlite3, и т.д. в ESP.
Вот только практического толку от этого никакого, как и у всей затеи игр в Arduino.
Поиграть и выбросить, т.к. стабильно и безотказно работать такое никогда не будет из-за многих физических ограничений.
Зато похвастаться в вечернем блоге можно :p
 

Junkie

Member
  • Стабильность (меньше выпадений) и дальность связи у новых чипов BT5.0 (или BT4.2 c RF TX +10 Дб) лучше
а не знаете про надежность связи у nrf24l01 ?
у меня точно такая же задача, синхронизация нескольких есп и иногда не все получается запустить одновременно, думал использовать дополнительно этот модуль или все же лучше блютусовый взять?
может посоветуюте что с алика недорогое и чтоб была готовая библиотека под него или хотя бы документация, я смотрю там модули с кучей ног неподписанных, хотелось бы подкючить просто питание и одну две ноги для обмена данными
 

pvvx

Активный участник сообщества
Тут тема про ESP-NOW...
Для примера, что ESP теряет более 50% пакетов можно посмотреть любое видео по ESP-NOW.
К примеру:
И это при дистанции связи в пару cантиметров :) Что будет при 10 метрах?
Статистику и замеры еспэшники боятся показывать?

С чем это связано - неизвестно. Но если исключить ESP, то к примеру в шумной среде с BLE получаем 7%
 
Добрый вечер всем. Так как я сам в процессе поиска информации не раз с яндекса приходил на эту страницу, решил написать тем, кто так же как и я попадёт сюда.
Первое: видео это постом выше какой-то бред, либо у снимающего бракованный чип. У меня 2шт esp-01s разнесены по самым дальним углам обычной двухкомнатной квартиры, одна каждую секунду отправляет пакет с порядковым номером +1, другая принимает и выводит в serial на компьютер сколько отправлено и сколько принято. Так вот, пока дошло до 3000 отправленных и 3000 принятых, ни чего не потеряно.
Второе: хотелось бы пояснить по этому сообщению
Скорее всего, в вашу игру в ESP-NOW тут никто не играл по банальным причинам:
  • Скорость передачи данных у ESP-NOW очень низкая
  • Потребление ESP8266 очень большое
  • Качество связи у ESP-NOW хуже чем у BLE-Mesh/Zigbee
  • Стабильность (меньше выпадений) и дальность связи у новых чипов BT5.0 (или BT4.2 c RF TX +10 Дб) лучше
  • ESP-NOW не дает возможности рядом работать обычному WiFi.
  • Ныне чипы ESP8266 дороже чипов BLE.
  • У ESP мало и убогие аппаратные контроллеры (требуются внешние костыли для некоторых реализаций по сумме превышающие стоимость самого модуля ESP8266).
  • У ESP наличие множественных аппаратных и софт. багов (требующих применения внешних костылей по сумме превышающих стоимость самого модуля ESP8266).
  • Полная несовместимость протокола ESP-NOW с другими.
Т.е. никакого спортивного интереса в ESP-NOW не наблюдается.
по пунктам:
  • зачем большая скорость передачи для опроса датчика температуры? (вопрос топикстартера был о датчиках/сенсорах/кнопках)
  • для устройств питающихся от сети это не важно.
  • отличное качество связи для датчиков/сенсоров/кнопкок (выше пояснил)
  • см. пункт выше
  • бред! что я не так делаю? во время передачи между двумя esp по углам квартиры связь wifi на всех устройствах есть и скорость доступа не изменяется.
  • возможно.
  • мне ни какие костыли не понадобились
  • багов еще не встречал
  • зачем?
Я почитал этот форум некоторое время и у меня создалось впечатление что Товарищ pvvx хорошо соображает, но зачем-то намеренно обсирает esp и всё что с ним связано... толкает свои BLE чипы куда надо и куда не надо. pvvx поймите вы наконец, что например мне надо знать температуру в погребе раз в 10 минут, я куплю esp за 80 руб, припаяю пару проводов, скачаю ардуино, загружу скетч из готовых примеров и времени у меня уйдет на это всего максимум час. Какой у меня другой вариант? заказать что то из того, за что вы топите? потратить полгода на изучение каких-то языков программирования, разобраться с документацией на этот чип? ESP и Ардуино это лучшее что я вижу для таких как я - непрофессионалов, которым нужно сделать единичное бытовое устройство с наименьшими вложениями сил и времени. И так как этот форум о "esp8266" и он вам не нравится, то у меня вопрос - зачем вы сюда приходите? если человеку не нравится шашлык, то он не будет ходить постоянно в шашлычную чтобы ворчать там постоянно что шашлык дерьмо)) это какой - то мазохизм...

И так главное: у меня вышло пока так, как в первом варианте у топик стартера.
в режиме WiFi.mode(WIFI_AP_STA);
жду пакет esp-now с отключенным wifi (WiFi.disconnect();)
как только получаю, включаю wifi (WiFi.begin(ssid, password);)
передаю данные в интернет
опять отключаю wifi (WiFi.disconnect();) и жду следующий пакет.
меня устраивает, это работает.
 

nikolz

Well-known member
Добрый вечер всем. Так как я сам в процессе поиска информации не раз с яндекса приходил на эту страницу, решил написать тем, кто так же как и я попадёт сюда.
Первое: видео это постом выше какой-то бред, либо у снимающего бракованный чип. У меня 2шт esp-01s разнесены по самым дальним углам обычной двухкомнатной квартиры, одна каждую секунду отправляет пакет с порядковым номером +1, другая принимает и выводит в serial на компьютер сколько отправлено и сколько принято. Так вот, пока дошло до 3000 отправленных и 3000 принятых, ни чего не потеряно.
Второе: хотелось бы пояснить по этому сообщению

по пунктам:


Я почитал этот форум некоторое время и у меня создалось впечатление что Товарищ pvvx хорошо соображает, но зачем-то намеренно обсирает esp и всё что с ним связано... толкает свои BLE чипы куда надо и куда не надо. pvvx поймите вы наконец, что например мне надо знать температуру в погребе раз в 10 минут, я куплю esp за 80 руб, припаяю пару проводов, скачаю ардуино, загружу скетч из готовых примеров и времени у меня уйдет на это всего максимум час. Какой у меня другой вариант? заказать что то из того, за что вы топите? потратить полгода на изучение каких-то языков программирования, разобраться с документацией на этот чип? ESP и Ардуино это лучшее что я вижу для таких как я - непрофессионалов, которым нужно сделать единичное бытовое устройство с наименьшими вложениями сил и времени. И так как этот форум о "esp8266" и он вам не нравится, то у меня вопрос - зачем вы сюда приходите? если человеку не нравится шашлык, то он не будет ходить постоянно в шашлычную чтобы ворчать там постоянно что шашлык дерьмо)) это какой - то мазохизм...

И так главное: у меня вышло пока так, как в первом варианте у топик стартера.
в режиме WiFi.mode(WIFI_AP_STA);
жду пакет esp-now с отключенным wifi (WiFi.disconnect();)
как только получаю, включаю wifi (WiFi.begin(ssid, password);)
передаю данные в интернет
опять отключаю wifi (WiFi.disconnect();) и жду следующий пакет.
меня устраивает, это работает.
Полностью с Вами согласен.
-------------------------------
Wifi и ESP-NOW не мешают друг другу.
Надо для WiFi сохранять параметры соединения и работать по UDP.
В итоге все работает очень быстро включая deep sleep.
 

pvvx

Активный участник сообщества
У меня 2шт esp-01s разнесены по самым дальним углам обычной двухкомнатной квартиры, одна каждую секунду отправляет пакет с порядковым номером +1, другая принимает и выводит в serial на компьютер сколько отправлено и сколько принято. Так вот, пока дошло до 3000 отправленных и 3000 принятых, ни чего не потеряно.
...
в режиме WiFi.mode(WIFI_AP_STA);
жду пакет esp-now с отключенным wifi (WiFi.disconnect();)
как только получаю, включаю wifi (WiFi.begin(ssid, password);)
передаю данные в интернет
опять отключаю wifi (WiFi.disconnect();) и жду следующий пакет.
Полностью с Вами согласен.
Сама процедура соединения и передачи данных без специальных танцев с бубном на ESP8266 составляет от 1 до 4 секунд. При этом ток потребления не менее 70 мA.
:)
 

pvvx

Активный участник сообщества
я куплю esp за 80 руб, припаяю пару проводов, скачаю ардуино, загружу скетч из готовых примеров и времени у меня уйдет на это всего максимум час. Какой у меня другой вариант?
Слишком много требуется, чтобы из 80 руб ESP8266 сварить кашу любому, без оборудования и инструментов, навыков...
Смахивает на "Кашу из топора".
Попробуйте сделать это с помощью смарта и большого паяльника :)
 
Wifi и ESP-NOW не мешают друг другу.
Надо для WiFi сохранять параметры соединения и работать по UDP.
Хотел бы уточнить, вы имеете ввиду отправлять/принимать по esp now, потом подключать WiFi как то так -
WiFi.config(local_ip, gateway, subnet, dns1, dns2)
WiFi.begin(ssid, password, channel, bssid, connect)
И отправлять/принимать по udp. Так? То есть хоть и быстро, но всё равно поочередно?
 
Сверху Снизу