С материалом можно так же ознакомится в формате видео:
Подключать будем мотор для рулонных штор Akko AT35SL . Для внутреннего Китайского рынка компания Ningbo Dooya Mechanic выпускает их мод маркой DT35SL. Название мотора не имеет принципиального значения. Так можно подключить любой мотор с фазным, либо псевдофазным управлением.
Контроллером на этот раз возьмём Контроллер для автоматизации на DIN-рейку — JetHome JetHub D1+. У Контроллера, уже в корпусе, есть три реле, два из которых (второе и третье) будем использовать для управления тубулярным мотором.
Выполнив все соединения между DT35SL и реле контроллера запустим терминал подключимся к JetHub D1+ по ssh.
Для простоты подключаемся к контроллеру сразу как root. Это избавит нас от лишних движений. Контроллер в локальной сети имеет ip адрес 192.168.31.227. Ip был выдан контроллеру роутером автоматически. Статический ip можно присвоить либо на роутере, либо запустив на контроллере armbian-config. Как это делается мы уже описывали.
Подключаемся командой:
ssh root@192.168.31.227
Вводим пароль и попадаем в терминал контроллера:
Давайте посмотрим, как можно управлять исполнительными устройствами из терминала. Все исполнительные устройства такие, как светодиоды, реле, сухие контакты связаны с контактами GPIO контроллера. Записывая 0 или 1 в соответствующий файл, можно управлять такими исполнительными устройствами как светодиоды и реле.
Для наглядности к первому реле я подключил тестер в режиме прозвонки. В исходном состоянии контакты реле разомкнуты. Для того, чтобы их замкнуть запишем единицу в файл, соответствующего GPIO:
echo 1 > /sys/class/gpio/gpio456/value
Контакты замкнулись, тестер подает звуковой сигнал.
Для отключения подадим команду:
echo 0 > /sys/class/gpio/gpio456/value
Соответствие номеров GPIO исполнительным устройствам описано в документации на контроллер.
Аналогичным способом можно управлять светодиодами.
Светодиодов два – красный и зеленый.
Как пример, включим красный светодиод. Красному светодиоду соответствует GPIO452:
echo 1 > /sys/class/gpio/gpio452/value
Чтобы его выключить, запишем ноль в соответствующий файл:
echo 0 > /sys/class/gpio/gpio452/value
Последний шаг – управление самим мотором. Мотор подключен ко второму и третьему реле. Для того, чтобы мотор начал вращаться в одну сторону включим, например, второе реле:
echo 1 > /sys/class/gpio/gpio455/value
Для выключения мотора отправим команду:
echo 0 > /sys/class/gpio/gpio455/value
Если записать единицу в третье реле, то мотор будет вращаться в другую сторону:
echo 1 > /sys/class/gpio/gpio454/value
Если записать в третье реле ноль, мотор остановится:
echo 0 > /sys/class/gpio/gpio454/value
Для того, чтобы не запоминать «магические числа» соответствия номера GPIO конкретному исполнительному устройству и для того, чтобы ваш код был более читаемым я создал файл .bash_aliases с синонимами этим командам:
# Commands for leds:
alias red_led_on="echo 1 > /sys/class/gpio/gpio452/value"
alias red_led_off="echo 0 > /sys/class/gpio/gpio452/value"
alias green_led_on="echo 1 > /sys/class/gpio/gpio453/value"
alias green_led_off="echo 0 > /sys/class/gpio/gpio453/value"
alias both_leds_on="echo 1 > /sys/class/gpio/gpio452/value; echo 1 > /sys/class/gpio/gpio453/value"
alias both_leds_off="echo 0 > /sys/class/gpio/gpio452/value; echo 0 > /sys/class/gpio/gpio453/value"
# For blinds motor:
alias blinds_open="echo 0 > /sys/class/gpio/gpio454/value; echo 1 > /sys/class/gpio/gpio455/value"
alias blinds_close="echo 0 > /sys/class/gpio/gpio455/value; echo 1 > /sys/class/gpio/gpio454/value"
alias blinds_stop="echo 0 > /sys/class/gpio/gpio455/value; echo 0 > /sys/class/gpio/gpio454/value"
# Relay1:
alias relay1_on="echo 1 > /sys/class/gpio/gpio456/value"
alias relay1_off="echo 0 > /sys/class/gpio/gpio456/value"
Если не работают команды из .bash_aliasses:
Перечитываем файл .bashrc. Делается это командой:
source ~/.bashrc
или так:
. ~/.bashrc
Если алиасы заработали, то в файл /etc/bash.bashrc добавьте:
# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
. ~/.bashrc
fi
В файле всем этим длинным командам я присвоил более короткие и читаемые значения.
Теперь, чтобы мотор начал вращаться в одном направлении, можно подать команду:
blinds_open
В другом направлении:
blinds_close
Остановить:
blinds_stop
Как мы уже показывали в других видео, после того, как вы научились управлять чем-то из консоли контроллера, остаётся очень простой шаг как записать эту команду в вашу систему Умного Дома. Большинство распространённых систем Умного Дома таких, например, как Home Assistant, Domoticz, Majordomo, Wirenboard, Node red имеют возможность, как отправлять команды в консоль, так и читать данные из консоли. Поэтому это очень простой и тривиальный шаг, хотя и специфичный для каждой конкретной системы Умного Дома, который подробно описывается в документации на каждую систему.
Фазное управление мотором – это самый базовый способ управления. Вы можете получить более полное представление о способах управления шторами и жалюзи из нашей статьи «Подключение электрокарнизов Akko (Dooya) и Somfy к устройствам умного дома.»