Зчитування показань лічильників води за допомогою 1-wire та raspberry pi, будинок в проводах

Зчитування показань лічильників води за допомогою 1-wire та raspberry pi, будинок в проводах

У статті описується:

  • типи водолічильників
  • Принцип роботи імпульсних виходів на лічильниках
  • Способи автоматичного отримання показань витрати води з лічильників
  • Пристрій для зчитування показань з використанням 1-wire
  • Збереження показань в базі даних і графічне відображення даних про витрату води
  • Передача показань в керуючу компанію (теорія)

В даний час широкого поширення набули універсальні квартирні водолічильники. Якщо відійти від теми домашньої автоматизації, я вважаю це дуже доброю тенденцією - адже ведення обліку витрати води (та й не тільки води) досить ефективний захід, що сприяє збереженню ресурсів. Звичайно, в сучасних українських реаліях (низька вартість води, електрики, наш менталітет) це звучить досить дивно, але десь в душі я переконаний, що звертати увагу на збереження ресурсів потрібно починати вже сьогодні. А якщо мислити не так глобально, то сьогодні лічильники, як мінімум, дозволяють економити на рахунках за комунальні послуги. Щось я відволікся ...

Типи побутових лічильників води

Сучасні лічильники води, за свідченнями яких ми потім оплачуємо рахунок за ЖКП, бувають в основному двох видів (з точки зору домашньої автоматизації):

  • без виходів
  • З імпульсним виходом
  • Цифровий вихід RS 485 (в рамках цієї статті не розглядаються)
  • З радіовиходом (в рамках цієї статті не розглядаються)

З першими все зрозуміло: подивився, записав, відправив в керуючу компанію. Ніякої автоматизації. Хоча є народні умільці, які умудряються знімати показання з таких лічильників за допомогою веб-камер ( «сфотографувати» і потім за допомогою спеціальних алгоритмів розпізнати цифри - приклад реалізації) або встановлюють спеціальні оптичні зчитувачі швидкості обертання гребінки на лічильнику (найчастіше це та сама « світиться червона лампочка »зі старих оптичних комп'ютерних мишей - так так, це камера з дуже низьким дозволом) з подальшою обробкою і перетворенням в конкретні цифри витрати води. Якщо у вас лічильник без виходів і ви не хочете витрачати гроші на установку нових лічильників, то можете погуглити подібні рішення - їх досить багато і майже всі можна зробити «своїми руками». Але, на мій погляд, подібний підхід носить скоріше дослідний характер, ніж стабільно працююче просте рішення з використанням спеціально розроблених для цих цілей імпульсних виходів в водолічильників.

Розглянемо докладніше лічильники з імпульсним виходом. Загальний принцип роботи дуже простий: датчик віддає один повний імпульс при проходженні певної кількості рідини (залежить від характеристик конкретного лічильника).

Імпульсний вихід заснований на впливі магнітного поля постійного магніту на геркон, при якому відбувається чергується замикання і розмикання контактів геркона. Геркон формує пасивний вихідний сигнал ( «сухий контакт»), який може зчитуватися будь-яким лічильником імпульсом.

Завдання зводиться до підрахунку імпульсів в одиницю часу і множенню їх на «ціну» одного імпульсу. Як правило 1 імпульс = 10 літрів, в деяких лічильниках це значення дорівнює 1 літру. Яка ціна імпульсу у вашого лічильника можна подивитися в технічному паспорті. Така інформація іноді буває на самому лічильнику.

Устаткування для зчитування імпульсів з лічильника води

У моїй реалізації Розумного будинку майже все сенсори підключені до шини 1-wire та лічильники імпульсів для обліку витрати води не стали винятком. Я використовував готовий пристрій від магазину radioseti - «Модуль лічильник з буферною пам'яттю 2 каналу». Як видно з назви, пристрій дозволить прочитувати свідчення з двох лічильників. Пристрій заснований на чіпі Maxim DS2423 і при наявності певних умінь, не важко згуртувати такий пристрій самостійно.

Зчитування показань лічильників води за допомогою 1-wire та raspberry pi, будинок в проводах

У вбудованій пам'яті пристрою є дві цілочисельні змінні Counters.A і Counters.B. в яких зберігається кількість «підрахованих» імпульсів на кожному вході (гаряча і холодна вода). Кожноїзмінної виділено 32 байта - цього вистачить з величезним запасом на багато років, навіть при ціні імпульсу в 1 літр.

Вбудований внутрішній елемент живлення дозволяє зберігати результати роботи не залежно від зовнішнього живлення, а так же пристрій буде вважати імпульси і зберігати інформацію у внутрішню пам'ять, навіть якщо воно відключено від мережі 1-wire та від харчування. На мій погляд це рішення ідеально підходить для наших завдань.

До загальної 1-wire шині наше пристрій підключається стандартним чином через коннектор типу RG-11 (6p4c): DATA, GND, + 12V (в схемі датчика вбудований стабілізатор напруги з 12В).

Лічильники підключаються теж досить просто, але кріплення вже «під гвинт» (раджу обзавестися комплектом хороших маленьких викруток, щоб не пошкодити роз'єм пристрою). Один роз'єм загальний (GND), в нього потрібно підключити контакти від обох лічильників. І два вхідних для кожного з лічильників окремо.

Зчитування показань лічильників води за допомогою 1-wire та raspberry pi, будинок в проводах

Стабільність роботи, пропуски імпульсів і помилкові спрацьовування

Пристрій працює на подив стабільно. За більш ніж пів року експлуатації розбіжність «лічених» фактичних свідчень склало близько 20 літрів на гарячу і 40 літрів на холодну воду в меншу сторону. При середній витраті води в місяць 4 і 6 кубометрів відповідно це всього близько 0,1% - не багато. Раз в пару років можна «відкоригувати» значення в пам'яті пристрою вручну.

На стабільність роботи можуть впливати наступні фактори:

  • Якість самих лічильників води (в моєму випадку з лічильниками Valtec пощастило)
  • Наявність неподалік джерела сильних магнітних полів (силова проводка, всілякі джерела електромагнітних завад)
  • Надійність фіксації виходів лічильника в роз'ємі пристрою
  • Якість встановленої батарейки (і потрібно стежити за її напругою)

Аналоги пристрою від Radioseti можна знайти в інтернеті (наприклад від HobbyBoards за 30 $ без урахування доставки зі США) або спаяти самому, але, якщо чесно, то за співвідношенням ціна / якість кращого устрою я не поки бачив.

Збереження показань з лічильника в базу даних

На сервері Розумного будинку (я використовую Raspberry Pi з ОС Raspbian і USB майстром 1-wire мережі DS9490R) за розкладом кожні N-хвилин (задається за бажанням) запускається скрипт, який за допомогою бібліотеки OWFS зчитує показання з 1-wire лічильника імпульсів і зберігає їх в СУБД.

Загальна схема підключення представлена ​​нижче:

Зчитування показань лічильників води за допомогою 1-wire та raspberry pi, будинок в проводах

В консолі Linux зчитування показань виглядає приблизно так:

А графіки, отримані на основі даних з 1-wire лічильника імпульсів виглядають приблизно так:

Зчитування показань лічильників води за допомогою 1-wire та raspberry pi, будинок в проводах

Один день з життя: свідчення витрати води за добу.
Для побудови графіків використовується бібліотека Highcharts.

Автоматична передача показань із лічильників води в керуючу компанію

При наявності в БД актуальних даних про витрату води, можна підрахувати її витрата за місяць і передати в керуючу компанію.

На сьогоднішній день (по крайней мере в Москві) багато КК приймають свідчення за допомогою:

Але це тема наступних статей.

З доступними на сьогоднішній день рішеннями (як апаратними, так і софтові) вважати показання з лічильника води, зберегти їх в БД, а потім візуалізувати, використовувати для статистичних розрахунків, передати в керуючу компанію дуже просто - навіть якщо ви не вмієте користуватися паяльником і не є гуру-программірстом. Потрібно лише трохи терпіння, бажання і не боятися нового

Навігація по публікаціям

А код під лінукс можете викласти?

Схожі статті