Дунька в сортире: дистанционное снятие показаний счетчиков воды и защита от протечек на Arduino. Часть 1. Счетчики

Дунька в сортире: дистанционное снятие показаний счетчиков воды и защита от протечек на Arduino. Часть 1. СчетчикиКогда речь заходит о сантехнике и умных счетчиках воды, сразу вспоминается старая шутка: «Если хочешь проверить, сколько воды утекает – поставь счетчик. Если хочешь понять, куда утекают деньги – поставь умный счетчик!» Вот и я решил не отставать от прогресса и задумался о том, чтобы поставить счетчики с импульсным выходом. Идея была проста: не лазить каждый раз в сантехнический шкаф и не рисковать плиткой, как будто она — хрупкий артефакт из музея.

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

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

Тут началась настоящая эпопея с поиском регистратора. Оказывается, заводские приборы стоят как маленький космический корабль — семь-восемь тысяч рублей за штуку!

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

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

Представьте себе: герой-геркон замыкает контакт — бам! — один тик.

Десять таких тиков — сто литров; сто тиков — кубометр воды. Всё просто… если не считать того факта, что геркон – это все-таки механический контакт с дребезгом.

Без подавления дребезга показания быстро превратились бы в водяной хаос.

В интернете нашлись готовые решения… но только для двух счетчиков! У меня же их четыре — ванна плюс туалет, каждый со своим стояком и своим характером.

Делать два одинаковых устройства? Нет уж, спасибо! Поэтому пришлось стать мастером на все руки: собрать свой регистратор с нуля.

Первоначальная прошивка позволяла внести стартовые показания всех четырех приборов и дальше ловить каждое «тик» со всех герконов одновременно. Вывод информации происходил на 2004 дисплей – тот самый классический экранчик из времен динозавров электроники.

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

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

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

Подсветка дисплея включается по нажатию кнопки – чтобы можно было любоваться цифрами даже ночью без фонарика или костра.

Корпус для всей этой высокотехнологичной магии был найден среди древностей: старый корпус от ростелекомовской ТВ-приставки идеально подошел для моего проекта «умный счетчик». После двух месяцев тестирования выяснилось несколько забавных моментов.