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

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

pvvx

Активный участник сообщества
А мощности передатчиков одинаковые?
При одинаковых и выходит от 5 раз.
Только смысл в увеличении мощности к схожей у WiFi, если при в 10 раз меньшей дальность уже больше?
При этом отношение потребление уже от 50 раз.
Доказываете, что модули, которые выпустили через 10-15 лет после, новее, чем те, которые выпустили 10-15 лет назад. Прикольно.
Разница всего в 2 года.
Успехов вам в изучении новых модулей для измерения температуры.
В быту для датчиков ещё есть измерение влажности, давления, освещения, энергии, кнопки, состава/концентраций и всякие Findmy и прочие ключи.
Фото-рамки и ценники для магазинов в большинстве на BLE, так как это практичнее.
У WiFi сфера применения значительно уже.
 

pvvx

Активный участник сообщества
прикольно читать от Вас рассуждение про качество связи WiFi и BLE.
Вы же хорошо разбираетесь и понимаете, что при одинаrовой мощности излучения и диаграмме направленности антенны и при отсутствии помех( как в вашем случае в деревне в глуши) оба вида связи дадут одинаковую дальность при равенстве бюджета канала. Если бюджет разный , то и дальность разная. Но это не зависит WiFi это или BLE, так как частота одинаковая и вид модуляции одинаковый. У WiFi даже может быть лучше связь так как полоса модуляции шире, а это повышает помехоустойчивость при узкополосных помехах, что хуже у BLE . Причем ESP-Now - это не WiFi так как нет центрального узла.
Тут и сказывается уже сам протокол распределения по времени окон приема-передачи. Да и вообще принцип - у BLE маяка совсем другая концепция.
Про это вы постоянно забываете :p
Никто не против BLE, поэтому не надо рвать штаны и доказывать, что BLE лучше WiFi.
Есть ещё Zigbee. BLE хорош для датчиков и типа фото-рамок. Остальное - или BLE-MESH или Zigbee. Но никак не WiFi.
Экономьте дальше и измеряйте температуру больше дольше и точнее.
Т.е. вы намекаете на то, что я не выкладываю на Github другие варианты, кроме термометров?
Ну у меня нет времени на поддержку других вариантов.
От вас то вообще никакого толку, кроме как спама и развлекухи в смешных постах...
 

pvvx

Активный участник сообщества
@nikolz - Заметьте, что ESP-NOW привязан к ESP чипам по причине, что другого варианта противопоставления для более развитых протоколов у них не было.
Ну и вышло что-то кое-какное, т.к чип и блок RF и прочие потроха рассчитаны совсем на другой тайминг работы.
Т.е. это чистое извращение от безысходности - попытка приблизиться к уже имеющимся протоколам на рынке хоть как-то...
Аналог - ногдрыгом выводить VGA сигнал на монитор. Смысл только в игре на раз.
 

pvvx

Активный участник сообщества
Извращенцы ради хайпа всегда найдутся. На этом строится индустрия заработка в Ютубе и прочих “информационных” сервисах. Это и есть ваше “много написано”.

Но Espressif всё равно идет вынужденным путем – выпускает новые чипы с поддержкой типовых захвативших рынок IoT протоколов – BLE и Zigbee.
Пока это не очень выходит у Espressif – хромает устаревшая технология производства чипов…

Но и такое Г фанаты съедят – китайцы завалят али модулями на 10 рублей дешевле, чем у других производителей по простой причине
– никому из крупных заказчиков-продавцов для серийного выпуска готовых изделий такие чипы не нужны.
 

pvvx

Активный участник сообщества
Разбирать Вами придуманный пример не вижу смысла.
При этом другие разбираете.
Может все таки разберете и предложите какое решение?
Там суть в том, что нет никакого желания ставить в каждое строение WiFi роутер, да ещё с направленными антеннами. Иначе выходит плохая связь.
И не все строения запитываются от генератора, когда внешняя эл.сеть падает. А падает она часто. И эти проблемы с эл. сетями не только у меня, а в 50% по всей территории России, не считая городов.
Примеры есть в ESP32-idf. У меня проблем нет. модули ESP32C3 есть в продаже и дешевле чем иные. Кроме того в них гораздо больше памяти, что позволяет сохранять данные и передавать их боле большими пакетами.
А нафига нужно передавать более 2-х или 3-х значений от датчика? С индексами и идентификаторами устройства это запросто влезает в 20..60 байт, учитывая и номер IEEE (MAC устройства) и информацию для самого протокола передачи (т.е. все битики RF фрейма).
Приемлемый период передачи от датчиков для IoT (бытовухи) от 2-х до 30 секунд. Остальное - это сигнализации, и то там постоянно необходимо передавать что устройство активно и жизнеспособно.

На передачу фрейма во всех типах протоколов уходит в среднем 1 ms.

Далее идут причуды протокола.
Для уменьшения потерь приема у BLE маяка применяется метод избыточного дублирования передачи и на 3-х каналах.
У остальных - передача на одном канале и прием подтверждения.

Для BLE пусть будет 3 передачи сразу по 3-м каналам - это 9 передач = 9 ms работы передатчика.
Для прочих протоколов: 1 передача, пауза и окно приема. При сбое - дублирование передачи и новое окно приема. Т.е. = от 1 ms передачи и N ms приема при полном успехе и чистоте в эфире по одному каналу.
В итоге, при одинаковой вероятности коллизии в эфире в реальности выходит, что потребление при передаче с подтверждением занимает больше времени и энергии, чем тупое дублирование. Для некоторых протоколов и время ожидания с включенным приемником уже более 9 ms, а работа на одном канале ещё увеличивает вероятность пропуска приема и это актуально с двух сторон.
И BLE маяк гарантировано выигрывает по всем параметрам....

Далее идет время пробуждения чипа и прочие TTX. Для ESP32-C3 они рассмотрены тут: https://esp8266.ru/forum/threads/esp32-c3-light-sleep.6084/
 

pvvx

Активный участник сообщества
С введением функции "PAwR" в стандарте BLE 5.4 возникла возможность “дуплекса”.
Т.е. устройство передав BLE маяк ожидает прием подтверждения с доп. данными.
Выходит двух стороння приемо-передача и сфера BLE расширяется на сверхмало потребляющие исполнительные устройства.

Отличие у BLE в том, что после конца передачи окно приема значительно меньше чем у WiFi.
В BLE приемник или передатчик включается на любой канал за десятку микросекунд и паузы до приема следующего синхро ограничены в 150 us.
Приемное окно задается во времени получения синхро сигнала начала фрейма, а не целого фрейма. В BLE и скорость АРУ у RF другая.
Получается возможность ограничить окно приема после передачи до пары сотен мкс.
А типичное потребление BLE чипа при включенном приме и активном CPU – 4..10 мА, при уровне приема до -115 дБм.
В итоге уже через пару сотен мкс уже известно, что приема не будет и можно переходить к другим делам или дублированию передачи на следующем интервальном цикле.
Это составляет добавку потребления к маяку в пару сотню мкс при типичных 6 мА.

Пробуйте это выжать в WiFi или ESP-NOW :)
 

pvvx

Активный участник сообщества
Механизм скоростного BLE приема после передачи откатан давно. Это реализовано при передаче маяка на каждом канале с возможностью соединения.
Это типовой BLE с начальных стандартов. Но прием ограничен форматом спецификации – принимаются только сообщения в виде запроса соединения или запроса дополнительной информации. Дополнительная информация – это обычно сообщение с именем устройства или другими данными, получаемое при запросе в режиме “активного сканирования”.

Но извращенцев как в Espessif в случае ESP-NOW не нашлось. Никто не использует функцию запроса соединения или инфы в BLE рекламе для передачи других данных на устройство. И не пытаются, а сделали дополнительную функцию “PAwR” в новой версии стандарта с работой на любом дополнительном RF канале.
 

pvvx

Активный участник сообщества
Пишите свои тесты, показывайте картинки. Народ будет смотреть, но не делать, так как измерение температуры не есть главное и единственное, что многих интересует.
Особенно измерение годами столетиями и с одной батарейкой и с сотней модулями.
А зачем народу что-то делать самим?
И не видел ещё людей не интересующихся температурой на улице. Это гораздо большая сфера, чем игры в ESP у редких любителей с паяльниками и проводами по огороду...
И так-как у народа уже накопилось куча старого хлама в виде покупных устройств, то и его можно использовать, сильно не вникая как там и что.
Пример как можно сделать вывод уличной температуры :p
 

nikolz

Well-known member
Для BLE пусть будет 3 передачи сразу по 3-м каналам - это 9 передач = 9 ms работы передатчика.
Для прочих протоколов: 1 передача, пауза и окно приема. При сбое - дублирование передачи и новое окно приема. Т.е. = от 1 ms передачи и N ms приема при полном успехе и чистоте в эфире по одному каналу.
В итоге, при одинаковой вероятности коллизии в эфире в реальности выходит, что потребление при передаче с подтверждением занимает больше времени и энергии, чем тупое дублирование. Для некоторых протоколов и время ожидания с включенным приемником уже более 9 ms, а работа на одном канале ещё увеличивает вероятность пропуска приема и это актуально с двух сторон.
И BLE маяк гарантировано выигрывает по всем параметрам....

Далее идет время пробуждения чипа и прочие TTX. Для ESP32-C3 они рассмотрены тут: https://esp8266.ru/forum/threads/esp32-c3-light-sleep.6084/
Попробую объяснить, что мне не нравиться в BLE и модулях типа TLSR c BLE.
--------------------------
1) Реклама работает на 3 каналах одновременно. Это значит что фактически все маяки работают на одном канале. Какой же бардак получается в эфире?
----------------------------------
2) Модули с BLE типа TLSR ориентированы именно на работу маяками. У них малый объем памяти и маломощный процессор. т е это очень тупые модули. Поэтому они постоянно что-то шлют в эфир. Но никому не нужны эти данные в реальном времени, так как ничего конкретного сделать в этом реале не получится - нет никаких реальных устройств которым надо этот подток данных.
------------------------------
3) Получается, что существующие модули BLE - это устройства ориентированные на рекламу и простейшие устройства Собственно они так и используются на рынке.
---------------------------------
4) если у нас есть достаточно памяти, то нет надобности постоянно слать в эфир никому не нужные данные в реальном времени. Можно вместо 1000 посылок значения температуры послать один раз эти тысячи значений. Но лучше обработать эту тысячу и послать например выборку параметров значимых спектральных компонент или коэффициентов аппроксимирующих полиномов.
В результате в место 1000 посылок будет раз в сто меньше данных. В конечном итоге не будет забиваться эфир и разряжаться батарейки.
----------------------------
И главное, про время пробуждения ESP32C3...
протестировал... Вы не поверите -время пробуждения 0.65 ms. при токе не более 5 мА.

Т е если обрабатывать данные с датчиков, а не посылать сырые данные в эфир, то затраты энергии будут меньше, чем с модулями типа TLSR c BLE.
 

nikolz

Well-known member
и еще ... на ESP32 можно разместить AI или программу распознавания и синтеза голоса либо изображений , что невозможно разместить на других модулях с BLE.
В этом плане альтернатив для ESP32 пока нет.
 

pvvx

Активный участник сообщества
Попробую объяснить, что мне не нравиться в BLE и модулях типа TLSR c BLE.
--------------------------
1) Реклама работает на 3 каналах одновременно. Это значит что фактически все маяки работают на одном канале. Какой же бардак получается в эфире?
Бардак не большой.
В среднем одно устройство передает ~1 мс на одном канале 1 раз в 5 сек. Т.е. занимает канал передачей не более 0.2 мс в секунду.
Приемник способен принять с одного канала до тысячи фреймов в сек. Но учтя что он ловит и сопровождает три канала, то теоретический максимум составит прием 300 полных рекламных событий в сек.
В итого, чтобы забить все основные каналы, с учетом что вокруг приемника все датчики на одинаковом расстоянии и передают с одинаковым уровнем, потребуется более 1500 устройств. Но расстояния разные и уровни сигналов тоже. Ближний примет, а дальний не создаст ему коллизии...
С учетом того, что даже Home Assitant не справляется с большим потоком точек, то он или усредняет данные на 30 сек или просто тупит 30..60 секунд, то устройств может быть и больше. За 60 секунд пробьется хотя-бы одна передача...

2) Модули с BLE типа TLSR ориентированы именно на работу маяками. У них малый объем памяти и маломощный процессор. т е это очень тупые модули. Поэтому они постоянно что-то шлют в эфир. Но никому не нужны эти данные в реальном времени, так как ничего конкретного сделать в этом реале не получится - нет никаких реальных устройств которым надо этот подток данных.
Этот поток данных больше, чем у 99.999% всех Arduino проектов. И тем более больше чем у Zigbee.
Как-то люди живут с Zigbee и не расстраиваются.
А при соединении типовой BLE дает скорость аналогичную 115200 Бод у UART. Это уже покрывает более 90% всех электронных устройств.

3) Получается, что существующие модули BLE - это устройства ориентированные на рекламу и простейшие устройства Собственно они так и используются на рынке.
Это только вы так считаете. Никто не ограничивает BLE в применении в простейших или сложнейших...

4) если у нас есть достаточно памяти, то нет надобности постоянно слать в эфир никому не нужные данные в реальном времени. Можно вместо 1000 посылок значения температуры послать один раз эти тысячи значений. Но лучше обработать эту тысячу и послать например выборку параметров значимых спектральных компонент или коэффициентов аппроксимирующих полиномов.
В результате в место 1000 посылок будет раз в сто меньше данных. В конечном итоге не будет забиваться эфир и разряжаться батарейки.
Пересчитайте по энергии с учетом всех неурядиц в эфире, а то лепите лапшу на уши....
Для автоматизации и бытовыхи никаких матриц коэффициентов ИИ типа DeepSeek передавать не требуется. Не доросли ещё смарты до возможности загрузки полной текущей модели ИИ в RAM и по скорости обработки не справятся даже для растянутого на часы диалога... В простой ком ещё не лезет... Токо усеченные модельки, которые программы пишут совсем корявые :)

И главное, про время пробуждения ESP32C3...
протестировал... Вы не поверите -время пробуждения 0.65 ms. при токе не более 5 мА.

Т е если обрабатывать данные с датчиков, а не посылать сырые данные в эфир, то затраты энергии будут меньше, чем с модулями типа TLSR c BLE.
Вы опять что-то там путаете. Он жрет в таком сне больше чем 15 BLE датчиков.
При аналогичном типе сна у любого BLE такой выход равен пару тактам CPU :p
 

pvvx

Активный участник сообщества
и еще ... на ESP32 можно разместить AI или программу распознавания и синтеза голоса либо изображений , что невозможно разместить на других модулях с BLE.
В этом плане альтернатив для ESP32 пока нет.
Небоитесь усё есть и давно.
Если вас интересуют нормальные рабочие решения - вперед изучать как пашут E-Ink ценники. Их в некоторых магазинах тысячи... и они всегда online - готовы обновиться и постоянно передают статус батареи, id и т.д. И без всякой MESH...
Уже встроено в Home Assistant...
И там с ESP32 бяда... исправить никак не могут...
 

pvvx

Активный участник сообщества
И ещё раз – никому не нужны ваши примитивные AI.

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

А для серьезных устройств тем более никто не будет использовать какой-то ESP да ещё с нестандартным протоколом. Даже в пром. мелко-серийке…
Это уровень любителей работающих паяльником на кухне.
 

pvvx

Активный участник сообщества
Да и цена на модули с BLE/Zigbee уже ниже любых ESP
1738766904435.png
 

pvvx

Активный участник сообщества
Попробую объяснить, что мне не нравиться в BLE и модулях типа TLSR c BLE.
Текущая система имеет 68 BLE датчиков и/или устройств передающих состояние для мониторинга.
1738775845980.png1738775850136.png

Это не все BLE участвующие в бардаке моего "Умного дома", а только те, которые может обрабатывать HA. Есть ещё и связанные, работающие друг с другом без HA.

Средний период передачи новых данных у них составляет 10..20 секунд и несколько вариантов передающих события. При передаче событий время от регистрации события до получения в HA составляет 3..7 мс, и далее передача дублируется десяток раз с шагом 50..70 мс.

Если предположить, что выбросим BLE и перестроим имеющуюся систему на ESP c ESP-NOW, тогда:
  • Необходимо провести более 600 метров проводов по всем стенам и прочей домашней утвари для питания 68-ми ESP. В том числе и хитро-гибкие на датчики подвижных частей типа дверей.
  • Купить партию блоков питания для 68 ESP от сети 230В.
  • Напечатать на 3D принтере 68 коробок под все виды данных устройств, да ещё с красивым дизайном.
  • Купить несколько десятков экранов для замены готовых в имеющихся на рынке устройствах.
  • Написать программы для всех этих видов устройств, поборов все глюки ESP.
  • Закупить десятки Li АКБ для датчиков требующих автономную работу.
  • Создать координатор данной сети с интеграцией в HA.
Вот нафиг это всё, если эти задачи полностью решаются покупкой готовых устройств с ценой по 200..400 руб?
Комплект батареек на год работы этих 68-ми устройств стоит около 700 руб.
Стоимость электроэнергии при при питании 68 ESP (без учета смены АКБ) составит (2.5Вт*24ч*365дней*68шт) не менее 1500 кВт в год, т.е. по текущему тарифу более 10 т.руб.
 

pvvx

Активный участник сообщества
@nikolz - Если учесть ещё Zigbee устройcтва, то список удваивается.
Выходит вы предполагаете жизнь в микроволновке из-за пикового излучения всей орды составляющей за сотню WiFi передатчиков :)
 

pvvx

Активный участник сообщества
Кроме всего этого наверняка потребуется более мощная системная плата для работы самого Home Assistant. Это ещё доп.потребление при её автономности (текущая имеет автономность в месяц работы). Это связано с тем, что потребуется обработка дополнительных интеграций типа MQTT. А MQTT это тормоз ещё тот и требует энергии. Поток транзакций в ней от датчиков будет не менее 20 шт в секунду (это ещё при условии сверх-оптимизации...). По этой причине координатор типа ESP-NOW не может быть построен на ESP, особенно с передачей по WiFi. Просто не успеет, а других программ-протоколов для шлюзов ESP-NOW и т.д. пока нет.

В итоге и выходит, что ESP-NOW и прочие поделки на ESP (и Arduino)- это участь "экспериментаторов" с одной игрушкой на коленке.
 

pvvx

Активный участник сообщества
Попробую объяснить, что мне не нравиться в BLE и модулях типа TLSR c BLE.
--------------------------
1) Реклама работает на 3 каналах одновременно. Это значит что фактически все маяки работают на одном канале. Какой же бардак получается в эфире?
@nikolz - Подоспел ответ на ваш вопрос:
Т.е. самый шумным является WiFi. От него коллизий в эфире больше всех остальных, при условии работы WiFi роутера на непересекающемся с другими канале.
 
Сверху Снизу