В предыдущей статье уже писал о своем опыте интеграции счетчика электроэнергии Меркурий 200.04 в систему умного дома Home assistant. В тот раз я собирался считать импульсы светодиода с помощью фоторезистора и посылать их в MQTT с помощью wi-fi модуля на чипе esp8266. В итоге у меня получилось добиться согласования и подключиться к интерфейсному разъему на самом счетчике. В этой статье расскажу о том, как я получаю информацию со счетчика по wi-fi.
Сразу скажу, что мой путь был весьма тернист и можно было сделать гораздо проще, но об этом я расскажу в конце статьи.
Так как мой сервер умного дома был достаточно удален от счетчика электроэнергии, а тянуть к нему провод не было ни желания, ни возможности я решил поискать вариант общения со счетчиком по wi-fi. К счастью, такие варианты есть, в том числе и фабричного изготовления, но они стоят слишком дорого, поэтому я пошел по пути DYI.
Заказал к имеющемуся модулю esp wemos d1 mini плату конвертер rs485 to uart.
Тут надо обратить внимание на саму плату. Может мне попался брак, но я нашел две ошибки.
- Во-первых, контакты TXD и RXD подписаны неправильно, т.е. перепутаны. В итоге мне пришлось подключать к esp следующим TXD - TX и RXD - RX, хотя обычно RX надо соединять с TX.
- Во-вторых, на другом конце платы есть пин A+ B- и нечто на китайском. Как подсказывает переводчик - это земля (для питания модуля телеметрии в самом счетчике), но не в моем случае, поэтому землю я взял также с esp.
Еще необходимо понимать, что в счетчике на самом деле не RS485, как я думал изначально, а CAN. Это разные протоколы, даже разного уровня, и есть опять-таки дорогие готовые модули CAN to RS485. Но я нашел один лайфхак. Не ручаюсь, что он работает со всеми счетчиками, но на Меркурий 200 эта схема точно рабочая. Нужно лишь поменять местами провода A и B и повесить параллельно им резистор 120 Ом.
Вот так получилось подключить резистор.
Теперь совместимость счетчика с этой платой была обеспечена.
Далее подключаем телеметрическому выход к плате согласно схеме
Плату подключаем к модулю ESP на пины RX и TX. Модуль телеметрии и плату rs 485 to uart я запитал на 5V с esp.
Макет установил в очередную распаечную коробочку и положил в слаботочный щит.
Теперь когда все подключено необходимо было определиться с прошивкой esp. В интернете нашел замечательный вариант в виде плагина для прошивки ESPeasy, который позволил бы передавать показания в MQTT, но он был предназначен для счетчика Меркурий 230, а протоколы обмена данными этих счетчиков отличаются.
Выход был найден в прошивке платы на ESPeasy и конфигурации виртуального порта ser2net
Таким образом, по ip адресу и порту 23 можно подключиться к счетчику с штатного конфигуратора для счетчиков меркурий и успешно считать информацию. Это уже был результат, но мне этого было недостаточно, т.к. необходимо было получать эти данные в моем умном доме на базе системы управления Home Assistant.
Читайте продолжение в следующей части.
Подписывайтесь на мой канал и страницу в инстаграм @smart.home53, чтобы не пропустить обновления.
#умный дом #smart home #технологии #интернет вещей #сделай сам #iot #home assistant #diy #счетчик электроэнергии #потребление