Поиск

17 марта 2017 г.

Дистанционное снятие показаний электросчетчика Меркурий

Многотарифные 3-х фазные электро-счетчики Меркурий 231 АТ (230) имеют ИК интерфейс, через который можно снимать показания, изменять параметры счетчика, корректировать время.
Со счетчика можно считать достаточно много данных, об этом ниже.

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

веб сервер esp8266 главный экран




Меркурий 231 АТ
Счётчик Меркурий 231 обеспечивает измерение, учёт, хранение, вывод на ЖК-индикатор и передачу по интерфейсу IrDA количества учтённой активной электроэнергии раздельно по каждому тарифу и сумму по всем тарифам:


  • всего от сброса показаний
  • за текущие сутки
  • за предыдущие сутки
  • за текущий месяц
  • за каждый из 11 предыдущих месяцев
  • за текущий год
  • за предыдущий год

В счетчике имеется массив средних мощностей.

Также счетчик выводит мгновенные значений активной мощности по каждой фазе и по сумме фаз, действующих значений фазных токов, напряжений, углов между фазными напряжениями
частоты сети, коэффициентов мощности по каждой фазе и по сумме фаз

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

Возможно управление нагрузкой через телеметрический выход внешними цепями коммутации.
Наличие журнала событий (кольцевого по 10 записей на каждое событие) в котором фиксируются:

  • время включения выключения счётчика
  • время пропадания / появления фаз 1,2,3
  • время вскрытия / закрытия прибора
  • время коррекции тарифного расписания
  • время превышения установленных лимитов энергии и мощности…


веб сервер esp8266, логи

В общем, счетчик достаточно навороченный.

Я использовал старый модуль esp01 из этого проекта, только перепаял флеш память на 16 Мбайт.
Память используется для постройки графиков и сохранения истории.
В ней хранится два циклических буфера - по дням на 7680 дней и детальное потребление до конца памяти (для флеши 4 Мбайта - 2136 дней).

Для хранения текущих указателей и других переменных массива истории используется 30 байт вечной памяти FRAM.
В принципе, можно было обойтись и без нее, но раз она уже у меня была распаяна, почему бы ее не использовать.

Точное время модуль берет c SNTP сервера и если в настройках введено "Макс. расхождение времени" и заполнен сетевой адрес счетчика, то будет произведена корректировка времени при превышении указанной разницы.

Графики строятся с помощью библиотеки D3.js.

По дням:
интерактивный график по дням, d3js

интерактивный график по дням, d3js

Помесячно c графиком:



Детально, по минутам:

интерактивный график по минутам, d3js

Бегущий график текущей общей потребляемой мощности:


Схема:

схема esp8266 irda

Блок питания импульсный мини на 3.3V, в корпусе - HLK-PM03.
Для ИК считывателя была сделана модель корпуса для печати на 3D-принтере:


3D модель: IrDA_sensor_case.stl

Прошивка + вебдиск тут: https://github.com/vad7/PowerMeter-IrDA/releases

Пароль по умолчанию: 0123456789
Доступ к настройкам: логин имя в AP SSID (по умолчанию "ESP8266"), пароль в AP Password (по умолчанию выше).

PS. От MCP2120 отказался по причине того, что c aliexpress пришла подделка.
Тут реализация на чистом esp8266.

2 комментария:

  1. А справедливо для счетчика Меркурий с модемом вот такая модель.

    ОтветитьУдалить
  2. Приветствую! Копался в исходниках но так и не смог победить rts. Нужно подключится через 485 а нечем выбрать прием-передача. Может есть готовая прошивка или поскажете чего в исходнике подправить.
    Спасибо!

    ОтветитьУдалить