Шуточный Node.js проект для Raspberry Pi, способный на полном серьёзе регистрировать показания домашних счётчиков воды и загружать собираемые значения на портал государственных онлайн услуг (pgu.mos.ru).
- Настраиваемая конфигурация подключения счётчиков к GPIO-портам Raspberry PI
- Встроенный крохотный веб-сервер для отображения и управления показаниями
- Модуль регистрации показаний счётчиков учёта воды на портале http://pgu.mos.ru
- Журналирование
- Микрокомпьютер Raspberry PI (проверено на версии 2)
- Счётчики воды с импульсным выходом
Для установки проекта необходимо выполнить следующие шаги (подразумевается, что у вас установлен Node.js):
-
Если на вашем Raspberry Pi не установлен Node.js, установите его (https://nodejs.org/)
-
Клонируйте репозиторий
git clone [email protected]:juks/HomeMeter.git -
Установите дополнительные модули
cd HomeMeter
npm installГотово!
Рядовой счётчик воды с импульсным выходом можно подключить к контактам GPIO следующим образом:
Используются штырёк выхода 3.3 В и один из GPIO-интерфесов.
Принцип работы импульсного выхода большинства домашних счётчиков воды заключается в замыкании входного и выходного контактов средствами внутреннего геркона. Временное замыкание осуществляется при прохождении внутренним вращающимся механизмом установленной отметки объёма (в большинстве случаев — 10 дм3 или, другими словами, каждые 10 литров, прошедшие через счётчик, временно замыкают, затем размыкают линию).
Для ознакомление с описанием доступных параметров, выполните следующую команду в директории проекта:
$ node homeMeter.js --help
Важно! Перед запуском необхоимо создать файл настройки подключения счётчиков wiring.js (cp wiring.js.dist wiring.js)
Чтобы запустить приложение и веб-сервер на порту 3000, выполните следующую команду в строке консоли:
$ sudo node homeMeter.js --localServerPort=3000
Для работы с единым файлом конфигурации можно использовать параметр --с:
$ sudo node homeMeter.js --c=config.json
Важно! По-умолчанию в системе Raspbian доступ к GPIO-портам доступен только для суперпользователя, поэтому запуск приложения необходимо осуществлять через команду sudo.
После запуска web-инерфейс приложения будет доступен средствами браузера на порту 3000, по адресу, присвоенному устройству.
Так как публичные API для загрузки показаний счётчиков автору неизвестны, загрузка осуществляется самим приложением через авторизацию на сайте pgu.mos.ru и последующую передачу параметров к известным (на момент разработки) URL.
Для работы функционала загрузки показаний необходимо задать настроку subPguMos в параметрах конфиругции, указав параметры действительной учётной записи проекта pgu.mos.ru, идентификатор плательщика и номер квартиры например:
"subPguMos": {
"username": "ivanov",
"password": "ivanovRocks",
"payerId": 1234567890,
"flatNumber": 100
}
Данное приложение является свободно распространяемым без ограничений на оизменение его исходного кода. Автор не несёт ответственности за возможные последствия использования приложения и работоспособность оборудования.