Оглавление:

Система управления освещением: 9 шагов
Система управления освещением: 9 шагов

Видео: Система управления освещением: 9 шагов

Видео: Система управления освещением: 9 шагов
Видео: Импульсное реле. Схема подключения. Управление освещением из нескольких мест. 2024, Июль
Anonim
Система управления освещением
Система управления освещением

Недавно я работал над пониманием микроконтроллеров и устройств на базе 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

Информация о 4-канальной релейной плате DockerPi Series
Информация о 4-канальной релейной плате DockerPi Series
Информация о 4-канальной релейной плате DockerPi Series
Информация о 4-канальной релейной плате DockerPi Series
Информация о 4-канальной релейной плате DockerPi Series
Информация о 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)

Настройка I2C (Raspberry Pi)
Настройка I2C (Raspberry Pi)
Настройка I2C (Raspberry Pi)
Настройка I2C (Raspberry Pi)
Настройка I2C (Raspberry Pi)
Настройка I2C (Raspberry Pi)
Настройка I2C (Raspberry Pi)
Настройка 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);

}

}

Рекомендуемые: