Найти в Дзене
Удобный дом!

Modbus-Rtu модуль реле 12V, RS485/TTL 1 канал. Home Assistant

Оглавление

Иногда попадаются запросы по настройке оборудования на RS485 и modbus. На нем работает куча оборудования - счетчики электричества, кондиционеры, шторы и моя вентиляционная установка, да и настройки вроде несложные.  Вот я и решил посмотреть эти ваши рекомендид стандарт.

Мне интересно с точки зрения заведения все в Home Assistant. Один из способов это использовать esphome с esp32 и преобразователем и подключить исполнительное устройство. В моем случае реле на 1 канал Modbus-Rtu модуль реле 12V, RS485/TTL

Само реле 1 канал Modbus-Rtu модуль реле 12V, RS485/TTL

Ям: https://ya.cc/m/6A25Ke
Али: https://aliclick.shop/s/9ad6ug?erid=2SDnjf3aF5W

Вот конвертор для rs485

Ям: https://ya.cc/m/6A2Zb8
Али: https://aliclick.shop/s/lhie57?erid=2SDnje9ih72

Вот esp которое использовал ESP wroom 32

Ям: https://aliclick.shop/s/rl2zrm?erid=2SDnjdjzZ7a
Али: https://aliclick.shop/s/rl2zrm?erid=2SDnjdjzZ7a

Стандарт интересен тем, что можно на одной линии использовать различное оборудование. Например, идет 2х жильный провод от одного устройства к другому, а затем к ещё одному - у каждого устройства будет свой адрес, а значит можно получать разные команды.

Ранее пробовал подключать и другие rs485, но у меня не было точных регистров и адресов, поэтому ничего у меня не вышло. Что бы точно понять что esp32 и конвертор подключены правильно, а в esphome я правильно высылаю команды.

Без документации черт ногу сломит какие команды высылать и получать. Поэтому искал что бы были команды известны!

Специально посмотрел что бы продавец указал Modbus-Rtu модуль реле 12V, RS485/TTL  для команды:

Базовые команды:

01 05 00 00 FF 00 8C 3A - замкнуть реле-1 (01 в начале это адрес устройства, его можно сменить) (00 перед FF это первое реле на плате)

01 05 00 00 00 00 CD CA - разомкнуть реле-1 (два последних байта это контрольная сумма, если смените адрес устройства, то не забудьте её пересчитать)

00 03 00 00 00 01 85 db - прочитать адрес

00 03 02 00 01 44 44 (ответ адрес 01)

00 10 00 00 00 01 02 00 02 2A 01 установить адрес 02

00 10 00 00 00 01 02 00 01 6A 00 вернуть адрес 01

Учтите, команды начинающиеся с 00 это широковещательные команды, которые можно отправлять только если на линии подключено одно устройство

Беру эту информацию и иду в чат гпт, где получаю (после серии пинаний) код для esp home и заливаю на esp32.

Особенности подключения

Esp 32 соединяю с конвертором по такой схеме:

ESP32 - RS485

Rx2 (D16, GPIO16) - RXD

Tx2 (D17, GPIO17) - TXD

3,3V - VCC (Блок питания +3,3V)

GND - GND

Подключение реле к конвертору

Реле RS485

А - А

В - В

Реле имеет внешнее питание 12В, а также отдельный вход IN. С другой стороны подсоединяется нагрузка под вашу задачу.

Присвоение адреса через esphome в Home Assistant

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

Простенькая программа для присвоения адреса, вводим номер и нажимаем set address. Для проверки что работает добавил 2 реле.

Вводим номер адреса и нажимаем кнопку присвоить.
Вводим номер адреса и нажимаем кнопку присвоить.

Код для esphome я оставлю по ссылке для удобного копирования ( в дзене код криво сохраняется)

Управление esphome в Home Assistant

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

Берем код (в конце статьи) реле которые уже сделали и загоняем в чат гпт. Просим написать остальные переключатели и называем сколько их у нас.

Пример запроса

Управляю реле через esphome через esp32 по rs485. Вот информация от производителя
01 05 00 00 FF 00 8C 3A - замкнуть реле-1 (01 в начале это адрес устройства, его можно сменить) (00 перед FF это первое реле на плате)
01 05 00 00 00 00 CD CA - разомкнуть реле-1 (два последних байта это контрольная сумма, если смените адрес устройства, то не забудьте её пересчитать)
Вот мой рабочий код
*** Вставляем код из моей ссылки ***
Добавь еще 3 реле с адресами 03, 04, 05. Получаем код для управления 5 независимыми реле. Убираем функцию записи адресов, что бы не сбить в дальнейшем настройки.

Итого

Я взял реле что бы потренироваться и научится работать с этим протоколом. В реальности мне эти знания нужны будут мне только для прикручивания старого/специфичного оборудования к Home Assistant. Удобнее управлять реле напрямую через esphome. Есть куча реле на zigbee, контроллеров с ethernet, да и просто по wifi. Поэтому не очень пока понял зачем строить умный дом на этом протоколе.

Можно использовать как esp32, так и esp8266 для управления. Достаточно удобно что все на одной линии можно расположить.

Есть и проблемы. Обратную связь я так и не получил, значит в каком состоянии реле непонятно. После отключения питания реле выключается, а в Home Assistant оно значится как включенное. Принцип работы modbus клиент-сервер, клиент запрашивает информацию или дает команду, а сервер отвечает. Реле в нашем случае это сервер, который без запроса не ответит, значит при изменении состояния наше реле-сервер обратно информацию отправить не сможет.

Коды для удобного копирования https://smart4you.notion.site/Modbus-Rtu-12V-RS485-TTL-1-1868751588a5806f9546d06ed8f00dcc?pvs=74

Поддержать канал можно через донаты https://donate.stream/yoomoney410013774736621 или через криптокошелёк (Только USDT) TCHekdJZFndXpDrHZGuTmqFNcqhWBTTzPr

Связаться со мной. (Консультации, проектирование, монтаж, обучение)

Новый подход к электрике и дизайну помещений. Некоторые провода уже не нужно тянуть, какие-то решения можно принять после ремонта. Перенести выключатель, запустить кондиционер с телефона - возможно автоматизировать любую рутину.

Сайт smart4home.ru и альтернативный Умный дом на любом этапе.

Соц сети: телеграм / RuTube канал Удобный дом / You Tube канал Удобный дом Яндекс Дзен: Удобный дом / InGram

Платформы специалистов: Авито / Профи.ру / Яндекс Услуги https://uslugi.yandex.ru/profile/EgorSmirnov-2294380?from=telek

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158 Реклама. ООО «ЯНДЕКС», ИНН 7736207543