Kazalo:

Sistem za nadzor luči: 9 korakov
Sistem za nadzor luči: 9 korakov

Video: Sistem za nadzor luči: 9 korakov

Video: Sistem za nadzor luči: 9 korakov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Julij
Anonim
Sistem za nadzor luči
Sistem za nadzor luči

Pred kratkim sem delal na razumevanju mikrokrmilnikov in naprav, ki temeljijo na IOT, za namene varnostnih raziskav. Zato sem razmišljal o tem, da bi zgradil majhen sistem avtomatizacije doma za prakso. Tega še ne bom dokončal, vendar bom za začetek v tem prispevku povedal, kako sem uporabil Raspberry Pi 2 in nekatere druge električne komponente za nadzor osvetlitve moje sobe. Prav tako tukaj ne bom govoril o začetni nastavitvi za Raspberry, za to boste morda našli različne vaje.

Toda v tem projektu vam bom predstavil ta izdelek serije docker pi.

Zaloge

Seznam komponent:

  • 1 x Raspberry Pi 3B+/3B/nič/nič/nič W/4B/
  • 1 x 16 GB kartica razreda 10 TF
  • 1 x 4 -kanalna relejna plošča serije DockerPi (HAT)
  • 1 x [email protected] napajalnik, ki je od 52Pi
  • 4 x svetlobni trak
  • 1 x enosmerni priključek
  • 1 x 12V napajalnik za svetlobne trakove.
  • več žic.

1. korak: Poznavanje 4 -kanalne relejne plošče DockerPi Series

Poznavanje 4 -kanalne relejne plošče serije DockerPi
Poznavanje 4 -kanalne relejne plošče serije DockerPi
Poznavanje 4 -kanalne relejne plošče serije DockerPi
Poznavanje 4 -kanalne relejne plošče serije DockerPi
Poznavanje 4 -kanalne relejne plošče serije DockerPi
Poznavanje 4 -kanalne relejne plošče serije DockerPi

4 -kanalni rele DockerPi je član serije DockerPi, ki se pogosteje uporablja v aplikacijah IOT.

DockerPi 4 -kanalni rele lahko namesto tradicionalnih stikal posreduje AC/DC, da doseže več idej. 4 -kanalni rele DockerPi lahko naloži do 4 in ga lahko zložite z drugo razširitveno ploščo DockerPi. Če morate teči dlje časa, priporočamo tudi, da za večjo moč uporabite razširitveno ploščo DockerPi Power.

OPOMBA POZOR Preden nadaljujemo, bi vas rad opozoril na NEVARNOST eksperimentiranja z "električno energijo iz omrežja". Če bo kaj narobe, je lahko najhujša posledica smrt ali vsaj požig vaše hiše. Zato ne poskušajte storiti ničesar, kar je omenjeno v tem članku, če ne razumete, kaj počnete, ali bolje poiščite pomoč izkušenega električarja. Začnimo.

2. korak: Lastnosti

Lastnosti
Lastnosti
Lastnosti
Lastnosti
Lastnosti
Lastnosti
  • Serija DockerPi
  • Programabilno
  • Upravljajte neposredno (brez programiranja)
  • Razširite zatiče GPIO
  • 4 -kanalni rele
  • 4 Podpora za Alt I2C Addr
  • Podpora svetilkam za stanje releja
  • 3A 250V AC podpora
  • 3A 30V DC
  • Can Stack z drugo ploščo sklada Ne glede na strojno opremo matične plošče (zahteva podporo I2C)

3. korak: Zemljevid naslovov naprave

Zemljevid naslovov naprave
Zemljevid naslovov naprave
Zemljevid naslovov naprave
Zemljevid naslovov naprave

Ta plošča ima ločen naslov registra in vsak rele lahko upravljate samo z enim ukazom.

Druge zahteve:

Osnovno razumevanje Pythona ali C ali lupine ali Jave ali katerega koli drugega jezika (uporabljal bom C, python, lupino in javo)

  • Osnovno razumevanje sistemov Linux
  • Prisotnost uma

Preden nadaljujete, morate razumeti električne komponente, ki jih bomo uporabljali:

1. Rele:

Rele je električna naprava, ki se običajno uporablja za krmiljenje visokih napetosti z uporabo zelo nizke napetosti kot vhoda. Ta je sestavljen iz tuljave, ovite okoli pola in dveh majhnih kovinskih loput (vozlišč), ki se uporabljata za zapiranje vezja. Eno od vozlišč je fiksno, drugo pa premično. Vsakič, ko električna energija prehaja skozi tuljavo, ustvari magnetno polje in pritegne gibljivo vozlišče proti statičnemu vozlišču in vezje se zaključi. Torej, samo z uporabo majhne napetosti za napajanje tuljave lahko dejansko dokončamo vezje za potovanje visoke napetosti. Ker tudi statično vozlišče ni fizično povezano s tuljavo, je zelo majhna možnost, da se mikrokrmilnik, ki napaja tuljavo, poškoduje, če gre kaj narobe.

4. korak: Priključite rele na nosilec žarnice, ki ga napaja glavno električno napajanje

Rele priključite na nosilec žarnice, ki ga napaja glavno električno napajanje
Rele priključite na nosilec žarnice, ki ga napaja glavno električno napajanje
Rele priključite na nosilec žarnice, ki ga napaja glavno električno napajanje
Rele priključite na nosilec žarnice, ki ga napaja glavno električno napajanje

Zdaj na težaven del, rele bomo priključili na nosilec žarnice, ki ga napaja glavno električno napajanje. Najprej pa vam želim na kratko predstaviti, kako se luči vklopijo in izklopijo z neposrednim napajanjem.

Zdaj, ko je žarnica priključena na glavno napajanje, to običajno naredimo tako, da na žarnico povežemo dve žici. ena od žic je "nevtralna" žica, druga pa "negativna" žica, ki dejansko prenaša tok, prav tako je v celo vezje dodano stikalo za krmiljenje mehanizma ON -OFF. Torej, ko je swith priključen (ali vklopljen), tok teče skozi žarnico in nevtralno žico, s čimer se dokonča vezje. S tem vklopite žarnico. Ko stikalo izklopite, prekine vezje in žarnica se izklopi. Tukaj je majhen diagram vezja, ki to razlaga:

Zdaj bomo morali za naš poskus narediti, da "negativna žica" preide skozi naš rele, da prekine vezje in nadzoruje pretok moči s preklopom releja. Torej, ko se rele vklopi, mora dokončati vezje in žarnica se mora vklopiti in obratno. Za celotno vezje glejte spodnji diagram.

5. korak: 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)

Zaženite sudo raspi-config in sledite pozivom za namestitev podpore i2c za jedro ARM in jedro linux

Pojdite na Možnosti vmesnika

6. korak: Neposreden nadzor brez programiranja (Raspberry Pi)

Vklopite rele kanal 1

i2cset -y 1 0x10 0x01 0xFF

Izklopite rele kanal 1

i2cset -y 1 0x10 0x01 0x00

Vklopite rele kanal 2

i2cset -y 1 0x10 0x02 0xFF

Izklopite rele kanal 2

i2cset -y 1 0x10 0x02 0x00

Vklopite rele kanal 3

i2cset -y 1 0x10 0x03 0xFF

Izklopite rele kanal 3

i2cset -y 1 0x10 0x03 0x00

Vklopite rele kanal 4

i2cset -y 1 0x10 0x04 0xFF

Izklopite rele kanal št. 4

i2cset -y 1 0x10 0x04 0x00

7. korak: Program v jeziku C (Raspberry Pi)

Ustvarite izvorno kodo in jo poimenujte "relay.c"

#vključi

#vključi

#vključ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 ("Vklopi releje v C / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

za (;;) {

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

{

printf ("vklopi rele št. $ d", i);

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

spanje (200);

printf ("izklopite rele št. $ d", i);

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

spanje (200);

}

}

vrnitev 0;

}

Sestavi

gcc rele.c -lwiringPi -o rele

Odlično

./ rele

8. korak: Program v Pythonu (Raspberry Pi)

Naslednjo kodo je priporočljivo izvesti s programom Python 3 in namestiti knjižnico smbus:

Ustvarite datoteko z imenom "relay.py" in prilepite naslednjo kodo:

čas uvoza kot t

uvoz smbus

import sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

vodilo = smbus. SMBus (DEVICE_BUS)

medtem ko je res:

poskusi:

za i v razponu (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t.spanje (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t.spanje (1)

razen KeyboardInterrupt kot e:

print ("Zapri zanko")

sys.exit ()

* Shranite in nato zaženite kot python3:

python3 relay.py

9. korak: Program v Javi (Raspberry Pi)

Ustvarite novo datoteko z imenom: I2CRelay.java in prilepite naslednjo kodo:

uvoz java.io. IOException;

uvoz java.util. Arrays;

uvoz com.pi4j.io.i2c. I2CBus;

uvoz com.pi4j.io.i2c. I2CDevice;

uvoz com.pi4j.io.i2c. I2CFactory;

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

uvoz com.pi4j.platform. PlatformAlreadyAssignedException;

uvoz com.pi4j.util. Console;

javni razred I2CRelay {

// naslov registra releja.

javni statični končni int DOCKER_PI_RELAY_ADDR = 0x10;

// relejski kanal.

javni statični končni bajt DOCKER_PI_RELAY_1 = (bajt) 0x01;

javni statični končni bajt DOCKER_PI_RELAY_2 = (bajt) 0x02;

javni statični končni bajt DOCKER_PI_RELAY_3 = (bajt) 0x03;

javni statični končni bajt DOCKER_PI_RELAY_4 = (bajt) 0x04;

// Stanje releja

javni statični končni bajt DOCKER_PI_RELAY_ON = (bajt) 0xFF;

javni statični končni bajt DOCKER_PI_RELAY_OFF = (bajt) 0x00;

public static void main (nizov args) vrže InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

končna konzola konzole = nova konzola ();

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

Naprava I2CDevice = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Vklopi rele!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Thread.sleep (500);

console.println ("Izklopi rele!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Priporočena: