Sadržaj:

Sistem za upravljanje svjetlima: 9 koraka
Sistem za upravljanje svjetlima: 9 koraka

Video: Sistem za upravljanje svjetlima: 9 koraka

Video: Sistem za upravljanje svjetlima: 9 koraka
Video: 10 najčešćih problema zbog kojih se pali Check engine! - Ispravno je sigurno by CVH 2024, Novembar
Anonim
Sistem za upravljanje svetlima
Sistem za upravljanje svetlima

Nedavno sam radio na razumijevanju mikrokontrolera i IOT uređaja zasnovanih na sigurnosnim istraživanjima. Pa sam razmišljao o izgradnji malog sistema kućne automatizacije za praksu. Ovo tek trebam dovršiti, ali za početak ću u ovom postu podijeliti kako sam koristio Raspberry Pi 2 i neke druge električne komponente za kontrolu osvjetljenja svoje sobe. Također, ovdje neću govoriti o početnom postavljanju za Raspberry, možda ćete pronaći razne vodiče za to.

Ali u ovom projektu predstavit ću vam ovaj proizvod serije docker pi.

Supplies

Lista komponenti:

  • 1 x Raspberry Pi 3B+/3B/nula/nula W/4B/
  • 1 x 16GB TF kartica klase 10
  • 1 x DockerPi serija 4 -kanalna relejna ploča (HAT)
  • 1 x [email protected] napajanje koje je od 52Pi
  • 4 x Lagana traka
  • 1 x DC konektor
  • 1 x 12V napajanje za svjetlosne trake.
  • nekoliko žica.

Korak 1: Poznavanje 4 -kanalne relejne ploče DockerPi serije 4

Znati o 4 -kanalnoj relejnoj ploči DockerPi serije
Znati o 4 -kanalnoj relejnoj ploči DockerPi serije
Znati o 4 -kanalnoj relejnoj ploči DockerPi serije
Znati o 4 -kanalnoj relejnoj ploči DockerPi serije
Znati o 4 -kanalnoj relejnoj ploči DockerPi serije
Znati o 4 -kanalnoj relejnoj ploči DockerPi serije

DockerPi 4 -kanalni relej je član DockerPi serije, koja se češće koristi u IOT aplikacijama.

DockerPi 4 -kanalni relej može prenijeti AC/DC, umjesto tradicionalnih prekidača, kako bi se postiglo više ideja. DockerPi 4 -kanalni relej može slagati do 4 i može se slagati s drugom DockerPi pločom za proširenje. Ako trebate raditi duže vrijeme, također preporučujemo da upotrijebite našu ploču za proširenje DockerPi Power kako biste osigurali više energije.

NAPOMENA OPREZPrije nego što nastavimo dalje, želio bih vas upozoriti na OPASNOST eksperimentiranja s "mrežnom električnom energijom". Ako nešto pođe po zlu, najgora posljedica može biti smrt ili barem spaljivanje vaše kuće. Stoga, NE POKUŠAJTE učiniti bilo što spomenuto u ovom članku ako ne razumijete što radite ili bolje potražite pomoć nekog iskusnog električara. Hajde da počnemo.

Korak 2: Karakteristike

Karakteristike
Karakteristike
Karakteristike
Karakteristike
Karakteristike
Karakteristike
  • DockerPi serija
  • Programmable
  • Upravljajte direktno (bez programiranja)
  • Proširite GPIO pinove
  • 4 -kanalni relej
  • 4 Podrška za Alt I2C Addr
  • Podrška LED dioda za status releja
  • 3A 250V AC podrška
  • 3A 30V DC
  • Može slagati s drugom stek pločom Neovisno o hardveru matične ploče (potrebna je podrška za I2C)

Korak 3: Karta adresa uređaja

Mapa adresa uređaja
Mapa adresa uređaja
Mapa adresa uređaja
Mapa adresa uređaja

Ova ploča ima zasebnu adresu registra i možete jednostavno kontrolirati svaki relej jednom naredbom.

Ostali zahtevi:

Osnovno razumijevanje Pythona ili C ili ljuske ili Jave ili bilo kojeg drugog jezika (koristit ću C, python, ljuske i jave)

  • Osnovno razumevanje Linux sistema
  • Prisustvo uma

Prije nego što nastavite, morate razumjeti električne komponente koje ćemo koristiti:

1. Relej:

Relej je električni uređaj koji se općenito koristi za upravljanje visokim naponima koristeći vrlo nizak napon kao ulaz. Sastoji se od zavojnice omotane oko stupa i dvije male metalne zaklopke (čvorovi) koje se koriste za zatvaranje strujnog kruga. Jedan čvor je fiksiran, a drugi je pomičan. Kad god električna energija prođe kroz zavojnicu, ona stvara magnetsko polje i privlači pokretni čvor prema statičkom čvoru i kolo se dovršava. Dakle, samo primjenom malog napona za napajanje zavojnice možemo zapravo dovršiti krug za putovanje visokog napona. Također, budući da statički čvor nije fizički povezan sa zavojnicom, postoji vrlo mala šansa da se mikrokontroler koji napaja zavojnicu ošteti ako nešto pođe po zlu.

Korak 4: Spojite relej na držač žarulje na glavno napajanje

Spojite relej na držač žarulje na glavno napajanje
Spojite relej na držač žarulje na glavno napajanje
Spojite relej na držač žarulje na glavno napajanje
Spojite relej na držač žarulje na glavno napajanje

Sada na zeznuti dio, spojit ćemo relej na držač žarulje koji se napaja iz glavnog električnog napajanja. Ali, prvo vam želim dati kratku ideju o tome kako se svjetla uključuju i isključuju putem direktnog napajanja.

Sada, kada je žarulja spojena na glavno napajanje, to obično radimo spajanjem dvije žice na žarulju. jedna od žica je "neutralna" žica, a druga je "negativna" žica koja zapravo nosi struju, također postoji prekidač dodan cijelom krugu za upravljanje mehanizmom UKLJUČENO I ISKLJUČENO. Dakle, kada je prekidač spojen (ili UKLJUČEN) struja teče kroz žarulju i neutralnu žicu, dovršavajući krug. Ovo uključuje žarulju. Kada se prekidač uključi, prekida se krug i žarulja se isključuje. Evo malog dijagrama koji to objašnjava:

Sada, za naš eksperiment, morat ćemo provesti "negativnu žicu" da prođe kroz naš relej da prekine krug i kontrolira protok energije pomoću relejnog prekidača. Dakle, kada se relej uključi, trebao bi dovršiti krug, a žarulja bi se trebala uključiti i obrnuto. Pogledajte donji dijagram za Puni krug.

Korak 5: Konfiguriranje I2C (Raspberry Pi)

Konfiguriranje I2C (Raspberry Pi)
Konfiguriranje I2C (Raspberry Pi)
Konfiguriranje I2C (Raspberry Pi)
Konfiguriranje I2C (Raspberry Pi)
Konfiguriranje I2C (Raspberry Pi)
Konfiguriranje I2C (Raspberry Pi)
Konfiguriranje I2C (Raspberry Pi)
Konfiguriranje I2C (Raspberry Pi)

Pokrenite sudo raspi-config i slijedite upute za instaliranje i2c podrške za ARM jezgru i linux jezgru

Idite na Opcije sučelja

Korak 6: Direktna kontrola bez programiranja (Raspberry Pi)

Uključite relej kanala 1

i2cset -y 1 0x10 0x01 0xFF

Isključite relej kanala 1

i2cset -y 1 0x10 0x01 0x00

Uključite relej kanala 2

i2cset -y 1 0x10 0x02 0xFF

Isključite relej kanala 2

i2cset -y 1 0x10 0x02 0x00

Uključite relej kanala 3

i2cset -y 1 0x10 0x03 0xFF

Isključite relej kanala 3

i2cset -y 1 0x10 0x03 0x00

Uključite relej kanala 4

i2cset -y 1 0x10 0x04 0xFF

Isključite relej kanala 4

i2cset -y 1 0x10 0x04 0x00

Korak 7: Program na jeziku C (Raspberry Pi)

Kreirajte izvorni kod i dajte mu ime "relay.c"

#include

#include

#include

#define DEVCIE_ADDR 0x10

#define RELAY1 0x01

#define RELAY2 0x02

#define RELAY3 0x03

#define RELAY4 0x04

#define ON 0xFF

#define OFF 0x00

int main (void)

{

printf ("Uključi releje u C / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

za (;;) {

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

{

printf ("uključi relej br. $ d", i);

wiringPiI2CWriteReg8 (fd, i, ON);

spavanje (200);

printf ("isključite relej br. $ d", i);

wiringPiI2CWriteReg8 (fd, i, OFF);

spavanje (200);

}

}

return 0;

}

Kompajlirajte ga

gcc relej.c -ožičenjePi -o relej

Exec It

./ relej

Korak 8: Program u Pythonu (Raspberry Pi)

Sljedeći kôd se preporučuje za izvršavanje pomoću Pythona 3 i instaliranje smbus biblioteke:

Kreirajte datoteku s imenom: "relay.py" i zalijepite sljedeći kod:

vrijeme uvoza kao t

import smbus

import sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

sabirnica = smbus. SMBus (DEVICE_BUS)

dok je True:

probaj:

za i u rasponu (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t.sleep (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t.sleep (1)

osim KeyboardInterrupt kao e:

print ("Quit the Loop")

sys.exit ()

* Sačuvajte, a zatim pokrenite kao python3:

python3 relay.py

Korak 9: Program na Javi (Raspberry Pi)

Kreirajte novu datoteku pod nazivom: I2CRelay.java i zalijepite sljedeći kod:

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;

javna klasa I2CRelay {

// adresa registra releja.

javni statički završni int DOCKER_PI_RELAY_ADDR = 0x10;

// relejni kanal.

javni statički završni bajt DOCKER_PI_RELAY_1 = (bajt) 0x01;

javni statički završni bajt DOCKER_PI_RELAY_2 = (bajt) 0x02;

javni statički završni bajt DOCKER_PI_RELAY_3 = (bajt) 0x03;

javni statički završni bajt DOCKER_PI_RELAY_4 = (bajt) 0x04;

// Status releja

javni statički završni bajt DOCKER_PI_RELAY_ON = (bajt) 0xFF;

javni statički završni bajt DOCKER_PI_RELAY_OFF = (bajt) 0x00;

public static void main (String args) baca InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

final console console = new Console ();

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

I2CDevice uređaj = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Uključi relej!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Thread.sleep (500);

console.println ("Isključi relej!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Preporučuje se: