- PVSM.RU - https://www.pvsm.ru -

Снятие показаний счетчиков в домашних условиях

Снятие показаний счетчиков в домашних условиях - 1 В прошлой статье [1] я рассказывал как снимал показания со счетчиков воды. С тех пор прошло уже несколько лет. Устройство так и продолжает работать и за все это время я его не трогал. Но мне этого показалось мало, т.к. в доме были другие устройства, с которых необходимо было снимать показания. Об этом я и хочу поговорить.

Счетчик электроэнергии

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

Снятие показаний счетчиков в домашних условиях - 2

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

Снятие показаний счетчиков в домашних условиях - 3

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

Датчик протечки воды

В качестве образца взял обычный датчик протечки GIDROLOCK WSP [2]. Его принцип работы схож с фототранзистором, только он меняет свое сопротивление от попадания на него воды.

Доработка платы

Я немного доработал старую плату. Теперь схема выглядит следующим образом

Снятие показаний счетчиков в домашних условиях - 4

Были сделаны следующие изменения:

  1. В схему добавлена микросхема CP2102, чтобы к плате можно было подключаться напрямую без переходников
  2. Увеличено кол-во выводов до 4(М1, М2, М3, М4), что позволяет одновременно подключить большее кол-во счетчиков
  3. Добавлены вспомогательные резисторы(R1..R8), что позволило конфигурировать выводы как необходимо

Теперь каждый вывод можно настроить для:

  • подключения светодиода
  • подключения кнопки
  • подключение счетчиков(датчиков)

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

Снятие показаний счетчиков в домашних условиях - 5

Давайте на примере датчика протечки рассчитаем делитель напряжения. Допустим датчик подключен к выводу M1. У него вспомогательные резисторы R1 и R2. Напряжение питания(U) ESP 3.3V. Сопротивление датчика протечки(Rd) при попадании на него воды становится 10кОм. Нам необходимо добиться, чтобы напряжение $U_2$ было ниже напряжения уровня логического нуля. Для ESP это 0.8V, возьмем 0.6V. $R_1$ нам не нужно, соответственно примем равным 0. Формула для расчета напряжения $U_2$:

$U_2=Ufrac{R_d}{R_2+R_d}$

Выделим $R_2$:

$R_2=R_dfrac{U-U_2}{U_2}$

, где $R_d$ — это сопротивление датчика

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

$R_2=10000cdotfrac{3.3 - 0.6}{0.6}=45000 Ом$

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

Прошивка

Как и раньше, прошивка собрана при помощи online-конструктора [3]. Старый скрипт был модифицирован под 2 режима работы: снятие показаний счетчиков воды и снятие показаний электросчетчика. Соответственно есть 2 окна настройки:

Снятие показаний счетчиков в домашних условиях - 14 Снятие показаний счетчиков в домашних условиях - 15

При желании можно все объединить и добавить что-то свое. При отладке у меня одновременно были подключены 2 счетчика воды, датчик протечки и светодиод.
В режиме снятия показаний счетчиков воды, данные передаются каждые 60 секунд при условии если были какие-либо изменения в показаниях. В режиме снятия показаний счетчика электроэнергии, данные передаются каждые 20 секунд без каких либо условий. Данные по-прежнему передаются на thingspeak.com [4]
Т.к. в новой схеме отсутствует кнопка для перехода в режим настроек, было принято решение при загрузке переводить устройство в режим настройки на 60 секунд. Если в течение 60 секунд никто не подключился к устройству, то дальше стартуем режим снятия показаний. Если кто-то подключился, то выход из режима настроек либо по сохранению данных на странице либо перезагрузив устройство.

Доработка приложения

Показания счетчика электроэнергии необходимо было передавать в отдельный канал, поэтому в новой версии приложения я добавил возможность добавлять несколько каналов. Все данные хранятся в локальной SQL базе, чтобы можно было легко и быстро строить графики. Т.к. данные по электросчетчику я отправлял каждые 20 сек это отразилось на кол-ве данных, а следовательно, и скорости их получения. Для сравнения, за все время снятия показаний по водосчетчикам накопилось около 72000 записей, а по электросчетчику примерно за 7 месяцев около 2,6 млн. После оптимизации запросов в базу, удалось увеличить скорость выборки в несколько тысяч раз(сам не ожидал такого прироста).
В новой версии были добавлены:

  1. виджет электросчетчика
  2. линейные графики
  3. возможность поделиться виджетом или графиком с другими людьми
  4. возможность работы с несколькими каналами
  5. оптимизация скорости работы

Итого

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

  1. текущее показание счетчика
  2. текущее потребление
  3. информацию по потреблению и расходу электроэнергии за какой-то промежуток времени

Конечно, напрашивается вопрос почему я не сделал устройство автономным(на хабре есть несколько статей на эту тему). Если делать устройство автономный, то необходимо передавать данные несколько раз в день, а я же хотел видеть данные почти в режиме реального времени.
Приложение можно использовать не только с моим устройством, но и просто как клиент к thingspeak.com [4] для отображения каких либо графиков или значений. На данный момент приложение красиво отображает показания счетчиков воды и электроэнергии, если у кого-то будут другие идеи, что можно добавить, то пишите мне в личку.

Полезные ссылки

Фото устройства

Снятие показаний счетчиков в домашних условиях - 16
Снятие показаний счетчиков в домашних условиях - 17

Автор: LAVElek

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/android/299758

Ссылки в тексте:

[1] статье: https://habr.com/post/395459/

[2] GIDROLOCK WSP: https://gidrolock.ru/production/datchiki-protechki-vody-gidrolock/

[3] online-конструктора: https://nodemcu-build.com/

[4] thingspeak.com: https://thingspeak.com/

[5] Скрипты и прошивка: https://github.com/LukyanovAnatoliy/MetersReading

[6] Приложение: https://play.google.com/store/apps/details?id=lav.watermeter&referrer=utm_source%3Dhabrahabr

[7] Повторный заказ платы: http://dirtypcbs.com/store/designer/details/10652/6200/---------

[8] Источник: https://habr.com/post/428844/?utm_campaign=428844