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

ESP8266 deep sleep + счетчик импульсов

nikolz

Well-known member
PIC12LF1572, то без проблем сделаете потребление прядка до пары мкА в режиме счета и отключенного модуля WiFi с учетом утечек ключей питания к модулю.
В пределе потребление PIC12LF1572 можно уменьшить к порядку 10 нА, если пробуждать его по импульсу счета, да и выходы i/o у него на 25 мА и можно коммутировать питание датчиков без доп. элементов... Т.е. выбор MCU за вами.
Но это всё без разницы, т.к. сама активация ESP8266 и его соединение с передачей данных пожирает от 1.5 Дж. (5 сек*3 В*0.115 A = 1.725 Дж)
К примеру, сам deep_sleep у модулей ESP8266 (там ещё потребляет Flash и прочие утечки) кушает в час к 1 Дж (60*60 сек*3.3 В*0.000082 A = 1.0098 Дж)
Вот и рассчитайте минимум (без внешних элементов) частоты включения ESP при известной емкости батарейки в Дж.
Тест пальчиковых батареек АА. Какие батарейки лучше?
Для дешевки двух AA возьмите 6 кДж и поделите на 1.5 Дж. Выйдет максимум до 4 тысячи передач (в теории, без учета стабилизаторов питания и прочего). Если передача раз в час, то отнимите ещё потребление deep_sleep - итого уже до 2-х тысяч передач - до 2000 часов (без элементов счета и управления питанем).
Т.е. в реалии, при использовании Arduino подходов - две AA на месяц.
Ну, а сдесь, "Фото устройства здесь: WiFi счетчик воды импульсный IoT-AQUA на батарейке без БП", при батарейке с фото, получим среднее время работы к 3-м месяцам с учетом всяких условий (купили старые АА, и т.д.). По этим причинам такие проекты и не развиваются.

Нормальное время работы от счетчика воды должно соответствовать времени его поверки. Там вроде это 3 года для горячей воды?

Ставьте сразу элементы LR20 - там вроде 80 кДж в каждом и к -30% каждые 10 лет хранения (по данным производителя) :) http://data.energizer.com/pdfs/ind-lr20pl_eu.pdf
Поэтому такое предложение за упокой, т е совет как делать не надо.
-----------------------------
А вот за здравие, т е как надо делать:
1) Ставим доп MCU(можно сделать и с делителем ) и таймер TPL5510 и получаем в режиме сна ESP 35 на. А это уже за 1 час
всего 3600*3.3*0.000000035=0.0004 дж вместо обещанного 1 дж от PVVX (меньше в тысячу раз)
2) если очень хочется экономить энергию, то можно использовать протокол ESP_NOW это нечто аля BLE
При этом энергия на один сеанс всего 0.025 дж, вместо обещанного 1.75 дж от PVVX (меньше в пятьдесят раз)
Теперь

Для дешевки двух AA возьмите 6 кДж и поделите на 0.025 Дж выйдет 240 тысяч раз.
Если передача раз в час, то получим 240 000 часов - две АА на 27 лет.
Как говорят в Одессе = Почувствуйте разницу.
----------------------
pvvx - спец по ковырянию в чужом софте и разглядыванию гланд через задницу - в этом ему нет равных.
его задача рекламировать RTL и собственную значимость.
 

pvvx

Активный участник сообщества
Поэтому такое предложение за упокой, т е совет как делать не надо.
-----------------------------
А вот за здравие, т е как надо делать:
1) Ставим доп MCU(можно сделать и с делителем ) и таймер TPL5510 и получаем в режиме сна ESP 35 на. А это уже за 1 час
всего 3600*3.3*0.000000035=0.0004 дж вместо обещанного 1 дж от PVVX (меньше в тысячу раз)
Тут вы обманываете всех и себя. Для начала cобирите и измерьте ток у TPL5510 с ключем включения ESP8266.
2) если очень хочется экономить энергию, то можно использовать протокол ESP_NOW это нечто аля BLE
При этом энергия на один сеанс всего 0.025 дж, вместо обещанного 1.75 дж от PVVX (меньше в пятьдесят раз)
Это надо два модуля для соединения и они не могут передавать данные на внешний сервер. :(
Кроме того и тут у вас ошибка. Не каждый сеанс передачи одного байта в режиме ESP_NOW будет иметь указанную энергию. WiFi диапазон в городе зашумлен и у пользователя обычно есть свой WiFi и при работе ESP_NOW будут колизии, из-за чего сеанс удлиниться и потребление будет расти на неизвестное время c током к 220 мA* на время новой передачи и ответа о приеме... *Значение тока взято из вашего же графика ESP8266 в режиме ESP_NOW.
----------------------
pvvx - спец по ковырянию в чужом софте и разглядыванию гланд через задницу - в этом ему нет равных.
его задача рекламировать RTL и собственную значимость.
Вы и тут ошиблись. Я ищу ошибки и делаю тесты, а не как вы. В общем не рекламирую небылицы :p
А у кого есть множественные ошибки - они всегда недовольны.
В сообщении выше указано - использование Arduino. А это значит, что модульных компонентов для неё.
 
Последнее редактирование:

nikolz

Well-known member
Тут вы обманываете всех и себя. Для начала cобирите и измерьте ток у TPL5510 с ключем включения ESP8266.
Это надо два модуля для соединения и они не могут передавать данные на внешний сервер. :(
Кроме того и тут у вас ошибка. Не каждый сеанс передачи одного байта в режиме ESP_NOW будет иметь указанную энергию. WiFi диапазон в городе зашумлен и пользователя обычно есть свой WiFi и при работе ESP_NOW будут колизии, из-за чего сеанс удлиниться и потребление будет расти на c током 220 мA на время новой передачи и ответа о приеме...
Вы и тут ошиблись. Я ищу ошибки и делаю тесты, а не как вы. В общем не рекламирую небылицы :p
В сообщении выше указано - использование Arduino. А это значит, что модульных компонентов для неё.
В отличии от Вас я не считаю читателей форума ни телепузиками ни дебилами.
поэтому полагаю они вполне понимают что и ваши и мои выкладки - это некоторые примерные оценки, которые могут быть использованы для первоначальных расчетов.
---------------------------
относительно двух eSP для передачи на сервер - ну и в чем проблема - жалко 100 руб на второй без автономного питания?
 

pvvx

Активный участник сообщества
В отличии от Вас я не считаю читателей форума ни телепузиками ни дебилами.
поэтому полагаю они вполне понимают что и ваши и мои выкладки - это некоторые примерные оценки, которые могут быть использованы для первоначальных расчетов.
Мои расчеты учитывают тематику ветки и всё остальное. А вот ваши - это всего реклама Ti деталек, котрых нет у простых пользователей и надо иметь паяльные станции, да производство плат.
Ваша микросхема не считает импульсы со счетчиков той-же воды. C ней это невозможно сделать.
Требуется доработка - 2 входа от счетчика горячей и холодной воды. ESP при deep_sleep не знает какой из них сработал и зачем его разбудили. Надо долепливать что-то... И ваша микросхема ему тут не поможет.
относительно двух eSP для передачи на сервер - ну и в чем проблема - жалко 100 руб на второй без автономного питания?
Он не стоит 100 руб. Там надо ещё БП + AP (или USB-UART и комп) и ESP8266 не работает в двух режимах одновременно. Но это можно сделать на другом WiFi-SoC. Некоторые из них умеют принимать/передавать и доп. пакеты, кроме стандартного WiFi.

В следующий раз пишите красным и размер шрифта выберите побольше. :)
Я понимаю, что вам завидно, что RTL8710BN модуль, купленный за 129 руб, делает это всё сам, без внешних компонентов с потреблением порядка 160 мка при счете с нескольких датчиков и последующей отправкой на MQTTS или почту... Но к сожалению читателей, на него нет Arduino и наверно не будет. Впрочем могу продать (слепить за неделю и обкатать) Arduino для него за 500 т.руб. (поддержка оплачивается опосля по доп. договору).
 
Последнее редактирование:

Evgeny D

Member
Реализаций может быть великое множество. Я даже удивлен, что только 0xC0FFEE сделал автономный.

Коллеги, вы можете помощь мне обойти пару граблей в реализации:
ESP-12E (NodeMCU v3) можно ли хранить данные в EEPROM? Если да, то какие там ограничения?

Спасибо
 

pvvx

Активный участник сообщества
ESP-12E (NodeMCU v3) можно ли хранить данные в EEPROM? Если да, то какие там ограничения?
В реальном RTC EEPROM ESP8266 данные стираются при CH_EN или отключении питания. Ножка питания у чипа для поддержки RTC, как и многое другое, сделана у Espressif с ошибкой.
С помощью некоторых костылей это поправимо -> Потребление по питанию часов (по ноге RTC_VDD)
Реализаций может быть великое множество. Я даже удивлен, что только 0xC0FFEE сделал автономный.
Похоже он ещё не доделал.
Как данное устройство будет настраиваться на AP пользователя?
У меня, аналогичный проект настраивается по кнопке WPS (PBC или с фиксированным key).
Есть возможность включения собственной AP с web для ввода доп.настроек, но это происходит только при подключении питания к USB разъему.
 
Последнее редактирование:

Evgeny D

Member
Amazon пошли по пути настройки звуком. Хороший вариант.
Я пока предполагаю делать настройку, поднимая точку доступа..
А ESP8266 ведь регулирует мощность Wi-fi?
 

nikolz

Well-known member
Реализаций может быть великое множество. Я даже удивлен, что только 0xC0FFEE сделал автономный.

Коллеги, вы можете помощь мне обойти пару граблей в реализации:
ESP-12E (NodeMCU v3) можно ли хранить данные в EEPROM? Если да, то какие там ограничения?

Спасибо
Я сохраняю. Когда в deep-sleep и когда в старте надо передать данные. Проблем нет, если есть питание.
Если питание отключать, то можно сделать сохранение во флеш, но здесь есть особенности организации хранения чтобы не стирать каждый раз блок.
 

Evgeny D

Member
Я сохраняю. Когда в deep-sleep и когда в старте надо передать данные. Проблем нет, если есть питание.
Если питание отключать, то можно сделать сохранение во флеш, но здесь есть особенности организации хранения чтобы не стирать каждый раз блок.
А можно уточнить как вы это делаете?
Данные мы будем хранить рядом с программой в памяти? Или где? Спасибо!
 

nikolz

Well-known member
А можно уточнить как вы это делаете?
Данные мы будем хранить рядом с программой в памяти? Или где? Спасибо!
Вы про какой способ хранения?
Я указал два.
1) это память RTC.
2) это свободное место во flash.
Использую в основном 1).
 

nikolz

Well-known member
Свободное место во flash.
Пишем напрямую в то место, где нет прошивки (см документацию) либо используем файловую систему которая пишет туда же.
Пишем после SDK но можно писать и внутрь программы и перед программой, если очень хочется.
Про файловую систему и работу с флеш читайте документацию, форум и сайт по дурине.
Все давно и много уже написано.
 

Evgeny D

Member
Вся проблема в том, что половина форума в вопросах "как батарейку к лампочке подключить", а вторая половина во флуде спецов "смотри я крутой" "нет я крутой". При этом часть вопрос отпадает после начала чтения Kolban's Book on ESP8266.

А какую линию связи лучше использовать для общения Attiny85 & ESP8266?
i2c, spi, serial или SoftwareSerial?
Если Serial/SoftwareSerial, то есть ли простой протокол с CRC, который можно использовать?
Я нашел CmdMessenger
 

Evgeny D

Member
Нарисовал схему для ESP8622-01 и Attiny85 с двумя разъемами под счетчики

(fullsize)

и для ESP8622-12E и Attiny85

(fullsize)

Платы развел, но еще не проверял. Как сделаю, отпишу и выложу!

Пока измерения показывают 18мкА + 4мкА attiny в режиме сна и подсчета импульсов.
Если вход attiny замыкается, то 40мкА.

Подключение к Wifi у ESP-01 где-то 1.5 сек, у ESp-12E 0.6 сек. Не знаю, откуда разница.
Буду еще экспериментировать.

Реализовано: отправка сырого пакета байт на TCP сервер с запущенным Телеграм-ботом. Всем подписанным на ID счетчика чатам посылается сообщение с показаниями.

Код еще не отлажен: GitHub - dontsovcmc/ImpCounter

Текущие баги:
- почему то некоторые ESP exception при подключении к Wifi. Грешу на WString, который в trace dump..
- Attiny просыпается не через 8 часов, а раньше. uint32_t != unsigned long ?! Или внутренний кристал 1Мгц не шибко точен?

Надеюсь завершение близко :)
 

nikolz

Well-known member
Нарисовал схему для ESP8622-01 и Attiny85 с двумя разъемами под счетчики

(fullsize)

и для ESP8622-12E и Attiny85

(fullsize)

Платы развел, но еще не проверял. Как сделаю, отпишу и выложу!

Пока измерения показывают 18мкА + 4мкА attiny в режиме сна и подсчета импульсов.
Если вход attiny замыкается, то 40мкА.

Подключение к Wifi у ESP-01 где-то 1.5 сек, у ESp-12E 0.6 сек. Не знаю, откуда разница.
Буду еще экспериментировать.

Реализовано: отправка сырого пакета байт на TCP сервер с запущенным Телеграм-ботом. Всем подписанным на ID счетчика чатам посылается сообщение с показаниями.

Код еще не отлажен: GitHub - dontsovcmc/ImpCounter

Текущие баги:
- почему то некоторые ESP exception при подключении к Wifi. Грешу на WString, который в trace dump..
- Attiny просыпается не через 8 часов, а раньше. uint32_t != unsigned long ?! Или внутренний кристал 1Мгц не шибко точен?

Надеюсь завершение близко :)
Вот что можно улучшить:
1) будить ESP через EN и ток будет в два раза меньше.
2) задействовать RTC ESP и интервал сна будет больше.
3) все подтяжки разместить на плате ESP и схема будет проще.
 

nikolz

Well-known member
Путем долгих вечеров и красивых рассветов удалил тонну кода и получилось устройство:
https://esp8266.ru/forum/threads/peredacha-pokazanij-vody-esp-01-attiny85-blynk-cc.3497/
вот возможные варианты развития:
1) использовать STM8L или таймер TPL5XXX и ток во время счета импульсов снизить раз в пять, но схема будет сложнее.
2) можно упростить схему используя микросхему счетчика.
 

Evgeny D

Member
вот возможные варианты развития:
1) использовать STM8L или таймер TPL5XXX и ток во время счета импульсов снизить раз в пять, но схема будет сложнее.
2) можно упростить схему используя микросхему счетчика.
Да, спасибо!
У меня одним из критериев является простота повторения =).
Не дожал только полное выключение ESP8266 полевым транзистором.
Сильно сократил код от первоначального. Отказался от посылки промежуточных значений в пользу простоте. И конечно blynk.cc помог отказаться от своей инфраструктуры.
 
Сверху Снизу