Sadržaj:

Sustav upravljanja svjetlima: 9 koraka
Sustav upravljanja svjetlima: 9 koraka

Video: Sustav upravljanja svjetlima: 9 koraka

Video: Sustav upravljanja svjetlima: 9 koraka
Video: Ako imate Samsung EVO KORISNIH TRIKOVA 2024, Srpanj
Anonim
Sustav upravljanja svjetlima
Sustav upravljanja svjetlima

Nedavno sam radio na razumijevanju mikrokontrolera i uređaja temeljenih na IOT -u za potrebe sigurnosnog istraživanja. Pa sam mislio izgraditi mali sustav 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 rasvjete svoje sobe. Također, ovdje neću govoriti o početnom postavljanju za Raspberry, možda ćete za to pronaći razne vodiče.

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

Pribor

Popis komponenti:

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

Korak 1: Upoznajte se s 4 -kanalnom relejnom pločom DockerPi serije

Upoznajte 4 -kanalnu relejnu ploču DockerPi serije
Upoznajte 4 -kanalnu relejnu ploču DockerPi serije
Upoznajte 4 -kanalnu relejnu ploču DockerPi serije
Upoznajte 4 -kanalnu relejnu ploču DockerPi serije
Upoznajte 4 -kanalnu relejnu ploču DockerPi serije
Upoznajte 4 -kanalnu relejnu ploču DockerPi serije

DockerPi 4 -kanalni relej član je 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, a 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 bilo š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. Započnimo.

Korak 2: Značajke

Značajke
Značajke
Značajke
Značajke
Značajke
Značajke
  • DockerPi serija
  • Mogućnost programiranja
  • Upravljajte izravno (bez programiranja)
  • Proširite GPIO pinove
  • 4 -kanalni relej
  • 4 Podrška za Alt I2C Addr
  • Podrška za LED diode statusa releja
  • 3A 250V AC podrška
  • 3A 30V DC
  • Može slagati s drugom stack pločom Neovisno o hardveru matične ploče (potrebna je podrška za I2C)

Korak 3: Karta adresa uređaja

Karta adresa uređaja
Karta adresa uređaja
Karta adresa uređaja
Karta adresa uređaja

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

Ostali zahtjevi:

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

  • Osnovno razumijevanje Linux sustava
  • Prisutnost uma

Prije nego što krenete naprijed, 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 od čvorova 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 krug se dovršava. Dakle, samo primjenom malog napona za napajanje zavojnice zapravo možemo dovršiti krug za putovanje visokog napona. Također, budući da statički čvor nije fizički povezan sa zavojnicom, vrlo je mala vjerojatnost 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 s držačem žarulje koji se napaja iz glavnog električnog napajanja. No, najprije vam želim dati kratku predstavu o načinu uključivanja i isključivanja svjetla putem izravnog 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 swith spojen (ili UKLJUČEN) struja teče kroz žarulju i neutralnu žicu, dovršavajući krug. Time se žarulja UKLJUČUJE. Kad je prekidač isključen, prekida se krug i žarulja se isključuje. Evo malog dijagrama koji to objašnjava:

Sada, za naš eksperiment, morat ćemo učiniti da "negativna žica" prođe kroz naš relej kako bi prekinula krug i kontrolirala 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: Izravna kontrola bez programiranja (Raspberry Pi)

Uključite relej kanala br

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)

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

#uključi

#uključi

#uključi

#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 = ožičenjePiI2CSetup (DEVICE_ADDR);

za(;;){

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

{

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

ožičenjePiI2CWriteReg8 (fd, i, ON);

spavati (200);

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

ožičenjePiI2CWriteReg8 (fd, i, OFF);

spavati (200);

}

}

return 0;

}

Sastavi ga

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

Izvrsno

./relej

Korak 8: Program u Pythonu (Raspberry Pi)

Sljedeći se kôd preporučuje izvršiti pomoću Pythona 3 i instalirati knjižnicu smbus:

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

vrijeme uvoza kao t

uvoz smbus

import sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

sabirnica = smbus. SMBus (DEVICE_BUS)

dok je istina:

probati:

za i u rasponu (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t.spavanje (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t.spavanje (1)

osim KeyboardInterrupt kao e:

print ("Izađi iz petlje")

sys.exit ()

* Spremite ga, a zatim pokrenite kao python3:

python3 relej.py

Korak 9: Program na Javi (Raspberry Pi)

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

import java.io. IOException;

import java.util. Arrays;

uvoz com.pi4j.io.i2c. I2CBus;

uvoz com.pi4j.io.i2c. I2CDevice;

uvoz com.pi4j.io.i2c. I2CFactory;

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

import com.pi4j.platform. PlatformAlreadyAssignedException;

uvoz 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 {

konačna konzola konzole = nova konzola ();

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);

Navoj.spavanje (500);

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

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Preporučeni: