Comments 205
Реализация подсчета импульсов на прерываниях не подходит, т.к. вода может быть перекрыта в момент замыкания геркона (зона ~3л), и ток будет утекать через подтягивающие резисторы.
Не совсем понял, как между собой связаны прерывания и утечка тока через подтягивающие резисторы.
Если на выходную ножку подать ноль, а на ответной стороне (после геркона) будет слабая подтяжка вниз — на входе будет ноль и тока в цепи не будет. А в момент измерения выходная ножка переводится в «1», по цепи течёт ток (или не течёт, если датчик разомкнут) и входной пин определяет, есть ли импульс.
Простое и в то же время энергоэффективное решение.
Встроенная подтяжка, естественно, не вариант. Использую подтяжку внешнюю 470 КОм на VCC. При трех вольтах и замкнутом выключателе ток течет приемлемо малый (~6мкА). На CR2032 работает уже год :).
Не скажу, что этот комментарий — рекомендация. Но как вариант.
А что детектирует смену положения выключателя?
CR2032 плохо для ESP.
В моем случае дальше происходит отправка сообщения через 433 MHz передатчик.
По поводу батарейки, это просто для примера, у меня ESP не используется, мне хватает одного tiny85.
и 6мкА это чудовищный ток, контроллер правильно настроенный на сон может потреблять 500нА (0.5мкА) и даже это не предел для микроконтроллеров как таковых. С такими токами уже имеются проблемы с коммутацией полевиками, внезапно оказывается что утечка через закрытый полевик такого же порядка и нагрузка не отключается полностью.
Емкость батарейки CR2032(оригинальной) 30мА*ч при разряде током менее 500мкА можно легко посчитать штатное время работы. Кстати надо иметь в виду что эти марганцево-литиевые батареи плохо работают при токах больше 2мА, а радиомодуль в импульсе может потреблять до 300мА, нужна существенная шунтирующая емкость с низким ESR и индуктивность для развязки.
Реализация подсчета импульсов на прерываниях не подходит, т.к. вода может быть перекрыта в момент замыкания геркона (зона ~3л), и ток будет утекать через подтягивающие резисторы.
а если RC цепь вкрутить?
забирать сигнал с R=10K. Ток утечки конечно будет приблизительно 3мкА. И ограничится максимальная частота импульсов + импульс на выходе будет довольно коротким.
Можно поставить конденсатор хотя бы на 1 микрофарад, геркон медленный достаточно.
1M*1nF=1мс, т.е. до 3мс период между импульсами. а для 1мкф уже 3секунды, мне кажется многовато это.
да и если уж увеличивать то резюк, для уменьшения тока утечки при замкнутом герконе.
— в каждой записи содержится ее порядковый номер, размерность которого гарантированно превышает максимальное количество записей в буфере. То есть если буфер, например, может содержать до 100 записей, то для номера можно отвести 7 бит (128 значений).
— когда нужно найти последнюю запись просто пробегаемся по записям, ища нарушение непрерывной последовательности (с учетом перехода к нулю после максимального значения — "..., 126, 127, 0, 1, ...").
Его можно использовать при сдаче квартир в аренду для отслеживания количества проживающих людей.
Но, конечно, хочется датчик протечки…
низкого потребления не добиться. необходима низкоуровневая работа с ESP, эта микросхема даже для специалистов является чёрным ящиком.
Если учесть, что отправка занимала секунд по 10, и сделать отправку раз в сутки, то думаю реально. Во всяком случае сейчас как раз буду в таком режиме пробовать. Через год могу отписаться о результатах)
низкого потребления не добиться. необходима низкоуровневая работа с ESP, эта микросхема даже для специалистов является чёрным ящиком.Обратите внимание на модуль Wi-Fi Texas Instruments СС3235.
В режиме MCU shutdown ток потребления 1 µA.
Допускается низкоуровневое управление любыми регистрами напрямую.
Модуль стабилен и хорошо документирован, в отличие от ESP с его местами корявым английским.
Бонус — поддержка диапазона 5 GHz.
Для такой простой задачи должно быть достаточно одного микроконтроллера, например входящего в состав упомянутого Wi-Fi модуля.
Использование подхода big-little (ESP+ATtiny) в данном случае напрашивается на overkill.
Если купить две литиевые батарейки АА 1.5В 3 А*ч, Вотериус будет работать до 10 лет и при низкой температуре, а там — глядишь — и коммунизм построим.
У обычных литиевых батарей саморазряд 40% в течение года. Особенно у мощных. Подойдут вот эти.
Можно было ставить обычную Atmega328, потребление выше, но не намного, зато возможностей больше, можно датчик протечки ставить и много чего еще
Active Mode: 0.2мА
Power-down Mode: 0.1мкА
Power-save Mode: 0.75мкА
да, заводские решения обычно на подобных элементах питания. с саморазрядом нет исследований. видел график, что алкалиновые разряжаются до 20% при 0 или при +40. При комнатной меньше 10%.
Надо смотреть потребление с включенным watchdog.
Про то, что Attiny328 имеет такие же крутые характеристики, что и Attiny85 я узнал слишком поздно =). надо на Ардуино UNO попробовать, вытащив контроллер с платы.
Мне только не понятно, почему со словом энергосбережение все советуют Attiny использовать, ощущение, что старшие линейки раньше не были экономичными и вышли обновленные версии. Я вижу странные слова picoPower, намекающие на это.
Наверное имелись в виду Energizer Lithium (т.е. обычные щелочные батареи на основе лития), а не аккумуляторы.
У них паспортный срок хранения (когда просто лежат в блистере, и вы их не собираетесь использовать) — 10 лет.
Однажды мне надоело снимать показания водыТолько когда увидел «Требования: счетчик с проводом» понял, что автор имел в виду «показания счетчика воды». А не показания качества воды или температуры, или уровня…
Самый экономичный вариант: полное отключение ESP8266, но понадобятся полевые транзисторы, которые боятся статического электричества, так-то.
Да ладно!
Например: krs.terraelectronica.ru/product/2000619
Сопротивление сток-исток открытого транзистора (Rds): 0.054 Ohm
Для защиты внутри транзистора даже на затвор-исток стоит шотки…
2.
Я реализовал периодический опрос каждые 250мс и инкрементирую (красивое слово, правда?) значение только при повторном замыкании.
не вполне понял, что значит «при повторном замыкании»? Типа если два раза подряд состояние «замкнуто», то фиксируем замыкание геркона? А зачем такая логика?
3. По моему скромному мнению, частоту опроса можно спокойно уменьшить уменьшить раз в 10. Задача — не пропустить замкнутое состояние. Замкнутое состояние длится у вас 3 литра (в моем счетчике 2 литра). Принимаем меньшее — два литра. Если два литра протекают за 250 мс, то за минуту должно выливаться 480 литров. Это совершенно нереальный расход. Полностью открытый кран в идеальных условиях дает порядка 10 литров в минуту. Если таких кранов 2, то 20. То есть можно сэкономить на потреблении МК посредством уменьшения частоты пробуждений.
4. Из идей (сам думал такую штуку делать, но пока руки не доходят). Если прибор показывает постоянный и небольшой расход на протяжении длительного времени, то это может быть какая-то утечка — подтекающий кран, унитаз и т.п. Вполне можно обратить на это внимание. Все, конечно, зависит от настройки параметров, выделенных жирным. И полезность для меня не так, чтобы очевидна.
Если два литра протекают за 250 мс, то за минуту должно выливаться 480 литров. Это совершенно нереальный расход
Кстати, это способ засечь аварийную утечку. В моем горьком опыте десятилетней давности был случай срыва шланга с бачка унитаза с последующим добровольным проливом трех этажей. Понятно, что вероятность такого события крайне мала, но, тем не менее, цена лишней батарейки на несколько порядков дешевле ремонта трех квартир (или даже добровольного страхования гражданской ответственности)
- Спасибо!
- Защита от дребезга контактов.
- Всё верно. Я ещё не занимался сильной оптимизацией. Минимально: надо от pinMode, digitalRead отказаться. Уже в 6 раз меньше бодрствовать будем.
- Всё верно, но всё же датчик протечки сильно эффективнее, поэтому быстрее и проще его добавить в Вотериус.
Например, если в унитазе не герметично затыкается сливное отверстие, то никакой протечки не будет (вода-то течет в канализацию), но постоянная маленькая утечка будет. Типа подтекающего крана, только если из закрытого крана капает, это хорошо видно, а когда немного подтекает унитаз, это можно довольно долго не замечать.
А датчик протечки (и не один) в такой дивайс добавить — святое дело!
А если делать опрос, то можно, наверное, на время сна снимать напряжение с геркона и не разряжать батарейку. А на время измерения подавать достаточно большой ток, на который не будут оказывать влияния разные помехи.
Хотя я не электронщик — чисто дилетантски рассуждаю. Может это все бред.
Но из достоинств — высокая автономность по питанию, резервное питание обеспечить гораздо проще чем для МК и даже в случае выхода МК из строя при аккуратной его замене показания счетчиков НЕ ИЗМЕНЯТСЯ! И более того, на время замены контроллера счетчики себе будут считать будто ничего не происходит, а контроллер можно менять хоть неделю.
сервер, где пользователь мог бы загрузить свой скрипт для отправки показаний воды.
Блинк поддерживает СМС на локальном сервере (Blynk.sms(«hello»)), но надо подключать смс гейт. Как вариант — можно использовать email, а в почтовом клиенте настроить форвардинг на смс. Сейчас все операторы поддерживают email->sms.
p.s. спасибо за статью, тоже хотел прикрутить ESP8266 к счетчикам, чтобы в итоге автоматически передавать показания, но не думал, что ради экономии питания стоит использовать другой микроконтроллер
Power mode: Deep-sleep,
Description: The ULP co-processor is powered on,
Power consumption: 150 µA.
2) 150мкА кушает встроенный ULP сопроцессор в режиме работы, но его тоже можно вгонять в сон, в этом случае работает только встроенный таймер который будит ULP и кушает он — 5µA;
3) потребление esp32 при CHIP_PU=0 — 0.1 µA.
# ULP Pulse Counting Example
examples/system/ulp/ вот что пишут:
With the default configuration (20ms ULP wakeup period), average current consumption in deep sleep mode is 16uA.
Т.е. если я правильно понимаю, то при 250мс периоде пробуждения кушать оно будет приблизительно: =16*20/250 = 1.28мкА.
2. Задержка запуска процессора нужна чтобы переждать переходные процессы при появлении питающего напряжения, это программируется тоже fuse битами при включении BOD.
проект надо повторить в новом доме уже — поставил в главные закладки на реализацию
-стоит ли повторять в этом виде проект?
-какой счетчик подойдёт? Не в курсе этой темы, подскажет кто?
А без замены счётчика, отдельно сам датчик бывает?
Некоторые модели уже имеют встроенный магнит, но не имеют встроенного геркона. При желании можно докупить за какие-то безумные (для геркона) деньги датчик, который ставится в отведенное ему углубление в корпусе счетчика. И таким образом счетчик апгрейдится до импульсного без снятия пломб.
С водяными такого не видел.
Как существо ленивое и не обременённое знаниями, первый опыт с esp8266(NodeMCU), взял «сенсор линии» с компаратором. Считал обороты крыльчатки маленькой, у меня 6 лепестков было. «Посчитал количество ног и поделил на 4.»(ц)
Писал на lua, прерывания брал по нарастающему фронту, дребезга или ложных импульсов на 5м витой пары не заметил.
Данные на обороты есть в паспорте счётчика, емнип.
Так 2 года отработало.
Естественно, ни о каких батарейках и экономии на питании речи не идёт.
мечта не прикручивать к контролеру экран а передавать на мобилку
желательно таким тупым байтовым протоколом
{1,254,2,253} {Umax b1 b2 } {Umin b3 b4} {800 байтов значения по y}
первая последовательность это маркер начала кадра (сбой маловероятен )
далее 2 байта макс напряжение встерченное в осциллограмме 2 байта минимальное
800 точек у на картинку.
в приципе мне бы хватило
Отличный опус! Читал с упоением. Ещё раз убедился что всё что ты только задумал кем-то уже реализовано :-)
ого, так глубоко я не копал, подразумевая домашнее дефалтно-температурное использование!
может схему питания построить на ионистре после стабилизатора? я видел статью, где для заботы о батарейках после стабилизатора ставили литиевый аккумулятор.
Первый попавшийся Ионистор 100Ф 2,7В SAMWHA — гарантия 1000 часов на 2.5В 70 градусов цельсия. При этом внутреннее сопротивление может увеличиться в 2 раза.
Недавно проводил эксперимент: установил термометр рядом со счетчиками, и закрыл дверь в сантехнический шкаф. За 8 часов температура не превысила 35°C.
По даташиту указанного Вами ионистора, как впрочем и у других, Life Time при 20°C составляет около 10 лет (с учетом потери емкости до 30% и увеличения ESR до 200%).
Лет на пять должно хватить. Но Вы правы, на «пожизненное» решение это не тянет.
Спасибо, что обратили внимание. С меня плюсы )
1. Что за терминал на 4 пина с зажимами? Прикольная штучка! DG141V-04P — оно?
2. Отправлять ESP в сон по пину… Блин, ну почему не я это придумал?!
3. Обновление прошивки по воздуху… Не, ну на ESP может быть… А вот на тиньке? Я обычно ее шью без загрузчика и прошивается по UsbASP — т.е. 4 пина, из которых все занято… Гммм…
Надо будет попробовать!
Йеее! Спасибо! Про отсек отдельно! Люблю, когда минимум усилий без лишних габаритов!
да, подойдёт любой с шагом 2.54.
у меня лозунг, который я забыл прокричать "никаких отверток!", поэтому выбрал пружинный зажим. Так и на винтах подойдёт.
И не я это придумал)
Да, тут проблемка… Первоначально я думал сделать Вотериус на ESP-12E и потом заморочиться с функцией ISP программатора, но как погряз во все нюансы, понял, что единственно верный первый шаг — сделать без лишних деталей и функциональности. Поэтому ESP-01 и ничего лишнего.
Сейчас думаю добавить функцию передачи показаний по короткому нажатию, а настройка по длинному нажатию.
Тогда можно будет легко проверить контакт, вылив воды и нажав кнопку.
Выключаем, жмем на кнопку и с нажатой кнопкой — включаем! Девайс при загрузке смотрит — оппаньки! Кнопка нажата! И впадает в настроечную эйфорию!
нет у него кнопки включения) не нужна
Штатная… поэтому отправился в помойку =).
Буду рад линку на блок с крышкой без выключателя.
Обраааадовался. Смотрю параметры — ан нет! Он есть, просто при заполнении позиции в базе они опять глюканули…
У тебя печаток этих не осталось??? Пару штук выкупил-бы. А то ЛУТ у меня не работает, а разворачивать во время ремонта комплекс для фоторезиста просто негде сейчас… А Резонитить заказ ради двух штук — ну сам знаешь их расценки на «первичный» для платы на «подготовку»…
Накупил этих клеммничков в ЧиДе, но я-ж вумный: вдруг еще пригодятся где?!
Ну и купил «одиночек»…
А тут смотрю — «А четыре в один слот батарейника влезут???»…
Не влезли…
На сайте ЧиДа под заказ только четверки и от 11 штук…
Почесал макушку, поддел аккуратно ногтем половинки и разъединил. После чего — пристыковал к другому… Еще 2 и вышел прямо четырехпиновый!
Ыыы! Кайф!
Offtop. Иван Ганжа — это тот который альпинист? Если да, превед Ване, рад встретить общих знакомых на просторах =)
Esp8266 спит с током 20мкА. Расчет показывает, что при емкости батареек 2000мАч, спать система может 10 лет.
Просыпаться достаточно раз в 2…3 секунды (3 / (макс.расход л/с)/ 2 * 10) для замера и раз в сутки для отправки данных.
Я не профи, хочу понять, где я не прав.
Сколько потребляет при загрузке ESP надо в недрах esp8266.ru искать. График там такой: www.cron.dk/esp8266-on-batteries-for-years-part-5.
Больше похоже на танк двигающийся в пробке. Если найдете, скиньте точные расчеты сюда!
А WiFi для замеров включать не требуется.
А с учетом того, что частота ESP8266 в 5 раз больше — потребление при замерах может быть меньше чем на attiny.
общая идея:
потребление на частоте 1мГц и 8мГц отличается в два раза (условно).
но время в активном режиме при частоте 8мГц в 8 раз меньше.
т.е. выгоднее использовать более высокую частоту.
про ускорениие ESP — все разговоры про ускорение с инициализацией wifi.
а это требуется раз в день. раз в пару секунд достаточно выполнения десятка прикладных команд.
Я не вдавался в глубь, может там загрузчик какой или еще что.
Я не критикую ваше решение, просто хотел понять необходимость второго контроллера.
На данный момент, я понимаю, что вы решили что так проще, особо не задумываясь.
Про ESP я штудировал форумы: да, там загрузчик.
Attiny85 просыпается и проверяет входы ~0.2мс при токе 0.6мА (точно не измерил, буду рад, если кто поможет и подскажет целесообразность работы с битами, нежели Arduino framework).
ESP загружается сильно дольше при токе ~50мА. Несопоставимая разница.
точно не измерил, буду рад, если кто поможет и подскажет целесообразность работы с битами, нежели Arduino frameworkТут и измерять нечего.
Оптимизированная вручную ассемблерная вставка для работы с битами будет однозначно эффективнее (короче, быстрее), чем универсальный Arduino framework, написанный на языке Си для всех случаев в жизни.
В этом легко убедиться посмотрев ассемблерный листинг последнего…
analogread в tinycore оптимальный, digitalread нет, поэтому там битами поработал.
Но ИМХО, больше доверия именно даташиту. Там это всё было проверено.
не имеют, т. к.
- не нужно часто передавать данные
- нет потребности рядом с вотериусом держать телефон. или гейтвей делать
Раз в 15 сек отсылают показания, от таблетки 6 лет работают… Если вы это имели ввиду под «low energy», то впечатляет, да. И, если нужно видеть показания на смартфоне в квартире, то это решение подходит. Но я не спец по приложениям для телефона и не люблю запущенные в фоне приложения.
Раз в 15 сек отсылают показания, от таблетки 6 лет работают…
Откуда?
Там же на сайте, для «выносного беспроводного дисплея»:
Работа батареек
2 года
А 6 лет — межпроверочный интервал, и к батарейкам никакого отношения не имеет. К слову сказать про то сколько батареи на счетчике хватает в характеристиках скромно умалчивают.
замена батарейки с паяльником.
1) батарея cr2477 — емкость 1000 mah
2) BLE модуль — NRF24L01+ SMD
3) счет импульсов видать отдельный МК + индуктивный датчик и возможно ОУ.
Итого что бы хватало на 6 лет среднее потребление должно быть:
1000мАч / (6*365*24) = 0,019025875 мА = 19 мкА.
Собсно при 20 мс на передачу данных и токе 8мА (из даташита на nRF24L01) все остальное должно кушать не более 8 мкА, при 3 мс на передачу данных — не более 17 мкА. Вобщем то вполне реально.
stm8 наверное. 32 тут жирно будет. в soic8 скорее всего ОУ (операционный усилитель), т.к. датчик импульсов индуктивный напрямую в МК его не воткнуть — маловата напруга будет.
п.с. если знаете низковольтные ОУ с микроамперным потреблением можно свободно делится их названиями, они найдут своё применение.
А вот наличие ОУ и микроамперное потребление под сомнением.
Собсно вот ОУ с потреблением в покое 320нА на канал:
www.ti.com/product/tlv8802
www.ti.com/product/lpv802
Может какой-то CMOS-счетчик? типа PCF8563 в режиме счета импульсов.
PCF8563 вроде кварц надо, чего на потрохах не видно. Да и на кой счетчик нужен если стм-ка есть? пусть ее переферия считает.
Стоимость ОУ великовата для любительского применения.
Стоимость ОУ великовата для любительского применения.
Ценник не смотрел когда ответ писал. Счаз глянул tlv8802 на моузере — стоимость 1 вечнозеленый, т.е. ~ 70р. В чипедипе (правда под заказ) — 67р, в других инетмагазах около 90р. По мне так совсем не дорого.
Это для РФ, для европы смотрю меньше — 0.5$ и 0.18$ в катушке от 1000шт.
Ежили оптом у нас брать то примерно так же:
24,40 p от 2500 шт
28,10 p от 1000 шт
Но больше их практически нигде нет, хотелось бы чтобы они были в наличии в локальных магазинах.
Интернет стирает границы. Где то и магазинов с радиодеталями нет, но почтовое отделение найдется.
Что если Attiny85 напрямую к батарейкам подключить, а ESP запитать от регулятора с низким током спячки и пином EN.
Минус: Для линии i2c нужен будет делитель, т.к на Attiny85 будет 4.7В, а на ESP ~3.
Плюс: Сейчас ESP жрет около 7 мкА, что не оптимально.
Как искать такой регулятор?
Вот в таком проекте TPS61025
github.com/hamityanik/ULP-Weather-Logger/blob/master/Schematic.pdf
Как искать такой регулятор?
Заходишь на сайт производителя, например ti.com, и дальше по ссылкам. Power management > DC/DC switching regulators… LDO regulators итд.
я ж правильно понимаю, что заменять батарейки надо при "выключенном водопотреблении" (не критика, а просто вопрос)?
а планируется версия энергозависимая, но с резервным питанием?
или, быть может, вы подскажете, как её можно было бы сделать из текущей?
А лучше: как можно запитать от 12В (правильным способом) (я не прям силён в электронике, но умею разбираться)? У меня рядом со счётчиком расположена система защиты от протечек со своим сетевым, но зарезервированным 12В питанием, можно было бы к ней "присоседить". К тому же, я планирую показания передавать чаще, чем раз в сутки (что скажется, понятно, на энергопотреблении)
и вообще респект за то, что поделились! и схемой, и разводкой платы и прошивками и описанием, в том числе процесса изготовления! это реально круто!
Вотериус: Передача показаний воды на телефон по Wi-Fi (4 года от батареек)