Шлюз WiFi-RS485

У меня установлен счетчик электроэнергии Меркурий-230 в котором присутствует порт RS-485. В момент установки счетчика к интерфейсу был подведен и подключен кабель UTP. Через USB адаптер все это было подключено к серверу и работало несколько лет, пока руки не дошли отвязаться  физически от сервера. 

На aliexpress заказал модуль UART-RS-485 и под него нарисовал плату в корпус на DIN рейку.так как места достаточно много а платы заказываются десятком, совместил два устройства на одной плате.

Собственно сам шлюз с возможностью установки двух типов модулей, esp8266-01 и esp8266-07 если необходима внешняя антенна ( в случае установки в железный бокс).

Второй вариант это WiFi реле на 2 канала, с возможностью подключения на вход кнопок или датчиков. На плате разведен делитель для встроенного АЦП. Присутствуют 3,3 вольта для питания ESP и 5 вольт для датчиков.

Для питания схемы используется преобразователь DC-DC с диапазоном входных напряжений от 4,75 до 23 вольт, настраивается на 5 вольт на выходе.  3,3 вольта получаем через AMS1117. Силовая часть это твердотельные реле G3MB-202P.

Платы заказывал на jlcpcb.com.

Распаял детали шлюза (синие клеммники не советую использовать)

Зеленый  светодиод это наличие питания, оранжевые отображают статус подключения к серверу MQTT и сети WiFi.

Сделал лицевую панель

технология та же что использовал при изготовлении шлюза OpenTherm

Корпус производства «Меандр»

В собранном виде выглядит так

В качестве прошивки используется ESPEasy. В зависимости от того как сконфигурировать прошивку шлюз можно использовать в двух режимах.

В качестве виртуального порта используя ser2net , в этом режиме к счетчику можно обращаться с помощью родной программы или использовать модуль «Счетчики Меркурий» из маркета дополнений MajorDoMo. Как вариант, для работы в таком режиме можно использовать прошивку ESP-Link.

Второй вариант, использовать плагин от @Andrey Anopov для ESPEasy. С его помощью всю нужную информацию можно получать через MQTT. Прошивку можно скомпилировать самостоятельно или воспользоваться моей сборкой.

Что бы данный плагин мог работать с hardware serial нужно отключить порт в настройках ESPEasy

после этого в настройках плагина станут доступными для выбора GPIO1 и GPIO3. (После настройки плагина, порт можно включить обратно)В результате этих манипуляций с заданным периодом опроса в MQTT появляются текущие данные, опционально можно включить получение ежедневной и ежемесячной статистики.на основе этих данных уже можно строить графикиили выводить нужные данные на видное место

Использование шлюза  не ограничивается связкой со счетчиком, с его помощью можно получить доступ к любому устройству с интерфейсом RS-485.

Для желающих, файлы для заказа плат.

57 комментариев для “Шлюз WiFi-RS485

  1. Здравствуйте. а по GPRS не пробовали передавать данные на MQTT?

    1. Не совсем понятен вопрос в контексте шлюза. GPRS это всего лишь канал связи, принимайте данные с шлюза на компьютер и далее передавайте куда угодно и каким угодно способом. Если вы хотите без компьютера передавать данные на удаленный MQTT то ставьте 3G/4G модем c WiFi/

      1. да, на даче нет ни компа ни WiFi.
        платку уже изготовил с SIM800 и ESP12 на борту.
        осталось дело за программой.

  2. Можно с несколькими счетчиками Энергомера по 485 соединить?
    Хочу свой и соседский опрашивать.
    И какая стоимость?

    1. У энергомеры не модбас, а свой протокол, как его опрашивать из того же ХА — непонятно 🙁

  3. Добрый день, уважаемый Jager. Я заказал платы по вашим файлам, не могли бы вы дать информацию по компонентам на плате

    1. Вы собираете шлюз? Если да то там и деталей то нет, резисторы 510-1к в зависимости от светодиодов которые вы будете использовать. Собственно сами светодиоды 3мм.

  4. Детали есть, обвязка питания (тоже готовая платка), стабилизатор, разъемы для подключения, разъем (плата ESP)

    1. В статье есть линки на DC-DC, стабилизатор, реле. Клеммы под провода с шагом 5.08, под есп стандартный header female 2×4 2.54

  5. Подскажите в чем причина…впаял резисторы 510, прошил esp 01…в итоге esp не хочет стартовать на плате, но при этом в прошивальщике стартует на ура…(перемычку между vcc и chep впаял)…такое ощущение что модуль что то держит…может вообще не нужны резисторы кроме как на светодиодах??? (я впаял на HL 1,4,5 под светодиоды и R 9, 8 1,2,7 тут правильно?)

    1. Если собираете гейт на RS485 то резисторы нужны только на светодиоды, но если вы остальные запаяли то они никак не влияют на работу ESP.
      (перемычку между vcc и chep впаял)
      Не надо там никаких перемычек запаивать, VCC и CH_PD соединены на плате.

    2. После выхода со стаба 3.3В нужно впаять конденсатор, там есть посадочное место. И все заработает.

  6. Не понятно тогда почему не стартует, буду пробовать играться с питанием. А что впаивается в C1, конденсатор?

    1. Победил проблему? У меня тоже самое, если выдергивать есп и вставлять заново, то запускается, но горит светодиод не очень ярко на есп…

  7. Запустил наконец-то модуль на плате, но подключить прибором Энергомера (СЕ 102M S7 145-AV) по средствам плагина от @Andrey Anopov не удалось…а вообще будут работать другие приборы кроме Меркури???

    1. Плагин написан конкретно под Меркурий, у вашего другой протокол. Напишите автору, возможно сделает.

  8. схема собрана как на фото «Распаял детали шлюза»
    использовал: плата, DC-DC Сonverter 4.75V-23V to 1V-17V SG125-SZ+, Линейный регулятор AMS1117, модуль UART-RS-485 и esp-01s, проверил напряжение 3,3В и 5В до компонентов доходит ровное.
    Но на выходе RS-485 сильные помехи, сигнал до прибора (Овен ПВТ-100) доходит, но ответ возвращается очень-очень-очень редко (редко и случайно).
    В чем может быть проблема?
    на фото «Распаял детали шлюза» еле заметил перемычки между контактами, и не видно линейного регулятора. Можете скинуть фото реально работающей коробки со всеми компонентами?
    Последнее фото в статье не грузиться.
    Спасибо.

    1. В статье фото реально работающего экземпляра. LDO нет потому что DC-DC настроен на 3.3 вольта. Сама плата RS485 может работать как от 5 так и от 3,3 вольт, на плате есть перемычка для выбора напряжения. В моем случае все питается от 3,3. Вы можете попробовать запитать платку RS485 от 5 вольт. Мой экземпляр связывается со счетчиком который стоит на уличном столбе через витую пару длиной метров 20.

  9. Добрый день. Счетчик Меркурий236, имеется только оптопрот. Сделал переходник на основе
    USB-TTL, к разъемам Тх и Rx которого подключены фототранзистор и инфракрасный светодиод (+ обязка). Пока считываю показания с помощью стандартной программы от Инкотекса. Возможно ли Тх и Rx подключить непосредственно к ESP?

    1. Если у вас работает с адаптером, то и с есп есть вероятность что заработает. Прошивку можете использовать ESP-Link, она создает мост wifi-uart.

  10. Спасибо. В настройки ESP зашел. Вопросы:
    1. К каким GIPIO надо подключить чтобы создать мост wifi-uart, и какие настройки
    сделать? (возможность просмотра показаний в Меркурий-конфигуратор )
    2. Возможно ли показания увидеть прямо в браузере? (попутно с температурой — DHT22 )
    3. Есть ли краткое руководство для новичков по сборке ESP-Link? Я залил Вашу сборку, хотя
    Вы рекомендовали ESP-Link, т.к. не хватает опыта и знаний сборок firmware.bin после скачивания с Гитхаб

    1. Я вот залил есп-линк, но месяц уже воду в машине, все руки не дойдут подключить к счётчику чтоб проверить. Тоже по настройке много вопросов после подключения будет)
      Переделал плату под есп+ сим800, но необходимость отпала, сделал интернет на даче + мажордомо.

      1. Павел, подскажите, по какой инструкции есп-линк заливали? Я прошиваю модуль esp-01s, он прошивается, но не грузится, точку доступа не создает и т.п. А просто esp-01 даже не шьется…

  11. Здравствуйте. Спасибо за интересный проект. Решил повторить и возникла пара вопросов.
    1) как я понимаю, если делать шлюз, а не реле, на нижней части платы нужно сделать перемычки на месте реле?
    2) у вас судя по всему используется внешний источник питания? От самого счётчика кроме как к 220в не подцепиться? И как я понимаю пять вольт нужно так же на сам счётчик подавать? или я путаю…
    3) как я понимаю, плата разведена в diptrace. Если у вас остался проект и можно о таком попросить, не могли бы поделиться самим проектом в diptrace? Я бы хотел разделить платы, а гербер очень коряво импортируется.
    4) так же немного запутался с преобразователями напряжения. У вас на фотке распаян только DC-DC преобразователь. Как я понимаю для шлюза его нужно настроить на 3.3 вольта и этого достаточно для RS485 и ESP?

    Простите за нубские вопросы и заранее спасибо за ответы

      1. Да
      2. Зависит от счетчика, есть модели с внутренним питанием интерфейса (буква S в названии)
      3. Нет
      4. Да, настроить на 3,3 вольта. RS485 и ESP питаются от 3,3.
  12. Добрый день. Спасибо за проект. А исходников Вашей сборки не осталось? Если остались, выложите плз.

  13. Товарищи, кому удалось реализовать rs-485-tcp сервер на этом проекте — поделитесь, какое ПО использовали и каковы настройки? На esp-01s на прошивке Mega «не вертится» как нужно (rs не работает, в mqtt все время шлёт «disconnected» каждую секунду. Что интересно — проблема с mqtt появилась после повторной перепрошивки, при первой прошивке mqtt работал отлично), а на esp-link чип записывается, но не запускается (на двух крайних версиях ПО).

    1. Использую ESP-01 и esp-link v3.2.47-g9c6530d
      Тоже долго мучался с прошивкой, пока не нашел это в документации
      Адреса для прошивки:
      0x00000 — boot_v1.7.bin
      0x01000 — user1.bin
      0xFC000 -esp_init_data_default.bin
      0xFE000 — blank.bin
      Далmше исполmзую скрипт на PHP, который по крону опрашивает счётчики и передаёт показания по MQTT.

    1. Устройство шлет данные посредством MQTT, в НА он поддерживается.

  14. а кто нибудь делал проект под счетчик меркурий 200 ? Автор плагина сказал не поддерживает больше его,а не могу найти хорошего решения..

    1. Есть такой проект wifi-iot.com — это конструктор прошивок для esp. Там есть поддержка Меркуриев разных. Только счетчики, вроде, в платной версии, но она стоит не дорого, так что, попробуйте. Но это не готовое решение, так что будьте готовы самостоятельно настраивать.

      1. да в платной, но там на меркурий 200 тарифы не выводятся, не реализовано в прошивке даже.

  15. Добрый день спасайте. Мы воспользовались вашей сборкой(bin файлом) , на предприятии все работает по mqtt данные прилетают как нужно, но вся эта красота работает на одном счетчике а у нас их 10, когда ставлю на другие все данные со всех счетчиков летят в один топик и получается каша. Данные, наше ПО может получать только с одного сервера mqtt, я попытался сам собрать сборку с другим именем топика, но знаний не хватает его собрать, ваша сборка классная но ещё бы 9 сборок с разными именами топиков, спасайте я в беде, уволят и поменай как звали. Я заплочу если нужно. Помогите пожалуйста. Очень нужно

      1. Документацию я затер до дыр. Не помогает(( Все топики прописывает как нужно с именами уровнями и тд. кроме Mercury230/Merc_data_json, Mercury230/Merc_stat_json,Mercury230/Merc_stat_day_json эта троица лезет на сервер сама вне древа топиков (то-есть топики строятся /ESP_Easy/status/LWT и тут все как настраивал каждый со своим именем и так далее, а Меркурий появляется вне древа как будно он другое устройство Mercury230/Merc_data_json и сам у себя строит древо.) Я слаб в программирование я только учусь . Меня серьезно прижали грозят уволить мол по моей вине внедрили не проф решение, а у меня ипотека . Я уже не знаю куда себя девать. Плохо жесть.Помогите пожалуйста. там как я понял только имена поправить и сборку сделать . Я уверен у вас это времени много не займет, а мне поможете безмерно.

        1. Может есть какаета инструкция вменяемая не из 4 пунктов. Очень нужна помощь.

        2. Руководство ваше странное, внедряет бесплатное любительское решение на предприятии. Хотели сэкономить, получили закономерный результат. По существу, я не программист и просто собирал сборку по документации. Ссылка на сам плагин есть в статье, я так понимаю вам поможет корректировка первых строк в каждом экземпляре. Как вариант попробуйте обратится к автору плагина.

  16. Добрый день. Сколько будет стоить готовое устройство ?
    И если его доработать для считывания показателей через IrDA ?

  17. Привет! У кого-нибудь есть плагин от @Andrey Anopov? Его гит более недоступен, может у кого-нибудь остался код?

  18. Добрый день. Скажите пожалуйста
    Я правильно понял что 485 интерфейс необходимо подключить напрямую к плате, не через клемник?

    1. Не совсем понял вопрос, как вы собрались что то подключать внешнее к плате в закрытом корпусе? Для внешних подключений есть клеммы.

      1. Спасибо за ответ.
        Тогда я не совсем понимаю, куда подключить данные по RS-485? Сорри за глуповатые вопросы.

  19. Приветствую!
    У меня Меркурий 230 ART-01 PQRSIN — выдаёт питание для интерфейса на клемник, 7,5V без нагрузки. Можно ли его использовать для питания ESP и RS485 адаптера?

  20. собрал прошил вашу сборку, данные в мкутт валятся, но в ха новое устройство не появляется, не вкурю… как выловить карточку.

Добавить комментарий для Сергей Отменить ответ