Счетчик на воду с проводом куда подключить

Обновлено: 03.05.2024

Порядок и правила установки счетчиков воды: правила монтажа и опломбировки

Для контроля потребления воды обязательно стоит включать в схему водопровода устройства для замеров водопотребления, а именно устанавливать водомеры с параметрами, соответствующими действующим нормам.

Согласитесь, что такой прибор позволит не только контролировать реальный расход и платить только за использованную воду, но и научит экономить этот ресурс.

В качестве дополнения к основному материалу нашей статьи мы подобрали видеорекомендации по самостоятельному монтажу счетчиков. Ведь приборы учета допускается устанавливать собственноручно, но при разрешении служб, выполняющих пломбировку.

Виды счетчиков и их особенности

Приборы для регистрации расхода воды в конкретном жилом объекте устанавливаются на коммуникационные сети квартир и домов, подключенных к централизованным водопроводным системам.

Для управляющих компаний разработаны правила монтажа с рядом требований и порядком ввода в эксплуатацию. Хотя установку, при желании, можно выполнить собственноручно.

При выборе счетчиков воды для врезки в водопроводные магистрали следует учитывать ряд значимых факторов:

По зависимости от источников поставки энергии можно выделить две группы водяных расходомеров.

Это энергозависимые, т.е. нуждающиеся в обеспечении электричеством для работы, и энергонезависимые, функционирующие за счет действия естественных механических процессов.

Галерея изображений Приборы, предназначенные для измерения расхода воды, устанавливаются на трубы с диаметром условного прохода от 15 до 20 мм Счетчики устанавливаются на входе возле каждого стояка. В домах с подключением к ГВС и ХВС, счетчики ставят на обе системы, в домах с ХВС - только расходомер для холодной воды Прибор измерения расхода ХВС предназначен для работы в среде температурой от + 5º до +40º Счетчик, измеряющий расход ГВС, эксплуатируется при температуре от +5º до +90º. Считается универсальным, может устанавливаться в холодный и горячий контур Счетчики расхода воды Счетчики для учета холодной и горячей воды Счетчик холодного водоснабжения Условия для работы счетчика ГВС

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

В списке независящих от электопитания приборов числятся тахеометрические разновидности.

Порядок установки счетчиков воды

Приборы, фиксирующие объем потребления воды, устанавливаются на вводах трубопроводов в квартиры многоэтажных жилых зданий и в подключенные к сетям частные дома

Существует разделение по конструктивному исполнению на раздельные и компактные виды.

Водосчетчики делят по количеству обслуживаемых водопроводов на многоканальные, одноканальные, двухканальные модели.

Правила подключения к водопроводу счетчиков воды

Прибор не из дешёвых, срок службы более десяти лет, работа прибора основана на способности воды проводить электричество. Используется при отсутствии в воде посторонних включений (накипи, ржавчины и т.п).

Качество воды и трубопроводов затрудняют использование в повседневном быту.

Наибольшее распространение такие водомеры получили для контроля учета потоков воды в фармацевтической, пищевой, пивоваренной промышленности и для учета воды потоков сточных вод.

Правила установки электромагнитных счетчиков воды

Электромагнитные измерители расхода воды устанавливаются на станциях водоприема, распределительных объектах, обеспечивающих водой самостоятельное жилтоварищество, микрорайон или коттеджный поселок

Различают ультразвуковые водомеры двух типов: доплеровского и времяимпульсного. По методу монтажа разделяют: устанавливающиеся снаружи водопроводной трубы ( Clamp on) и находящегося в непосредственном контакте с водой или врезной ( Insertion ).

Основная область применения для фиксирования потребления вод промышленных предприятий и количество выброса сточных вод.

Вихревые модели счетчиков для контроля расхода воды

Ультразвуковые счетные приборы определяют расход воды во время прохождения ультразвука через измеряемый поток

Принцип работы вихревых приборов учета заключается в фиксировании вихрей возникающих за «телом обтекания особой формы», помещённым в поток.

Например, если в поток измеряемой среды опустит определённый предмет (стержень специфической конфигурации), то возникшая частота вихрей на нем, или как её по другому называют называемая «дорожка Кармана», станет пропорциональна скорости потока, а следовательно, и объёмному расходу.

Проще говоря, вихревые счетчики фиксируют число колебаний, вызванных столкновением текущей среды с относительной преградой, и переводит это число в проходящие по трубе литры.

Такие приборы получили распространение в операциях по регулировки и контроля за техническими процессами. Использование их нерационально в бытовых условиях.

Соблюдение правил установки счетчиков расхода воды

Прибор для замеров расхода воды необходимо подбирать в строгом соответствии с назначением и параметрами среды, в которой он должен работать. Параметры рабочего давления в контурах ГВС и ХВС не должны превышать 1,0 МПа

Недорогие счетчики со сроком службы около пяти лет, предназначенные для оборудования бытовых и производственных водопроводных сетей.

В их числе есть модификации, выпускаемые для работы в условиях старого водопровода и сомнительной по аспектам качества воды.

По расположению оси вращения разделяются на:

  • крыльчатые — ось перпендикулярна потоку;
  • турбинные — ось параллельна потоку.

Принцип работы основан на фиксации количества движений крыльчатки или турбины. При движении водных масс происходит вращение главных рабочих органов приборов, что в свою очередь приводит в движение механический счетчик.

В диаметре крыльчатые водомеры не более 40мм. Они могут вести учёт воды до 15 кубометров в час. Турбинные аппараты имеют диаметр от 50 до 100мм, в отличие от предыдущих считывание проходящей воды у них гораздо больше.

Точность показаний невысокая, но надежная конструкция проверена многолетней превосходной работой в системах водоснабжения (квартир, домов, офисов и т.п.), что делает их наиболее востребованными.

Где по правилам устанавливаются счетчики воды

По диапазону рабочих температур счетчики могут быть для горячей воды ( рабочие значения t° до +130 °C), для холодной воды (t° до +30 °C) и универсальные (t° до +90 °C).

По принципу действия водомеры делятся на:

  • Одноструйные. Вода единым потоком попадает на крыльчатку или турбинку.
  • Многоструйные. Поток воды разбивается на отдельные струи, используются для больших диаметров более 40мм.

По способу установки считывающих механизмов можно все виды механических приборов разделить на сухие и мокрые. В мокрых счетный механизм стоит в воде, в сухих же отделены пластиной.

Правила установки тахометрических счетчиков

Большинство собственников квартир и домовладельцев, чье жилье подключено к централизованным сетям, выбирают тахеометрические водосчетчики.

Привлекает доступность механических приборов и по цене, и по возможности приобретения. Их можно найти практически в любом сантехническом магазине. Тахеометрические разновидности счетчиков просты в установке и эксплуатации.

Вам также может пригодиться информация, которая рассмотрена в другой нашей статье, о десятке лучших счетчиков, популярных среди покупателей.

Что нужно подготовить перед установкой?

При выборе подходящего типа счетчика желательно учитывать не только характеристики, заявленные производителем, но и реальные отзывы, оставленные пользователями, успевшими купить и поставить у себя конкретную модель.

После выбора прибора учета необходимо удостовериться, что в комплекте поставки находится всё необходимое для установки узла учёта.

Также стоит определиться с местом куда непосредственно будет устанавливаться счетчик. Для нормальной работы расходомера необходимо наличие естественного или искусственного освещения, температура воздуха не менее 5 °C, доступно пространство для обслуживания.

Галерея изображений Расходомеры объема воды допускается устанавливать в отапливаемых помещениях с организованным освещением Рекомендовано выбирать для установке место, гарантирующее минимум ситуаций для повреждения прибора. Желательно расположение в обустроенных нишах с дверками или внутри короба с люком Приборы для учета расхода воды должны располагаться на расстоянии от 30 см до 100 см от уровня пола Водосчетчики монтируются в водопровод без натягов, перекосов, сжатия. Патрубки приборов должны быть строго горизонтальны В комплектацию расходомеров для учета воды входят штатные штуцеры, формирующие обязательные для установки прямые участки трубопровода перед приборами С целью предотвращения засорения и выхода из строя приборов перед ними устанавливают вентильный кран и фильтр-грязевик или кран-фильтр КВФ В случае выхода из строя приборов учета расхода воды их восстановление может проводить только изготовитель или компания, имеющая лицензию на проведения данных работ Поверку приборов учета может проводить только городской центр по стандартизации. Прибор для ХВС поверяют раз в 6 лет, для ГВС - раз в 4 года Отапливаемое помещение для установки счетчиков Счетчик установлен в нише Нормативная высота расположения приборов учета Правильно выполненные соединительные узлы Штатные штуцеры счетных устройств Защитные приспособления Приборы для учета расхода горячей (красный) и холодной (синий) воды Комплект из 4 расходомеров

При этом нужно придерживаться некоторых правил:

  • Необходимо подготовить место для предстоящей работы. Кажется мелочью, но работать когда что-то мешает крайне неудобно и отнимет больше времени и сил.
  • В случае если трубы не пригодны для использования, нужно позаботиться об их замене.
  • В комплект прибора учёта должны входить: фильтр грубой очистки, обратный клапан, накидные гайки (американки) ну и сам прибор учёта. Если чего-то нет, нужно обязательно докупить, в противном случае счетчик не опломбируют.
  • При установке счетчика самостоятельно убедитесь в наличии прокладок (резиновых или паронитовых ), сантехнических уплотнителей (пакля, Фум лента);
  • Следует запастись инструментами для работы с трубами: ножницами для резки пластиковых труб, утюгом для формирования соединений, набором ключей и т.п.

Рассмотрим каждую деталь будущего узла подробнее, для чего она нужна. Запорный кран служит для регулировки подачи потока воды. Обычно используют шаровые краны.

Схема установки водосчетчика

Перед тем, как приступить к установке контрольно-измерительного прибора расхода воды, надо продумать схему его монтажа и запастись необходимыми деталями

Фильтр грубой очистки служит для предотвращения попадания в механизм прибора крупных нерастворимых частиц типа песчинок, содержащихся в воде.

Фильтры для механической очистки потока бывают двух типов прямой и косой (для установки счетчика используют только косой).

Обратный клапан служит главным образом для предотвращения отматывания показаний счетчика, а также при отсутствии разбора не даёт воде идти в обратную сторону.

Американки в случае необходимости помогут осуществить демонтаж водомера без последствий для системы водоснабжения.

Также в водомерный узел можно устанавливать другие элементы. Они необязательны, но будут весьма полезны.

Это запорный вентиль после обратного клапана (чтобы при снятии счетчика вода не сливалась на пол), редуктор давления устанавливается после фильтра грубой очистки, который стабилизирует давление в системе, продлевает срок эксплуатации бытовых приборов.

Как подготовить место для установки водосчетчика

Перед установкой водомеров надо тщательно подготовить рабочее место и запастись необходимым инструментом, для проведения всего цикла работ

Теперь сам счетчик воды:

  • При покупке необходимо сверить идентичность номеров в паспорте и их аналогов, выбитых на водомере.
  • Надо убедиться в наличии сертификата и штампа в паспорте с датой заводской поверки.
  • И неплохо взять в магазине товарный чек и оформить гарантию, в случае неисправности при наличии акта и чека счетчик подлежит замене.

Старайтесь приобретать водомер в специализированном магазине, а не на рынке, будет легче произвести замену в случае поломки.

Убедившись в наличии всего необходимого можно приступать к установке водомера.

Паспорт для установки счетчика воды по правилам

Перед приобретением измерительного прибора необходимо скрупулезно изучить его паспорт. В нем указаны не только характеристики технического устройства, но и сведения о проведенных поверках

Технология монтажа счетчиков воды

Установить счетчик воды можно как самостоятельно, так и обратиться за помощью в специализированные учреждения, в управляющую компанию, структурное отделение водоканала.

При выборе компании убедитесь в наличии лицензии и предоставлении гарантийного периода обслуживания, почитайте отзывы.

Если вы не доверяете работу другим и уверены в своих силах, то можете установить счетчик собственноручно, только предварительно проконсультируйтесь со специалистами из водоканала, разрешат ли вам самостоятельную установку счетчика, обычно она не запрещена.

Независимо от того кто будет устанавливать водомер порядок установки счетчика на воду не изменится:

  • Перед началом установки необходимо отключить воду в стояке. Следует подать заявку в управляющую компанию или при наличии запорного крана самому закрыть.
  • Надо определить схему установки узла и его положение (вертикальное или горизонтальное).
  • Затем нужно соединить запорный кран и фильтр грубой очистки (без сантехнической подмотки) таким образом, что бы патрубок фильтра с сеткой был направлен в низ, определяем количество витков при скручивании.
  • Теперь снова нужно снять фильтр и уже полностью собрать весь узел с учётом количества витков при этом применив обмотку.

Все резьбовые соединения тщательно обматываются герметизирующей лентой и обрабатываются сантехнической мастикой.

При сборке обратите внимание на водомер, на нем находятся метки в виде стрелок.

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

Важно обеспечить необходимое положение каждого элемента. По направлению потока воды оно выглядит так: запорный вентиль, фильтр грубой очистки, водомер, обратный клапан.

Как по правилам производится установка счетчиков воды

При установке обратите внимание на порядок элементов в узле, оно должно совпадать с направлением водяного потока

Конечно, можно воспользоваться гибкой подводкой, но выглядит это не эстетично.

Перед вырезанием трубы желательно подставить таз или другую емкость, в неё будет сливаться оставшаяся в системе вода.

В зависимости от труб необходимо будет нарезать резьбу в случае с металлическими трубами или же использовать фитинги и утюг для пайки пропилена в случае с полипропиленовыми трубами.

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

Завершающий этап — врезка водомерного узла в систему водопровода. Устанавливаем собранный нами узел в подготовленную систему, при этом нужно уплотнить все резьбовые соединения используя льняную подводку или Фум ленту.

При затягивании резьбовых соединений не следует прилагать больших усилий, это может привести к образованию микротрещин и последующей протечки. Если всё сделано правильно, то при подаче воды подтёков не будет, можно переходить к установке пломбы.

Использование гибкой подводки в установке счетчиков воды

Врезка в систему при помощи гибкой подводки, менее трудоемка, но более затратная

Установка пломбы и техническая документация

После того как вы установили узел учёта, проверили исправность его работы, возникает вопрос, как правильно опломбировать счетчик на воду? Следует выяснить, кто этим занимается, возможно ли самому поставить пломбу.

Доверить установку пломбы стоит специально обученным людям: представителям водоканала или управляющей компанией. Для этого необходимо подать заявку на прием прибора учёта.

Не медлите с заявлением, несмотря на установленный счетчик, расход воды всё равно до официальной регистрации будет определяться по максимуму.

И платить по счетчику вы сможете только после завершения процедуры официальной опломбировки. Информация о том, как это правильно делать, подробно изложена в другой нашей статье.

В течении некоторого времени, обычно от трёх до пяти дней, по вашей заявке направляется представитель местного управления. Для нормального рабочего контакта с ним при себя у вас должен быть акт поверки и паспорт счетчика.

В обязанности специалиста входит проверка правильности порядка установки водомерного узла и всех его компонентов, также проверяется целостность элементов узла.

Представитель водоканала не имеет права контролировать квалификацию человека устанавливающего прибор учета.

После проверки и опломбирование узла (своей пломбой) инспектор составит акт ввода в эксплуатацию, куда впишет начальные показания счетчика и предоставит вам договор по обслуживанию.

После внимательного прочтения договора, убедившись что вас всё устраивает, ставьте свою подпись.

Кто опломбирует счетчики воды

Не допускается использование в коммунальных расчетах снятых со счетчика данных, если не установлена пломба или нет полимерной пленки с нанесенным на нее оттиском поверительного клейма

После подписания договора вы начинаете платить за воду по счетчику. Из документов у хозяев должен остаться один экземпляр договора по обслуживанию и акт ввода счетчика в эксплуатацию.

Также необходимо оставить технический паспорт и свидетельство о поверке водомера. Технический паспорт понадобится сотруднику управляющей компании, лучше заранее сделать ксерокопию.

Бывают случаи когда требуется повторное пломбирование. К примеру, закончился срок службы приборов, полом одного из элементов узла, добавление нового элемента в систему.

Поэтому документы лучше хранить отдельно от остальных бумаг, чтобы в случае непредвиденной ситуации они были под рукой.

Проблемы при эксплуатации и их решение

В процессе эксплуатации водомерного узла возможны возникновения некоторых проблем. Рассмотрим их виды и возможное решение.

Сантехнический уплотнитель для резьбовых соединений

Качественная герметизация, залог долголетней службы, но не переусердствуйте. Большое количество подмотки может вызвать протекание

Вызвать сантехника на дом гораздо безопаснее и целесообразнее, поскольку проблема может касаться совершенно разных частей водомерного узла. Например, неисправность может заключаться в трубных соединениях. Фильтр грубой очистки нередко забивается — его прочищают или меняют. Не исключена поломка запорной арматуры. Кроме того, обращение к сантехнику поможет решить все проблемы в несколько раз быстрее. В большинстве случаев услуга стоит не так дорого или вообще бесплатна. Грамотное устранение неисправностей с водомерным узлом позволит не испортить оборудование ещё больше и избежать дальнейших проблем в будущем.

Признаки неисправности и меры по устранению:

  1. Плохо течет вода через водомер. Возможно, засорился фильтр грубой очистки. Необходимо вызвать представителя управляющей компании для устранения недостатка, он обязан бесплатно почистить фильтр и пере опломбировать. Ни при каких условиях не делайте этого сами, срыв пломбы равнозначен потере гарантии.
  2. Сорванная пломба. Не стоит исправлять самостоятельно. В ближайшее время известите управляющую компанию. За проведение переопломбирования придётся заплатить, но это мелочи по сравнению со штрафами в случае обнаружения инспектором факта сорванной пломбы. Надо будет выплатить полностью сумму по тарифу с момента последней проверки (может быть и несколько лет), а также штраф за отсутствие заявки.
  3. Вода проходит через водомер, но показания не фиксируются. Возможно, произошла поломка счетного или роторного механизма. Если вы уверены в неисправности водомера, то имеете право на бесплатную внеплановую проверку. Это в случае, если не истёк гарантийный период.

В период проведения проверки оплата за воду рассчитывается по среднестатистическому минимуму для региона. Проверка может занять до нескольких месяцев, иногда легче купить новый.

Зачем нужна установка счетчиков расхода воды

Врезка индивидуальных счетчиков воды становится неотъемлемой процедурой в каждом доме, процесс не сколько трудоёмкий сколько хлопотный, но вполне себя оправдывающий.

Соблюдая порядок в последовательности работ по установке счетчика на воду, вы не только экономите порядка 30% каждый месяц, но и появляется стимул для разумного использования воды.

Вам также может быть полезна информация о сроках поверки счетчиков и особенностях проведения этой процедуры.

Выводы и полезное видео по теме

Ролик наглядно представит процесс сборки узлов для монтажа приборов измерения холодной и горячей воды:

Однозначный вывод — установка счетчиков выгодна для каждой семьи, так как вода с каждым кварталом становится всё дороже, а запасов чистой пресной воды становится всё меньше.

И хотя представитель водоснабжающей компании при опломбировке не имеет права интересоваться квалификацией мастера, выполняющего монтаж прибора учета, но на практике пользователи сталкиваются с разными ситуациями.

