• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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. Так? То есть хоть и быстро, но всё равно поочередно?
 
Сверху Снизу