![]() |
![]() |
|||||||||||||||||||
Снимаем показания квартирных электро и водосчетчиков
Автор: Кодер
У многих из нас в квартирах установлены электро и водосчетчики, и мы вынуждены каждый месяц снимать их показания, для чего приходится лазить в электрощиток и сантехнический шкаф с фонариком. Я решил немного автоматизировать процесс, чтобы показания со всех счетчиков автоматически отправлялись на мой домашний компьютер. Тянуть лишние провода в квартире не предполагалось, пришлось придумать автономное устройство с батарейным питанием, которое можно разместить рядом со счетчиками. В моем случае устройств пришлось сделать два, один для электро, второй для воды. Устройство накапливает показания и периодически передавет на компьютер по беспроводному каналу. Устройство предназначено для: Принцип действия устройства достаточно прост. Контроллер считает импульсы приходящие от счетчиков накапливает их и, когда насчитает определенное значение киловаттчасов или литров, передает значение на компьютер через Bluetooth. Дальность связи у него достаточная для работы в пределах квартиры.
Устройство построено на микроконтроллере Atmega 328p. В качестве фотодатчика, использован обычный фотодиод BPW34. Основная проблема, с которой пришлось столкнуться, это высокое энергопотребление. Например, использованный bluetooth модуль HC-05 потребляет 40 миллиампер в режиме передачи и не сильно меньше в режиме ожидания. Для батарейного питания это абсолютно неприемлемо. Из-за этого пришлось сделать bluetooth модуль отключаемым по питанию (ключ Q1). В отсутствии импульсов на входе контроллер находится в режиме глубокого сна, bluetooth выключен потребление всей схемы менее 1мка. Когда приходит импульс на вход контроллер просыпается, увеличивает значение счетчика и засыпает снова. В этом режиме схема потребляет примерно 7ма. Если импульсов накопилось выше определенного значения (по умолчанию 100литров или 1квтчас) то включается bluetooth модуль и данные передаются на PC. Сеанс передачи данных длится примерно 10-15сек. Это самый энергозатратный режим (до 45 милиампер). Если не удалось соединиться с PC за 30сек, то контроллер снова засыпает. Контроллер учитывает время нахождения в последних 2-х режимах, а также количество успешных и неуспешных сеансов связи. Импульсы от счетчиков через фильтрующие RC цепочки поступают на триггер Шмитта, выполняющий роль формирователя. Потенциометр RV1 нужен для настройки постоянной времени RC фильтра. Дело в том, что при высокой потребляемой мощности (>4 квт), частота вспышек светодиода на электросчетчике может достигать 30Гц. Если сделать очень большую постоянную времени, то фильтр начнет давить полезный сигнал, а если очень маленькую, то начнет пролезать 50Гц помеха. При настройке нужно первоначально поставить на RV1 минимальное сопротивление и, если наблюдаются ложные срабатывания формирователя, нужно постепенно увеличивать RV1. Для канала электросчетчика лучше использовать экранированный 2-х проводный кабель и делать его как можно более коротким. Устройство использует режим SPP bluetooth. Т.е. при соединении с PC появляется виртуальный com порт, через который можно посылать в устройство текстовые команды и принимать данные. Под линуксом это делается при помощи команды rfcomm, которая дождавшись входящего соединения, запускает указанный скрипт. Пример скриптов обмена и описания команд, можно найти в прилагаемом архиве. Скрипт просто сбрасывает всю принимаемую информацию в системный лог в таком примерно виде: Feb 16 20:10:48 localhost root: xx:xx:xx:xx:xx:xx #0:22687.2(kwh) 00016 #1:00000.000(m3) #2:00000.600(m3) CPUtime:6949(s) BTtime:6614(s) Vbat:4412(mv)
Прошивка контроллера
Для прошивки был использован обычный китайский программатор с переходником на 6 пиновый ISP разъем. Разрабатка прошивки делaлась под Ubuntu linux 16.04 LTS. Использовался только свободный софт из состава дистрибутива. Были установлены пакеты arduino-mk, arduino-core, gcc-avr, avrdude из штатного репозитория Сборка прошивки из исходника make Заливка прошивки в контроллер make ispload Установка фузов make set_fuses По сравнению с дефолтными изменены следующие фузы EESAVE включен - не очищать EEPROM при перепрошивке Выбор bluetooth HC-05 модуля На ebay и aliexpress продается огромное количество различных вариаций HC-05 модуля. Примерная цена 1000р за пару. Нужно искать именно с такой распиновкой как на картинке (VCC,GND,TXD,RXD,KEY,LED). Другие варианты работать не будут, ну разьве что подпаяться проводами напрямую к дочерней плате. Внимание: HC-06 работать не будет в принципе (она умеет только слейв режим)
Печатная плата Схема и PCB разработаны в пакете KiCad 4.0.2. Габаритные размеры платы 89х60мм. (вид со стороны разъемов)
Компоновка 3D модели в KiCad и готовая PCB. На фотографии платы (rev 1) есть ошибка в разводке - переполюсовано питание у триггера Шмитта. На чертежах я это исправил (rev 2), но плату переделывать не стал, поленился, пришлось припаять пару проводов.
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |