ESP8266(85) ESP-now->UDP->Supercap

nikolz

Well-known member
Добрый день,
В качестве информации.
С целью изучения возможности автономной работы ESP8266 собрал такую схему:
1) ESP8266 работает по протоколу ESP-now. Режим deep-sleep период 10 секунд.
Время на один сеанс связи составляет 116 ms.
--------------------------
2) ESP8266 принимает информацию от первой ESP по протоколу ESP-now и передает по WiFi
на компе по протоколу UDP.
На комп сервер на луа (6 строк)
----------------------------
Первоначально все работает от стационарного питания, но у первого ESP параллельно источнику включен суперконденсатор на 1f.
Напряжение питания 3.3 в.
-----------------------
Эксперимент - отключаем источник питания от первого ESP, оставив лишь суперкап заряженный до 3.3 в.
--------------------
Внутреннее показание напряжения питания падает с 3.2в до 2.77 в.
В результате первый ESP8266 на одном заряде суперкондера выполнил 65 сеансов связи.
В конце напряжение упало до 2.49 в.
===========================
Второй ESP можно подключить через USB к компу или смартфону и таким образом отказаться от роутера.
Можно включить на втором ESP точку доступа и поднять веб сервер для локального использования.
=========================
Применение протокола ESP-now дает следующие преимущества в модулях датчиков по сравнению с использованием WiFi.
-----------------------
1) так как никакие настройки для связи сохранять не надо,
то можно реализовать deep-sleep с использованием внешнего таймера например TPL5110.
В результате получим потребляемый ток в режиме сна не 20 мка, а менее 10 мка.
----------------------------------
2) Время сеанса по протоколу ESP-now существенно меньше чем при wifi.
Так минимальное время связи по UDP составляет 260 ms и увеличивается до 1-4 секунд при потере связи с роутером.
По протоколу ESP-now это время составляет 120 ms.
-------------------------------------
3) Существенно уменьшаются требования к источнику питания и существенно увеличивается длительность работы от одной батарейки.
---------------------------
4) Если для работы с датчиками использовать STM8L , а ESP8266 лишь для передачи данных по протоколу ESP-now, то затраты энергии на один сеанс составят 4.4 ма*s.
----------------------------------
Предположим нам надо обеспечить работу датчика в течении года без подзарядки с интервалом связи 30 секунд.
Определим емкость батарейки для этого.
Потери энергии на сон составят 9 ma*h.
Затраты энергии на работу составят 1293 ма*h
Таким образом надо батарейку в 1300 ма*h.
-----------------------
И главное преимущество - сеть ESP-now никто не увидит и хакеры могут отдыхать
 
Последнее редактирование:

rst

Member
4) Если для работы с датчиками использовать STM8L , а ESP8266 лишь для передачи данных по протоколу ESP-now, то затраты энергии на один сеанс составят 4.4 ма*s.
В этом случае смысла в ESP нет никакого. Раз есть отдельный МК и всё равно нужен какой-то центральный узел с WiFi-модулем, то просто заменяем везде ESP на nRF24L01+ и получаем в разы меньшее потребление. Либо какой-нить другой простой радиомодуль. ;)
 

nikolz

Well-known member
ESP8285 работает от суперкапа на 1 фараду 355 сеансов связи по протоколу ESP-now.
минимальное время сеанса 102 ms.
На графике изменение внутреннего напряжения источника питания
upload_2018-10-15_19-54-37.png
------
после тренировки суперкапа получилось 375 сеансов
 
Последнее редактирование:

rst

Member
про выигрыш в разы это Вы погорячились.
Да, возможно. Наверное надо было написать - в десятки раз. ;)

Да и заменять ESP на nrf24L01+ не катит.
Почему?

А Ваши выкладки какие будут?
Я делал домашнюю метеостанцию, но уже давно и подробностей не помню. Сохранилось только что в составе MSP430FR5xxx + nRF24L01+ + BMP180 + DHT22 - суммарный средний потребляемый ток был ~30мкА. Причём на nRF24L01+ из них приходилось только 2.6 мкА. Устройство спало, периодически просыпалось (период был точно не помню - пара минут примерно) и отправляло данные на сервер (другой nRF всё время в приёме).

информация к размышлению
У ESP мощность передатчика 100 мв, у NRF - 1 мв.
А самому хотя-бы подумать над этой самой инфой? Такая разница в мощности передатчиков совсем не наводит на мысли о разнице в потребляемой мощности? :cool:

deep-sleep ток ESP -20 мка NRF -26 мка.
Если не только открыть даташит, но ещё и потрудиться прочитать его, то можно заметить что nRF в power-down потребляет 0.9 мкА. А никак не 26. А ещё можно заметить, что время перехода из power down в активное состояние у nRF всего лишь == 1.5 мсек (ей не нужно нигде региться, а нужно просто отправить N байт в эфир). А сколько у ESP? ;)
А ещё у nRF (так как протокол простейший, ACK-и не использовал), оверхед на служебные поля кадра очень маленький. У ESP он наверняка больше.
И в результате имеем, что для режима сон-редкое пробуждение с передачей короткого пакета данных, эффективность nRF будет выше чем у ESP вполне возможно даже в десятки раз.
 
Последнее редактирование:

rst

Member
По протоколу ESP-now это время составляет 120 ms.
А почему ТАК МНОГО? :eek:
У меня на nRF отправка кадра текущих данных укладывалось всего в несколько мсек. Это от пробуждения МК до засыпания.
Вы и вправду считаете, что 100 мВт * 120 мсек будет не хуже по энергопотребелнию, чем 2-3мсек * 1 мВт? o_O
 

rst

Member
На самом деле с MSP430 применяют CC2500 так как это один производитель и есть готовые библиотеки
Причём тут "что и с чем кто-то где-то применяет", если разговор про потребление системы сбора с датчиков?

передатчик 100 мвт у ESP и 1 мв у NRF это для того чтобы Вы посчитали дальность на которую они могут работать.
Причём тут дальность если разговор про потребление??

ESP8285 - это все в одном чипе и память RAM 60 Kбайт и FLASH 1 Мбайт и процессор 32 разрядный на 160 мггц
Причём тут мегабайты и мегагерцы и разряды если разговор про ПОТРЕБЛЕНИЕ???

т е ESP позволяет не только просыпаться и передавать но и обрабатывать и накапливать
Внимательно перечитайте ещё раз моё исходное сообщение. Оно касалось упомянутого Вами случая когда в устройстве есть отдельный МК, а ESP - только для связи.
И причём тогда что там ESP умеет или не умеет обрабатывать?

Кроме того два протокола в одном флаконе. Можно передавать по UDP десятки килобайт.
у 430 сколько RAM ? как у STM8.
А мегабайты не может? Значит не подходит.....
Причём тут десятки КБ если для задачи нужно передать несколько байт? Только для того чтобы оправдать применение ESP и сожрать побольше мА?
И какая разница сколько RAM в МК если её достаточно для решения задачи?

Ну и последнее ESP8285 стоит 120 руб и размер 2x1.5 паять ничего не надо.
430 сколько стоит? примерно 500 руб и А сколько будет стоит плата с 430+nrf ?
Ещё раз - разговор был про ПОТРЕБЛЕНИЕ! При чём тут цена? И откуда Вы знаете какая другая периферия используется у меня на MSP430? И видимо даже знаете что есть в ESP? Может ещё расскажете где именно в ESP есть FRAM-память, которая у меня на MSP430 используется встроенная?
И может посчитаете сколько будет стоить внешняя FRAM при замене на ESP? И сколько потребуется ног для подключения всех моих датчиков? И можно ли будет вообще реализовать интерфейсы обмена этих датчиков?
К Вашему сведению: MSP430 у меня - бесплатный, а nRF с али стоил копейки. И в сумме это - много меньше чем озвученные 120 руб. И к теме это вообще не имеет никакого отношения.

Раз в 10 дороже чем ESP
Т е если считать по потреблению то STM8L+CC2500 будет потреблять при сне 1 мка а в работе не хуже 430+NRF.
А FRAM-память у STM8L где?
Итого: по теме сказано ==0. Но куча пустопорожних рассуждений о мегагерцах, мегабайтах и рублях....
На конкретные вопросы по ESP:
1) каково время перехода ESP из сна в активный режим передачи кадра данных (с разгоном PLL если нужно)?
2) какова минимальная длительность передачи кадра данных (если передать нужно всего лишь показания пары датчиков), т.е. - десяток байт?
3) каково время ожидания подтверждения на кадр данных (если оно необходимо)?
4) каково время перехода из активного режима в сон?
5) каково потребление во сне и во всех вышеуказанных режимах?
не дано ни одного ответа.
Соответственно - и выводы о Вашем уровне компетентности каждый может сделать сам....
 

rst

Member
Т е я изложил новую информацию, которую получил экспериментально.
Вы изложили чушь. К информации она никакого отношения не имеет. Ни на один из вопросов по существу не ответили. Так в чём польза вашей информации? Польза её == 0.
 

CodeNameHawk

Moderator
Команда форума
4) Если для работы с датчиками использовать STM8L , а ESP8266 лишь для передачи данных по протоколу ESP-now, то затраты энергии на один сеанс составят 4.4 ма*s.
Интересно бы посмотреть код для есп, которая принимает блок байтов с uart и передает на другую есп.
Какое общее потребление, время?
 

CodeNameHawk

Moderator
Команда форума
Так мало кому интересно узнать сколько потребляет бесполезный радио маяк.
Проблем в написании кода нет, но если вы проверите сколько потребляет с полезной нагрузкой это будет полезная информация.
 

CodeNameHawk

Moderator
Команда форума
Так и об этом, без передачи данных есп не нужна, а если даже передача коротких сообщений будет потреблять больше разумного...
 

CodeNameHawk

Moderator
Команда форума
Если есть возможность, замер времени и потребления при отсылке 1,2,4,16,32 байт с внешнего проца.
 

rst

Member
Если есть возможность, замер времени и потребления при отсылке 1,2,4,16,32 байт с внешнего проца.
Добавлю что - полного времени, включающего в себя: выход из сна + собственно передачу + ожидание ACK (если нельзя обойтись без оного) + уход в сон.
Я всё это уже спрашивал у автора. Но в ответ получил лишь то, что видно выше....
 

rst

Member
При изменении длины посылки от 16 до 250 байт, время активности изменяется в пределах погрешности измерения.
Получается: что 1 байт передавать, что 250 - один фиг будет 120 мсек со средним током 59 мА. Итого: 59*0.12/3600 = ~2 мкА/ч за сеанс. И ещё сеанс может увеличиться до непредсказуемых величин при отсутствии связи с удалённым ESP (отсутствии ACK-ов от него). Если я правильно понял.

провел эксперимент с питанием от конденсатора в 10 000 мкф (0.01f).
...
Отличие очевидно связано с потерей энергии на внутреннем сопротивлении суперкапа.
Энергия запасённая в конденсаторе - это функция не только от ёмкости, но и от напряжения. И даже более того - от ёмкости зависимость пропорциональная, в то время как от напряжения - квадратичная. Поэтому нет никакого смысла рассуждать об "энергии конденсатора" в отрыве от напряжения на его обкладках.
Т.е. - можно поставить кондёр хоть в 10 фарад, но, если разница между полностью заряженным конденсатором и уровнем напряжения на нём, при котором система перестаёт функционировать, будет составлять всего 0.5 В, то окажется, что если заменить его на кондёр всего в 10000 мкФ, но с разницей между уровнями напряжения (полной зарядки и минимального напряжения) == 20 В, то время работы устройства значительно увеличится.
 
Последнее редактирование:
Сверху Снизу