Skip to content
/ HomeMeter Public

Raspberry PI node.js application to collect and submit home meters measurements

Notifications You must be signed in to change notification settings

juks/HomeMeter

Repository files navigation

main

HomeMeter

Шуточный 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 git@github.com:juks/HomeMeter.git

  • Установите дополнительные модули
    cd HomeMeter
    npm install

    Готово!

Пример подключения счётчика

Рядовой счётчик воды с импульсным выходом можно подключить к контактам GPIO следующим образом: scheme

Используются штырёк выхода 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

console

Важно! По-умолчанию в системе Raspbian доступ к GPIO-портам доступен только для суперпользователя, поэтому запуск приложения необходимо осуществлять через команду sudo.

После запуска web-инерфейс приложения будет доступен средствами браузера на порту 3000, по адресу, присвоенному устройству.

web

Загрузка показаний в pgu.mos.ru

Так как публичные API для загрузки показаний счётчиков автору неизвестны, загрузка осуществляется самим приложением через авторизацию на сайте pgu.mos.ru и последующую передачу параметров к известным (на момент разработки) URL.

Для работы функционала загрузки показаний необходимо задать настроку subPguMos в параметрах конфиругции, указав параметры действительной учётной записи проекта pgu.mos.ru, идентификатор плательщика и номер квартиры например:

"subPguMos":    {
                    "username": "ivanov",
                    "password": "ivanovRocks",
                    "payerId": 1234567890,
                    "flatNumber": 100
                  }

Freeware

Данное приложение является свободно распространяемым без ограничений на оизменение его исходного кода. Автор не несёт ответственности за возможные последствия использования приложения и работоспособность оборудования.

About

Raspberry PI node.js application to collect and submit home meters measurements

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published