Если у вас возникла какая-то проблема при опломбировке или вы хотите поделиться своим опытом установки, оставляйте, пожалуйста, свои комментарии под этой статьей.

Подключаем счетчик воды к умному дому

Когда-то системы домашней автоматизации, или как их часто называют “умный дом”, были жутко дорогими и их могли позволить себе лишь богачи. Сегодня на рынке можно найти достаточно бюджетные комплекты с датчиками, кнопками/выключателями и исполнительными устройствами для управлением освещением, розетками, вентиляцией, водоснабжением и другими потребителями. И даже самый криворукий DIY-шник может приобщиться к прекрасному и за недорого собирать устройства для умного дома.

Как правило предлагаемые устройства это либо датчики, либо исполнительные механизмы. Они позволяют легко реализовать сценарии вроде “при срабатывании датчика движения включить свет” или “выключатель возле выхода тушит свет во всей квартире”. Но вот с телеметрией как-то не сложилось. В лучшем случае это график температуры и влажности, или мгновенная мощность в конкретной розетке.

Недавно я себе поставил счетчики воды с импульсным выходом. Через каждый литр пробежавший через счетчик срабатывает геркон и замыкает контакт. Осталось дело за малым — прицепиться к проводам и попробовать из этого получить пользу. Например, анализировать потребление воды по часам и дням недели. Ну а если стояков для воды в квартире несколько, то удобнее видеть все текущие показатели на одном экране, чем лазить по труднодоступным нишам с фонариком.

Под катом мой вариант устройства на базе ESP8266, которое считает импульсы со счетчиков воды и по MQTT отправляет показания на сервер умного дома. Программировать будем на micropython с использованием библиотеки uasyncio. При создании прошивки я наткнулся на несколько интересных сложностей, о которых также расскажу в этой статье. Поехали!

Схема


Сердцем всей схемы является модуль на микроконтроллере ESP8266. Изначально планировался ESP-12, но мой оказался бракованный. Пришлось довольствоваться модулем ESP-07, который был в наличии. Благо они одинаковые и по выводам, и по функционалу, разница только в антенне — у ESP-12 она встроенная, а у ESP-07 — внешняя. Впрочем, даже без антенны WiFi сигнал в моей ванной ловится нормально.

Обвязка модуля стандартная:

  • кнопка ресет с подтяжкой и конденсатором (хотя и то и другое уже есть внутри модуля)
  • Сигнал enable (CH_PD) подтянут к питанию
  • GPIO15 подтянут к земле. Это нужно только на старте, но мне все равно нечего на эту ногу цеплять больше не нужно

Состояние линии GPIO2 проверяется только вначале работы — при подаче питания или сразу после ресета. Так модуль либо загружается как обычно, либо переходит в режим прошивки. После загрузки этот вывод можно использовать как обычный GPIO. Ну а раз там уже есть кнопка, то можно повесить на нее какую нибудь полезную функцию.

Для программирования и отладки я буду использовать UART, который вывел на гребенку. Когда нужно — я просто подключаю туда USB-UART переходник. Нужно только не забывать, что питается модуль от 3.3В. Если забыть переключить переходник на это напряжение и подать 5В, то модуль скорее всего сгорит.

С электричеством в ванной у меня проблем нет — розетка расположена примерно в метре от счетчиков, так что запитывать буду от 220В. В качестве источника питания у меня будет трудится небольшой блочок HLK-PM03 от Tenstar Robot. Лично у меня туго с аналоговой и силовой электроникой, а тут готовый блок питания в маленьком корпусе.

Для сигнализации режимов работы я предусмотрел светодиод, подключенный к GPIO2. Впрочем распаивать я его не стал, т.к. в модуле ESP-07 уже есть светодиод, причем подключенный к тому же GPIO2. Но на плате пускай будет — вдруг я захочу вывести этот светодиод на корпус.

Переходим к самому интересному. У счетчиков воды нет никакой логики, у них нельзя спросить текущие показания. Единственное что нам доступно это импульсы — замыкание контактов геркона каждый литр. Выводы герконов у меня заведены в GPIO12/GPIO13. Подтягивающий резистор я буду включать программно внутри модуля.

Пора подумать что делать если пропадет электричество. Первый вариант — на старте запрашивать у сервера начальные значения счетчиков. Но это потребовало бы существенного усложнения протокола обмена. Более того, работоспособность устройства в таком случае зависит от состояния сервера. Если бы после отключения света сервер не завелся (или завелся позже), то счетчик воды не смог бы запросить начальные значения и работал бы неверно.

Поэтому я решил реализовать сохранение значений счетчиков в микросхеме памяти, подключенной по I2C. Особых требований по размеру флеш памяти у меня нет — нужно сохранять всего 2 числа (количество литров по счетчикам горячей и холодной воды). Даже самый маленький модуль подойдет. А вот на количество циклов записи нужно обратить внимание. У большинства модулей это 100 тыс циклов, у некоторых до миллиона.

Казалось бы миллион это много. Но я за 4 года проживания в своей квартире потребил чуть более 500 кубов воды, это 500 тыс литров! И 500 тыс записей во флеш. И это только холодная вода. Можно, конечно, перепаивать микросхему каждые пару лет, но оказалось есть микросхемы FRAM. С точки зрения программирования это тот же самый I2C EEPROM, только с ооооочень большим количеством циклов перезаписи (сотни миллионов). Вот только пока все никак не доеду до магазина с такими микросхемами, поэтому пока постоит обычная 24LC512.

Печатная плата

Изначально я планировал делать плату в домашних условиях. Потому плата проектировалась как односторонняя. Но продолбавшись битый час с c лазерным утюгом и паяльной маской (без нее как-то не comme il faut), я все же решил заказать платы у китайцев.


Уже практически перед заказом платы я сообразил, что помимо микросхемы флеш памяти на шину I2C можно подцепить что нибудь еще полезное, например дисплей. Что именно на него выводить — пока еще вопрос, но развести на плате нужно. Ну а раз я собрался платы заказывать на фабрике, то ограничивать себя односторонней платой уже не было смысла, поэтому линии на I2C — единственные на задней стороне платы.

С односторонней разводкой также связан был один большой косяк. Т.к. плата рисовалась односторонняя, то дорожки и SMD компоненты планировалось размещать с одной стороны, а выводные компоненты, разъемы и блок питания с другой. Когда через месяц я получил платы, то забыл про изначальный план и распаял все компоненты на лицевой стороне. И только когда дело дошло до припаивания блока питания выяснилось, что плюс и минус разведены наоборот. Пришлось колхозить перемычками. На картинке выше я уже поменял разводку, но земля перекидывается из одной части платы в другую через выводы кнопки Boot (хотя можно было бы и на втором слое дорожку провести).

Получилось вот так


Корпус

Следущий шаг — корпус. При наличии 3D принтера это не проблема. Особо не заморачивался — просто нарисовал коробку нужного размера и сделал вырезы в нужных местах. Крышка крепится к корпусу на маленьких саморезах.


Я уже упоминал, что кнопка Boot может быть использована как кнопка общего назначения — вот ее и выведем на переднюю панель. Для этого я нарисовал специальный “колодец” где живет кнопка.


Внутри корпуса также располагаются пеньки, на которые устанавливается плата и фиксируется единственным винтом М3 (на плате больше места не оказалось)

Дисплей подбирал уже когда напечатал первый примерочный вариант корпуса. Стандартный двухстрочник в этот корпус не влазил, зато в сусеках обнаружился OLED дисплей SSD1306 128x32. Маловат, но мне на него не каждый день глазеть — покатит.

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

Устройство в сборе. Дисплейный модуль приклеен на сопли термоклей



Конечный результат можно увидеть на КДПВ

Прошивка

Перейдем к программной части. Для вот таких небольших поделок мне очень нравится использовать язык Python (micropython)- код получается очень компактный и понятный. Благо тут нет необходимости спускаться на уровень регистров с целью выжимать микросекунды — все можно сделать из питона.

Вроде бы все просто, да не очень — в устройстве намечается несколько независимых функций:

  • Пользователь тыкает в кнопку и смотрит на дисплей
  • Литры тикают и обновляют значения во флеш памяти
  • Модуль следит за сигналом WiFi и переконнекчивается если нужно
  • Ну а без моргающей лампочки вообще нельзя

В проекте посерьезнее я использовал классическую вытесняющую многозадачность и FreeRTOS, но в данном случае гораздо более подходящей оказалась модель сопрограмм (coroutines) и библиотеки uasync . Причем питоновская реализация корутин просто бомбовая — для программиста все сделано просто и удобно. Просто пиши себе логику, только скажи в каких местах между потоками переключаться можно.

Различия между вытесняющей и конкурентной многозадачностью предлагаю изучить факультативно. А сейчас давайте, наконец, перейдем к коду.


Каждый счетчик обрабатывается экземпляром класса Counter. Первым делом из EEPROM (value_storage) вычитывается начальное значение счетчика — так реализуется восстановление после пропадания питания.

Пин инициализируется со встроенной подтяжкой к питания: если геркон замкнут — на линии ноль, если разомкнут линия подтягивается к питанию и контроллер читает единицу.

Также тут запускается отдельная задача, которая будет производить опрос пина. Каждый счетчик будет запускать свою задачу. Вот ее код


Задержка в 25мс нужна для фильтрации дребезга контактов, а заодно она регулирует как часто просыпается задача (пока эта задача спит — работают другие задачи). Каждые 25мс функция просыпается, проверяет пин и если контакты геркона замкнулись, то значит через счетчик прошел очередной литр и это нужно обработать.


Обработка очередного литра тривиальна — просто увеличивается счетчик. Ну и новое значение неплохо было бы на флешку записать.

Для удобства использования предусмотрены “доступаторы”


Ну а теперь воспользуемся прелестями питона и библиотеки uasync и сделаем объект счетчика waitable (как это на русский перевести-то? Тот, которой можно ожидать?)


Это такая удобная функция, которая ждет пока значение счетчика не обновится — функция время от времени просыпается и проверяет флажок _value_changed. Прикол этой функции в том, что вызывающий код может уснуть на вызове этой функции и спать до получения нового значения.

А как же прерывания?

Да, в этом месте вы меня можете потроллить, мол сам же сказал про прерывания, а на деле устроил тупой опрос пина. На самом деле прерывания это первое, что я попробовал. В ESP8266 можно организовать прерывание по фронту, и даже написать обработчик этого прерывания на питоне. В этом прерывании можно обновлять значение переменной. Наверное, этого бы хватило будь счетчик ведомым устройством — таким, которое ждет, пока у него не спросят это значение.

А еще время от времени вылетает RuntimeError: schedule stack full и кто его знает почему?

С явным опросом и uasync оно в данном случае как-то красивее и надежнее получается

Работу с EEPROM я вынес в небольшой класс


В питоне напрямую с байтами работать сложновато, а ведь именно байты записываются в память. Пришлось городить конвертацию между целым числом и байтами с использованием библиотеки ustruct.

Чтобы каждый раз не передавать объект I2C и адрес ячейки памяти я все это завернул в маленький и удобный классик


Сам объект I2C создается с такими параметрами


Подходим к самому интересному — реализации общения с сервером по MQTT. Ну сам протокол реализовывать не нужно — на просторах интернета нашлась готовая асинхронная реализация. Вот ее и будем использовать.

Все самое интересное собрано в классе CounterMQTTClient, который базируется на библиотечном MQTTClient. Начнем с периферии


Тут создаются и настраиваются пины лампочки и кнопки, а также объекты счетчиков холодной и горячей воды.

С инициализацией не все так тривиально


Для задания параметров работы библиотеки mqtt_as используется большой словарь разных настроек — config. Большая часть настроек по умолчанию нам подходит, но много настроек нужно задать явно. Чтобы не прописывать настройки прямо в коде я их храню в текстовом файле config.txt. Это позволяет менять код независимо от настроек, а также наклепать несколько одинаковых устройств с разными параметрами.

Последний блок кода запускает несколько корутин для обслуживания различных функций системы. Вот например корутина, которая обслуживает счетчики

Базовый класс MQTTClient сам себя обслуживает, сам инициирует соединение по WiFi и переподключается когда соединение пропадает. При изменениях в состоянии соединения WiFi библиотека нас информирует вызовом wifi_connection_handler


Функция честно слизана из примеров. В данном случае она считает количество отключений (internet_outages) и их длительность. При восстановлении соединения на сервер отправляется время простоя.

Кстати говоря, последний sleep нужен только для того, чтобы функция стала асинхронной — в библиотеке она вызывается через await, а так могут вызываться только функции в теле которых есть другой await.

Помимо связи с WiFi нужно еще установить соединение с MQTT брокером (сервером). Этим тоже занимается библиотека, а нам выпадает возможность сделать что нибудь полезное, когда соединение установлено

Парочка вспомогательных функций


Так много текста, а мы еще не моргали светодиодом. Вот


Я предусмотрел 2 режима моргания. Если пропало соединение (или оно только устанавливается), то устройство будет моргать быстро. Если соединение установлено — устройство моргает раз в 5 секунд. При необходимости тут можно реализовать и другие режимы моргания.

Но светодиод это так, баловство. Мы же еще на дисплей замахнулись.


Вот это то, о чем я говорил — как просто и удобно с корутинами. Эта маленькая функция описывает ВСЁ взаимодействие с пользователем. Корутина просто ждет нажатия кнопки и включает дисплей на 3 секунды. На дисплее отображаются текущие показания счетчиков.

Осталась еще пара мелочей. Вот функция которая это все хозяйство (пере)запускает. Основной цикл занимается всего лишь отсылкой разной отладочной информации раз в минуту. В общем, привожу как есть — особо комментировать, я думаю, не нужно


Ну еще парочка настроек и констант для полноты описания


Запускается это все так

Что-то с памятью моей стало

Итак, весь код есть. Файлики я заливал с помощью утилиты ampy — она позволяет заливать их на внутреннюю (ту, которая в самом ESP-07) флешку и потом доступаться из программы как к обычным файлам. Туда же я залил используемые мною библиотеки mqtt_as, uasyncio, ssd1306 и collections (используется внутри mqtt_as).

Запускаем и… Получаем MemoryError. Причем чем больше я пытался понять где именно утекает память, чем больше я расставлял дебаг принтов, тем раньше возникала эта ошибка. Короткий гуглеж привел меня к пониманию, что в микроконтроллере в принципе всего 30кб памяти в которые 65 кб кода (вместе с библиотеками) ну никак не помещаются.

Но выход есть. Оказывается micropython не исполняет код напрямую из .py файла — этот файл сначала компилируется. Причем компилируется он прямо на микроконтроллере, превращается в байткод, который потом хранится в памяти. Ну и для работы компилятора тоже нужен определенный объем оперативки.

Трюк заключается в том, чтобы избавить микроконтроллер от ресурсоемкой компиляции. Можно скомпилировать файлы на большом компьютере, а в микроконтроллер залить уже готовый байткод. Для этого нужно скачать прошивку micropython и собрать утилиту mpy-cross.

Я не стал писать Makefile, а вручную прошелся и скомпилировал все нужные файлики (включая библиотеки) примерно так


Осталось только залить файлики с расширением .mpy, не забыв предварительно удалить соответствующие .py с файловой системы устройства.

Все разработку я вел в программе (IDE?) ESPlorer. Она позволяет заливать скрипты в микроконтроллер и тут же их выполнять. В моем случае вся логика и создание всех объектов находятся находится в файле water_counter.py (.mpy). Но чтобы все это запускалось автоматически на старте должен быть еще файл с именем main.py. Причем это должен быть именно .py, а не пред-компилированный .mpy. Вот его тривиальное содержимое


Запускаем — все работает. Но свободной памяти угрожающе мало — порядка 1кб. У меня еще есть планы по расширению функциональности устройства, и этого килобайта мне явно будет маловато. Но оказалось и на этот случай есть выход.

Дело вот в чем. Даже при том, что файлы скомпилированы в байткод и находятся на внутренней файловой системе, на деле они все равно загружаются в оперативную память и выполняются оттуда. Но оказывается micropython умеет выполнять байткод прямо из флеш памяти, но для этого нужно встроить его непосредственно в прошивку. Это не сложно, хотя на моем нетбуке это заняло прилично времени (только там у меня оказался линукс).

И что с этим теперь делать?


Эти значения теперь можно связать с объектами системы, их можно использовать в сценариях автоматизации и подвергать различному анализу — все это out of scope этой статьи. Кому интересна система majordomo могу порекомендовать канал Электроника В Объективе — товарищ тоже строит умный дом и доходчиво рассказывает про настройку системы.

Покажу лишь пару графиков. Это простой график значений за сутки



Видно, что ночью водой почти никто не пользовался. Пару раз кто-то сходил в туалет, и, похоже фильтр обратного осмоса пару литров за ночь посасывает. Утром потребление существенно возрастает. Обычно я пользуюсь водой из бойлера, но тут я захотел принять ванную и временно переключил на городскую горячую воду — это также хорошо заметно на нижнем графике.

Из этого графика я узнал, что сходить в туалет это 6-7л воды, принять душ — 20-30л, помыть посуду около 20л, а чтобы принять ванную нужно 160л. За день моя семья потребляет где-то около 500-600л.

Для особо любознательных можно заглянуть в записи по каждому отдельному значению


Отсюда я узнал что при открытом кране вода течет со скоростью примерно 1л за 5с.

Но в таком виде статистику, наверное, не очень удобно смотреть. В majordomo есть еще возможности смотреть графики потребления по дням, неделям и месяцам. Вот, например, график потребления в столбиках


Пока у меня данных только за неделю. Через месяц этот график будет более показательным — каждому дню будет соответствовать отдельный столбик. Немного картину портят корректировки значений, которые я ввожу вручную (самый большой столбик). И пока не ясно, то ли я неправильно задал самые первые значения почти на куб меньше, то ли это баг в прошивке и не все литры пошли в зачет. Нужно больше времени.

Над самими графиками еще поколдовать нужно, побелить, покрасить. Возможно я также буду в отладочных целях строить график потребления памяти — вдруг там что-то утекает. Возможно буду как-то отображать периоды, когда отсутствовал интернет. Пока все это крутится на уровне идеи.

Заключение

Сегодня моя квартира стала чуточку умнее. С таким небольшим устройством мне будет удобнее следить за потреблением воды в доме. Если раньше я возмущался “опять много воды за месяц потребили”, то теперь я смогу найти источник этого потребления.

Кому-то покажется странным смотреть показания на экране, если он в метре от самого счетчика. Но в не очень отдаленном будущем я планирую переселиться в другую квартиру, где будет несколько стояков воды, а сами счетчики, скорее всего, будут расположены на лестничной площадке. Так что устройство удаленного снятия показаний будет весьма кстати.

Функциональность устройства я тоже планирую расширять. Я уже присматриваюсь к моторизованным вентилям. Сейчас для переключения бойлер-городская вода мне нужно поворачивать 3 крана в труднодоступной нише. Было бы гораздо удобнее делать это одной кнопкой с соответствующей индикацией. Ну и, само собой, защиту от протечек реализовать стОит.

В статье я рассказал свой вариант устройства на базе ESP8266. На мой взгляд у меня получился весьма интересный вариант прошивки на micropython с использованием корутин — просто и симпатично. Я постарался описать множество нюансов и косяков, с которыми столкнулся походу. Возможно я слишком детально все описывал, лично мне как читателю проще промотать лишнее, чем потом додумывать то, что было недосказано.

Читайте также: