Управление электричеством через реле на raspberry pi 2

команды, freebsd, убунту, настройка, установка, сервер, server, ubuntu, сервер

реле для raspberry pi 2

Сегодня научимся управлять включением и выключением реле с помощью raspberry pi 2, для примера будем включать и выключать розетку, управлять светильником или других электроприбором. Я использовал реле SRD-05VDC-SL-C.
1) Подключаем его к raspberry pi и к линии 220В. Я подключал только одно реле, но на плате у меня их два.

 № пина номер GPIO in/out пины на реле
14 ground gnd на реле
11 17 out in1 на реле
22 25 out in2 на реле
2 5v power vcc на реле

Перенесу сюда изображение разъемов GPIO raspberry pi 2

команды, freebsd, настройка, установка, сервер, server, ubuntu, network, interfaces, сеть, raspberry

GPIO raspberry pi 2

На изображении ниже схема подключения реле к raspberry pi 2 и линии 220 В.

команды, freebsd, убунту, настройка, установка, сервер, server, ubuntu, сервер

Схема подключения реле к raspberry pi 2 и линии 220 В
(изображение кликабельно)

Ещё раз поясню.
По схема реле соединяется с одной стороны с GPIO портами raspberry pi 2, а с другой с розеткой 220 В. На плате с реле есть 4-е пина — GND, IN1, IN2, VCC.
a) GND на реле надо соединить с GND на raspberry pi.
b) IN1 и IN2 — это как раз два реле. IN1 я подключил к GPIO17(пин 11), а IN2 к GPIO25(пин 22). Они у меня просто свободны, у вас могут быть свободны другие GPIO разъемы.
с) к пину VCC на реле подключаем 5v на raspberry pi 2. Я решил использовать пин №2 на raspberry.
Так же на плате есть контакты по три штуки возле каждого реле. От линии 220В я подвёл провод к контакту NO1 на реле 1. Контакт COM1 на реле 1 соединяю с одним из разъемов розетки. На второй контакт розетки я сразу подаю 220 B, то есть он идёт напрямую, минуя реле и raspberry. Если подключить не к NO1, а к NC1 то питание будет подаваться постоянно, розетка будет давать ток и без raspberry, поэтому NC1 я просто не использую.
С физическим подключением думаю понятно. Будьте аккуратны. Вы всё выполняете на свой страх и риск.

Перейдём к программной части.
2) пишем 2-а простейших скрипта:
sudo nano /script/gpio/relay01-01-down.sh
содержимое должно быть таким:
#!/bin/bash

echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value

и второй скриптик:
sudo nano /script/gpio/relay01-01-up.sh
содержимое должно быть таким:
#!/bin/bash

echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction
echo 0 > /sys/class/gpio/gpio17/value

3) делаем их исполняемыми:
sudo chmod +x /script/gpio/relay01-01-down.sh
sudo chmod +x /script/gpio/relay01-01-up.sh

В целом можно уже поиграться, подсоединив к розетке лампу поочерёдно запуская каждый скрипт, будет то включать лампу, то выключать
sudo /script/gpio/relay01-01-up.sh
sudo /script/gpio/relay01-01-down.sh

4) Но интересней сделать кнопки управления реле в веб-интерфейсе. Веб-сервер уже поднят по этой статье, поэтому в его корне(по умолчанию это директория /var/www/ ) пишем в файл index.php код с кнопками. Код можно скопировать отсюда.
Там же в корне веб-сервера создаём файл style.css с содержимым, которое можно взять здесь.

Заходим на веб-сервер http://ip-адрес-raspberru-pi/ и должны увидеть две кнопки(они ещё не работают).

команды, freebsd, убунту, настройка, установка, сервер, server, ubuntu, сервер

5) добавляем права для www-data следующим образом:
sudo visudo
там дописываем:
www-data ALL=(ALL) NOPASSWD: ALL

6) пробуем понажимать кнопки в веб-интерфейсе. Они уже должны работать и щёлкать релюшкой.
Результат сборки:

команды, freebsd, убунту, настройка, установка, сервер, server, ubuntu, сервер

Управление электричеством через реле на raspberry pi 2: 4 комментария

  1. vet

    Доброго времени! воспользовался вашей инструкцией, всё получилось спасибо за статью!
    И хочу поинтересоваться: у меня релюшка включается и выключается, но при этом терминал указывает на некую ошибку:
    root@raspberrypi:/home/pi# sudo /script/gpio/relay01-01-up.sh
    /script/gpio/relay01-01-up.sh: line 3: echo: ошибка записи: Устройство или ресурс занято

    Вам неизвестно, как избавиться от этой ошибки?

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