Serial to Ethernet адаптер на Arduino

В продолжение темы управления ИБП через COM порт. Решил все это дело завести в Home Assistant, чтобы иметь возможность удаленного включения/отключения нагрузки. Хотя в природе уже и существуют готовые устройства (раз, два), выполняющие необходимую работу, было принято решение сделать свой костыль. К тому же, это выходит намного дешевле.

Для построения адаптера требуется самый минимальный набор компонентов:

Прошиваем Arduino специальным скетчем, собираем все вместе (модуль RS-232 подключаем к контактам TX и RX соответственно) и…все готово!

Для защиты от случайного короткого замыкания я поместил все в термоусадку диаметром 35мм. Так же рекомендую дополнительно зафиксировать RS-232 модуль с помощью герметика для электроники.

В прошивке сделано подключение к сети с получением IP адреса по DHCP. Для отправки данных можно использовать стандартный Telnet клиент, либо бесплатный PuTTY. Некоторые параметры задаются в скетче в виде констант:

  • MACADDRESS — MAC адрес Ethernet шилда. Иногда присутствует в виде наклейки, в остальных же случаях можно воспользоваться специальным сервисом для его генерации, используя следующие параметры:
    • MAC Start Range — A8:61:0A:00:00:00
    • MAC End Range — A8:61:0A:FF:FF:FF
  • TCPPORT — номер порта, данные с которого будут транслироваться в RS-232 (по-умолчанию задан стандартный telnet порт 23);
  • MAXCLIENTS — максимальное количество одновременных сетевых подключений (по-умолчанию стоит 3, больше не рекомендую — возможны проблемы из за нехватки оперативной памяти);
  • BAUDRATE — скорость соединения с COM портом (по-умолчанию 2400 бит/с, требовалось согласно даташиту протокола управления моим ИБП). Задаете значение, которое необходимо для подключаемого устройства.

Проект на GitHub: https://github.com/avdeevsv91/arduino-serial2ethernet

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *