
Оглавление:
- Запасы
- Шаг 1. Информация о 4-канальной релейной плате DockerPi Series
- Шаг 2: особенности
- Шаг 3. Карта адресов устройства
- Шаг 4: Подключите реле к держателю лампы с питанием от основного источника питания
- Шаг 5: Настройка I2C (Raspberry Pi)
- Шаг 6: Прямое управление без программирования (Raspberry Pi)
- Шаг 7: Программа на языке C (Raspberry Pi)
- Шаг 8: Программа на Python (Raspberry Pi)
- Шаг 9: Программа на Java (Raspberry Pi)
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

Недавно я работал над пониманием микроконтроллеров и устройств на базе IOT для целей исследования безопасности. Итак, я подумал о создании небольшой системы домашней автоматизации для практики. Я еще не завершил это, но для запуска я расскажу, как я использовал Raspberry Pi 2 и некоторые другие электрические компоненты для управления освещением в моей комнате. Кроме того, я не буду здесь говорить о начальной настройке для Raspberry, вы можете найти для этого различные руководства.
Но в этом проекте я представлю вам этот продукт серии docker pi.
Запасы
Список компонентов:
- 1 х Raspberry Pi 3B + / 3B / Zero / Zero W / 4B /
- 1 x 16 ГБ TF карта класса 10
- 1 x 4-канальная релейная плата серии DockerPi (HAT)
- 1 блок питания [email protected], который от 52Pi
- 4 х световая полоса
- 1 х разъем постоянного тока
- 1 блок питания 12 В для световых полос.
- несколько проводов.
Шаг 1. Информация о 4-канальной релейной плате DockerPi Series



DockerPi 4 Channel Relay является членом серии DockerPi, более широко используемой в приложениях IOT.
DockerPi 4 Channel Relay может ретранслировать AC / DC вместо традиционных переключателей, чтобы реализовать больше идей. DockerPi 4 Channel Relay может быть объединен до четырех и может быть объединен с другой платой расширения DockerPi. Если вам нужно работать в течение длительного времени, мы также рекомендуем вам использовать нашу плату расширения DockerPi Power, чтобы обеспечить большую мощность.
ПРИМЕЧАНИЕ ВНИМАНИЕ! Прежде чем мы продолжим, я хотел бы предупредить вас об ОПАСНОСТИ экспериментов с «сетевым электричеством». Если что-то пойдет не так, худшим последствием может быть смерть или, по крайней мере, сожжение вашего собственного дома. Поэтому, пожалуйста, НЕ ПЫТАЙТЕСЬ делать что-либо, упомянутое в этой статье, если вы не понимаете, что делаете, или лучше воспользуйтесь помощью опытного электрика. Давайте начнем.
Шаг 2: особенности



- Серия DockerPi
- Программируемый
- Прямое управление (без программирования)
- Расширьте контакты GPIO
- 4-х канальное реле
- 4 Поддержка альтернативного адреса I2C
- Поддержка светодиодов состояния реле
- Поддержка 3A 250 В переменного тока
- 3A 30 В постоянного тока
- Может стек с другой платой стека Независимо от оборудования материнской платы (требуется поддержка I2C)
Шаг 3. Карта адресов устройства


Эта плата имеет отдельный адрес регистра, и вы можете просто управлять каждым реле с помощью одной команды.
Другие требования:
Базовое понимание Python или C, или оболочки, или Java, или любого другого языка (я буду использовать C, python, оболочку и java)
- Базовое понимание систем Linux
- Присутствие рассудка
Теперь, прежде чем двигаться дальше, вам нужно понять, какие электрические компоненты мы будем использовать:
1. Реле:
Реле - это электрическое устройство, которое обычно используется для управления высоким напряжением с использованием очень низкого напряжения в качестве входа. Он состоит из катушки, обернутой вокруг полюса, и двух небольших металлических клапанов (узлов), которые используются для замыкания цепи. Один узел неподвижен, а другой подвижен. Всякий раз, когда через катушку проходит электричество, оно создает магнитное поле и притягивает движущийся узел к статическому узлу, и цепь замыкается. Таким образом, просто приложив небольшое напряжение для питания катушки, мы можем фактически замкнуть цепь для распространения высокого напряжения. Кроме того, поскольку статический узел физически не подключен к катушке, очень меньше шансов, что микроконтроллер, питающий катушку, будет поврежден, если что-то пойдет не так.
Шаг 4: Подключите реле к держателю лампы с питанием от основного источника питания


Теперь перейдем к самому сложному: мы подключим реле к держателю лампы, питающемуся от основного источника питания. Но сначала я хочу дать вам краткое представление о том, как свет включается и выключается через прямой источник питания.
Теперь, когда лампочка подключена к основному источнику питания, мы обычно делаем это, подключая к лампочке два провода. один из проводов является «нейтральным» проводом, а другой - «отрицательным» проводом, по которому фактически проходит ток, также ко всей цепи добавлен переключатель для управления механизмом включения и выключения. Итак, когда выключатель подключен (или включен), ток течет через лампочку и нейтральный провод, замыкая цепь. Это включает лампочку. Когда переключатель выключается, цепь разрывается, и лампочка гаснет. Вот небольшая принципиальная схема, чтобы объяснить это:
Теперь для нашего эксперимента нам нужно пропустить «отрицательный провод» через реле, чтобы разорвать цепь и управлять потоком мощности с помощью переключения реле. Итак, когда реле включится, оно должно замкнуть цепь, и лампочка должна включиться, и наоборот. См. Диаграмму ниже для полной схемы.
Шаг 5: Настройка I2C (Raspberry Pi)




Запустите sudo raspi-config и следуйте инструкциям по установке поддержки i2c для ядра ARM и ядра Linux.
Перейти к параметрам интерфейса
Шаг 6: Прямое управление без программирования (Raspberry Pi)
Включите реле канала №1
i2cset -y 1 0x10 0x01 0xFF
Выключить реле канала №1
i2cset -y 1 0x10 0x01 0x00
Включите реле канала №2
i2cset -y 1 0x10 0x02 0xFF
Выключить реле канала 2
i2cset -y 1 0x10 0x02 0x00
Включите реле канала №3
i2cset -y 1 0x10 0x03 0xFF
Выключить реле канала №3
i2cset -y 1 0x10 0x03 0x00
Включите реле канала №4.
i2cset -y 1 0x10 0x04 0xFF
Выключить реле канала №4
i2cset -y 1 0x10 0x04 0x00
Шаг 7: Программа на языке C (Raspberry Pi)
Создайте исходный код и назовите его "relay.c"
#включают
#включают
#включают
#define DEVCIE_ADDR 0x10
#define RELAY1 0x01
#define RELAY2 0x02
#define RELAY3 0x03
#define RELAY4 0x04
#define ON 0xFF
#define OFF 0x00
int main (пусто)
{
printf ("Включить реле в C / n");
int fd;
int я = 0;
fd = wiringPiI2CSetup (DEVICE_ADDR);
для(;;){
для (я = 1; я <= 4; я ++)
{
printf ("включить реле № $ d", i);
wiringPiI2CWriteReg8 (fd, i, ON);
сон (200);
printf ("выключить реле № $ d", i);
wiringPiI2CWriteReg8 (fd, i, OFF);
сон (200);
}
}
возврат 0;
}
Скомпилируйте это
gcc relay.c -lwiringPi -o реле
Exec It
./реле
Шаг 8: Программа на Python (Raspberry Pi)
Следующий код рекомендуется выполнить с использованием Python 3 и установить библиотеку smbus:
Создайте файл с именем "relay.py" и вставьте следующий код:
время импорта как t
импортировать smbus
import sys
DEVICE_BUS = 1
DEVICE_ADDR = 0x10
автобус = smbus. SMBus (DEVICE_BUS)
в то время как True:
пытаться:
для i в диапазоне (1, 5):
bus.write_byte_data (АДРЕС_УСТРОЙСТВА, i, 0xFF)
t.sleep (1)
bus.write_byte_data (АДРЕС_УСТРОЙСТВА, i, 0x00)
t.sleep (1)
кроме KeyboardInterrupt как e:
print («Выйти из цикла»)
sys.exit ()
* Сохраните его, а затем запустите как python3:
python3 relay.py
Шаг 9: Программа на Java (Raspberry Pi)
Создайте новый файл с именем: I2CRelay.java и вставьте следующий код:
import java.io. IOException;
import java.util. Arrays;
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;
import com.pi4j.platform. PlatformAlreadyAssignedException;
import com.pi4j.util. Console;
public class I2CRelay {
// адрес регистра реле.
общедоступный статический финал int DOCKER_PI_RELAY_ADDR = 0x10;
// канал реле.
публичный статический последний байт DOCKER_PI_RELAY_1 = (байт) 0x01;
публичный статический последний байт DOCKER_PI_RELAY_2 = (байт) 0x02;
публичный статический последний байт DOCKER_PI_RELAY_3 = (байт) 0x03;
публичный статический последний байт DOCKER_PI_RELAY_4 = (байт) 0x04;
// Состояние реле
публичный статический последний байт DOCKER_PI_RELAY_ON = (байт) 0xFF;
публичный статический последний байт DOCKER_PI_RELAY_OFF = (байт) 0x00;
public static void main (String args) выбрасывает InterruptedException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {
последняя консоль консоли = новая консоль ();
I2CBus i2c = I2CFactory.getInstance (I2CBus. BUS_1);
I2CDevice device = i2c.getDevice (DOCKER_PI_RELAY_ADDR);
console.println («Включите реле!»);
device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);
Thread.sleep (500);
console.println («Выключить реле!»);
device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);
}
}
Рекомендуемые:
IRduino: Пульт дистанционного управления Arduino - имитация утерянного пульта дистанционного управления: 6 шагов

IRduino: Пульт дистанционного управления Arduino - имитируйте потерянный пульт: если вы когда-либо теряли пульт дистанционного управления для своего телевизора или DVD-плеера, вы знаете, как неприятно ходить, находить и использовать кнопки на самом устройстве. Иногда эти кнопки даже не обладают той же функциональностью, что и пульт. Rece
Arduino - система управления нагревом: 7 шагов

Arduino - Система управления нагревом: контроль температуры с помощью нагревательного элемента, Arduino Pro Mini будет управлять нагревателем для достижения заданной температуры, а также отображать график температуры с помощью компьютера (с использованием Visual Studio). Этот проект можно назвать контроллером температуры
Интернет-система IOT для управления телескопом: 10 шагов

Интернет-система IOT для управления телескопом: мы разработали и создали Интернет-систему IOT для управления любым типом телескопа через Интернет и получения изображения с телескопа с минимальными затратами. инженерный колледж аст
Сеть сенсорных станций для управления освещением и безопасностью: 5 шагов (с изображениями)

Сеть сенсорных станций для управления освещением и безопасностью: с этой сетью сенсорных станций, настроенной в режиме ведущий / ведомый, вы сможете управлять освещением и безопасностью в своем доме. Эти сенсорные станции (Node01, Node02 в этом проекте) подключены к главной станции (Node00), подключенной к yo
Отпуск кабеля дистанционного управления Olympus Evolt E510 (версия 2 с автофокусом на пульте дистанционного управления): 6 шагов (с изображениями)

Отпуск кабеля дистанционного управления Olympus Evolt E510 (версия 2 с автофокусом на пульте дистанционного управления): Вчера я построил простой пульт с одной кнопкой для своего Olympus E510. У большинства камер есть кнопка спуска затвора (та, которую вы нажимаете, чтобы сделать снимок), которая имеет два режима. Если слегка нажать кнопку, камера автоматически сфокусируется и измерит свет