Работа с Ethernet-реле SR-201 на Python
Недавно Миша Анистратов подарил мне одну интересную релюшку с управлением по сети. В комплекте шли проги для настройки, включения и выключения этой релюшки. Довольно удобный интерфейс, да и устройство не сильно сложное. В общем, решил поиграть с очередной сетевой игрушкой. Так же у меня возникла мысль привязать это реле к моему боту в Телеге. Для этих целей мне понадобилось управлять реле через сеть на Питоне (Python, Пайтон — кому, как удобней).
Управляющие коды у этой релюшки очень простые. По UDP необходимо отправить два управляющих байта состоящих из команды и номера реле. Релюшки из этой группы бывают на одну, две, ... и восемь линий. Порт для управления 6723. Никакой защиты от неверных данных или мусора нет. Если на этот порт будет поступать мусор от какого-нибудь сканера или вируса то реле будут отщелкивать Кан-кан или песню дрозда. Программа на Питоне довольно простая. Я прописал коды в виде комментариев, чтобы проще было протестировать. Управлять можно не только по UDP, но и по TCP протоколу. Используя TCP можно запросить состояние линий реле, но мне этого не требуется. Разве, что в дальнейшем появится такая необходимость. Программа для управления получилась крайне заурядной.
#!/usr/bin/python3 # -*- coding: utf-8 -*- # ORCINUS.RU Project import socket UDP_IP = '192.168.30.250' UDP_PORT = 6723 #COMMAND = '11' #On 1 #COMMAND = '21' #Off 1 #COMMAND = '12' #On 2 #COMMAND = '22' #Off 2 COMMAND = '1X' #On All #COMMAND = '2X' #Off All udp_send = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP udp_send.connect((UDP_IP,UDP_PORT)) udp_send.send(bytes(COMMAND, "utf-8")) udp_send.close()
Подобная релюшка на два канала стоит менее тысячи рублей на Алиэкспресс. Вполне себе не дорогое решение с очень простым управлением. Что мне не нравится в большинстве других решений, так это их привязка к каким-то своим сервисам для управления. А чтобы их заставить работать из самодельных приложений нужно много прыгать по граблям и снифить трафик между управляющими программами и устройством.
Вот ролик на Ютьюбе чтобы можно было наглядно посмотреть за исполнением команд этим реле. Светодиоды на плате показывают включенное состояние реле.
Тэги: ИТ, программирование, Питон
Отредактировано:2020-09-07 06:02:56
Мда, с безопасностью совсем грустно. Полностью открыто для хака.