Spisu treści:

System sterowania światłami: 9 kroków
System sterowania światłami: 9 kroków

Wideo: System sterowania światłami: 9 kroków

Wideo: System sterowania światłami: 9 kroków
Wideo: Sterowniki do ogrzewania podłogowego montaż krok po kroku. Inteligentny dom. Smart home. 2024, Lipiec
Anonim
System sterowania oświetleniem
System sterowania oświetleniem

Ostatnio pracowałem nad zrozumieniem mikrokontrolerów i urządzeń opartych na IOT dla celów badań bezpieczeństwa. Pomyślałem więc o zbudowaniu małego systemu automatyki domowej do ćwiczeń. Jeszcze tego nie ukończyłem, ale na początek podzielę się tym, jak używałem Raspberry Pi 2 i kilku innych komponentów elektrycznych do sterowania oświetleniem mojego pokoju w tym poście. Ponadto nie będę tutaj mówił o wstępnej konfiguracji dla Raspberry, możesz znaleźć różne samouczki na ten temat.

Ale w tym projekcie przedstawię Ci ten produkt z serii docker pi.

Kieszonkowe dzieci

Lista komponentów:

  • 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
  • 1x16 GB karta TF klasy 10
  • 1 x 4-kanałowa płyta przekaźnikowa serii DockerPi (HAT)
  • Zasilacz 1x5 [email protected], który pochodzi z 52Pi
  • 4 x pasek świetlny
  • 1 x złącze DC
  • Zasilanie 1 x 12V do listew świetlnych.
  • kilka przewodów.

Krok 1: Wiedza o 4-kanałowej płytce przekaźnikowej serii DockerPi

Wiedza o 4-kanałowej płytce przekaźnikowej serii DockerPi
Wiedza o 4-kanałowej płytce przekaźnikowej serii DockerPi
Wiedza o 4-kanałowej płytce przekaźnikowej serii DockerPi
Wiedza o 4-kanałowej płytce przekaźnikowej serii DockerPi
Wiedza o 4-kanałowej płytce przekaźnikowej serii DockerPi
Wiedza o 4-kanałowej płytce przekaźnikowej serii DockerPi

DockerPi 4 Channel Relay jest członkiem serii DockerPi, częściej używanej w aplikacjach IOT.

Przekaźnik 4-kanałowy DockerPi może przekazywać AC/DC zamiast tradycyjnych przełączników, aby osiągnąć więcej pomysłów. Przekaźnik 4-kanałowy DockerPi może układać w stosy do 4 i można go układać w stos z inną płytą rozszerzeń DockerPi. Jeśli potrzebujesz działać przez długi czas, zalecamy również użycie naszej karty rozszerzeń DockerPi Power, aby zapewnić większą moc.

UWAGA PRZESTROGA Zanim przejdziemy dalej, chciałbym OSTRZEŻENIE przed NIEBEZPIECZEŃSTWEM eksperymentowania z „Elektrycznością Sieciową”. Jeśli coś pójdzie nie tak, najgorszą konsekwencją może być śmierć lub przynajmniej spalenie własnego domu. Więc proszę NIE PRÓBUJ robić niczego wymienionego w tym artykule, jeśli nie rozumiesz, co robisz, lub lepiej skorzystaj z pomocy doświadczonego elektryka. Zacznijmy.

Krok 2: Funkcje

Cechy
Cechy
Cechy
Cechy
Cechy
Cechy
  • Seria DockerPi
  • Programowalny
  • Sterowanie bezpośrednio (bez programowania)
  • Rozszerz piny GPIO
  • 4-kanałowy przekaźnik
  • Obsługa 4 Alt I2C Addr
  • Obsługa diod LED stanu przekaźnika
  • Obsługa 3A 250 V AC
  • 3A 30V DC
  • Można łączyć w stos z inną płytą stosu Niezależne od sprzętu płyty głównej (wymaga obsługi I2C)

Krok 3: Mapa adresów urządzeń

Mapa adresów urządzeń
Mapa adresów urządzeń
Mapa adresów urządzeń
Mapa adresów urządzeń

Ta płytka ma oddzielny adres rejestru i możesz sterować każdym przekaźnikiem za pomocą jednego polecenia.

Inne wymagania:

Podstawowe zrozumienie Pythona, C, powłoki, Javy lub dowolnego innego języka (będę używał C, python, powłoki i javy)

  • Podstawowe zrozumienie systemów Linux
  • Obecność umysłu

Teraz, zanim przejdziesz dalej, musisz zrozumieć komponenty elektryczne, których będziemy używać:

1. Przekaźnik:

Przekaźnik jest urządzeniem elektrycznym, które jest zwykle używane do sterowania wysokimi napięciami przy użyciu bardzo niskiego napięcia jako wejścia. Składa się z cewki owiniętej wokół bieguna i dwóch małych metalowych klapek (węzłów), które służą do zamykania obwodu. Jeden z węzłów jest nieruchomy, a drugi ruchomy. Za każdym razem, gdy przez cewkę przechodzi prąd elektryczny, wytwarza pole magnetyczne i przyciąga ruchomy węzeł w kierunku węzła statycznego, a obwód zostaje ukończony. Tak więc, po prostu przykładając małe napięcie do zasilania cewki, możemy faktycznie zakończyć obwód, aby przemieściło się wysokie napięcie. Ponadto, ponieważ węzeł statyczny nie jest fizycznie połączony z cewką, jest bardzo mniejsze prawdopodobieństwo, że mikrokontroler zasilający cewkę ulegnie uszkodzeniu, jeśli coś pójdzie nie tak.

Krok 4: Podłącz przekaźnik do uchwytu żarówki zasilanego z głównego źródła elektrycznego

Podłącz przekaźnik do oprawki żarówki zasilanej przez główne zasilanie elektryczne
Podłącz przekaźnik do oprawki żarówki zasilanej przez główne zasilanie elektryczne
Podłącz przekaźnik do oprawki żarówki zasilanej przez główne zasilanie elektryczne
Podłącz przekaźnik do oprawki żarówki zasilanej przez główne zasilanie elektryczne

Teraz do trudnej części, podłączymy przekaźnik do oprawki żarówki zasilanej przez główne zasilanie elektryczne. Ale najpierw chcę przedstawić krótkie pojęcie o tym, jak światła są włączane i wyłączane za pomocą bezpośredniego zasilania.

Teraz, gdy żarówka jest podłączona do głównego zasilania, zwykle robimy to, podłączając do żarówki dwa przewody. jeden z przewodów to przewód „neutralny”, a drugi to przewód „ujemny”, który faktycznie przewodzi prąd, a do całego obwodu dodany jest przełącznik do sterowania mechanizmem włączania i wyłączania. Tak więc, gdy przełącznik jest podłączony (lub WŁĄCZONY), prąd przepływa przez żarówkę i przewód neutralny, uzupełniając obwód. To włącza żarówkę. Po wyłączeniu przełącznika przerywa obwód i żarówka gaśnie. Oto mały schemat obwodu, który to wyjaśni:

Teraz, w naszym eksperymencie, musimy sprawić, by „przewód ujemny” przeszedł przez nasz przekaźnik, aby przerwać obwód i kontrolować przepływ mocy za pomocą przełączania przekaźnika. Tak więc, gdy przekaźnik się włączy, powinien zakończyć obwód, a żarówka powinna się włączyć i na odwrót. Zapoznaj się z poniższym schematem dla pełnego obwodu.

Krok 5: Konfiguracja I2C (Raspberry Pi)

Konfiguracja I2C (Raspberry Pi)
Konfiguracja I2C (Raspberry Pi)
Konfiguracja I2C (Raspberry Pi)
Konfiguracja I2C (Raspberry Pi)
Konfiguracja I2C (Raspberry Pi)
Konfiguracja I2C (Raspberry Pi)
Konfiguracja I2C (Raspberry Pi)
Konfiguracja I2C (Raspberry Pi)

Uruchom sudo raspi-config i postępuj zgodnie z instrukcjami, aby zainstalować obsługę i2c dla jądra ARM i jądra linux

Przejdź do opcji interfejsu

Krok 6: Bezpośrednie sterowanie bez programowania (Raspberry Pi)

Włącz przekaźnik kanału nr 1

i2cset -y 1 0x10 0x01 0xFF

Wyłącz przekaźnik kanału nr 1

i2cset -y 1 0x10 0x01 0x00

Włącz przekaźnik kanału nr 2

i2cset -y 1 0x10 0x02 0xFF

Wyłącz przekaźnik kanału nr 2

i2cset -y 1 0x10 0x02 0x00

Włącz przekaźnik kanału nr 3

i2cset -y 1 0x10 0x03 0xFF

Wyłącz przekaźnik kanału nr 3

i2cset -y 1 0x10 0x03 0x00

Włącz przekaźnik kanału nr 4

i2cset -y 1 0x10 0x04 0xFF

Wyłącz przekaźnik kanału nr 4

i2cset -y 1 0x10 0x04 0x00

Krok 7: Program w języku C (Raspberry Pi)

Utwórz kod źródłowy i nazwij go „relay.c”

#włączać

#włączać

#włączać

#define DEVCIE_ADDR 0x10

#define PRZEKAŹNIK1 0x01

#define PRZEKAŹNIK2 0x02

#define PRZEKAŹNIK3 0x03

#define PRZEKAŹNIK4 0x04

#define ON 0xFF

#definiuj WYŁ. 0x00

int główny (unieważniony)

{

printf("Włącz przekaźniki w C\n");

int fd;

int i = 0;

fd = okablowaniePiI2CSetup(ADDR_URZĄDZENIA);

dla(;;){

dla (i=1; i<=4; i++)

{

printf("włącz przekaźnik nr $d", i);

okablowaniePiI2CWriteReg8(fd, i, ON);

sen (200);

printf("wyłącz przekaźnik nr $d", i);

okablowaniePiI2CWriteReg8(fd, i, OFF);

sen (200);

}

}

zwróć 0;

}

Skompiluj to

gcc relay.c -lwiringPi -o relay

Wykonaj to

./przekaźnik

Krok 8: Programowanie w Pythonie (Raspberry Pi)

Poniższy kod zaleca się wykonać przy użyciu Pythona 3 i zainstalować bibliotekę smbus:

Utwórz plik o nazwie „relay.py” i wklej następujący kod:

czas importu jako t

importuj smbus

system importu

URZĄDZENIE_BUS = 1

ADRES_URZĄDZENIA = 0x10

autobus = smbus. SMBus(DEVICE_BUS)

podczas gdy prawda:

próbować:

dla i w zakresie (1, 5):

bus.write_byte_data(DEVICE_ADDR, i, 0xFF)

t.sen(1)

bus.write_byte_data(DEVICE_ADDR, ja, 0x00)

t.sen(1)

z wyjątkiem KeyboardInterrupt jako e:

print("Zamknij pętlę")

sys.exit()

* Zapisz go, a następnie uruchom jako python3:

python3 przekaźnik.py

Krok 9: Program w Javie (Raspberry Pi)

Utwórz nowy plik o nazwie: I2CRelay.java i wklej następujący kod:

import java.io. IOException;

import java.util. Arrays;

importuj com.pi4j.io.i2c. I2CBus;

importuj com.pi4j.io.i2c. I2CDurządzenie;

importuj com.pi4j.io.i2c. I2CFabryka;

importuj com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;

importuj com.pi4j.platform. PlatformAlreadyAssignedException;

importuj com.pi4j.util. Console;

klasa publiczna I2CRlay {

// adres rejestru przekaźnika.

publiczny statyczny końcowy int DOCKER_PI_RELAY_ADDR = 0x10;

// kanał przekaźnika.

publiczny statyczny bajt końcowy DOCKER_PI_RELAY_1 = (bajt)0x01;

publiczny statyczny bajt końcowy DOCKER_PI_RELAY_2 = (bajt)0x02;

publiczny statyczny bajt końcowy DOCKER_PI_RELAY_3 = (bajt)0x03;

publiczny statyczny bajt końcowy DOCKER_PI_RELAY_4 = (bajt)0x04;

// Stan przekaźnika

publiczny statyczny bajt końcowy DOCKER_PI_RELAY_ON = (bajt)0xFF;

publiczny statyczny bajt końcowy DOCKER_PI_RELAY_OFF = (bajt)0x00;

public static void main(String args) rzuca InterruptedException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

ostateczna konsola konsoli = nowa konsola();

I2CBus i2c = I2CFactory.getInstance(I2CBus. BUS_1);

Urządzenie I2CDevice = i2c.getDevice(DOCKER_PI_RELAY_ADDR);

console.println("Włącz przekaźnik!");

urządzenie.write(DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Wątek.sen(500);

console.println("Wyłącz przekaźnik!");

urządzenie.write(DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Zalecana: