Kazalo:

Domača avtomatizacija z Raspberry Pi z uporabo relejne plošče: 7 korakov
Domača avtomatizacija z Raspberry Pi z uporabo relejne plošče: 7 korakov

Video: Domača avtomatizacija z Raspberry Pi z uporabo relejne plošče: 7 korakov

Video: Domača avtomatizacija z Raspberry Pi z uporabo relejne plošče: 7 korakov
Video: The Choice is Ours (2016) Official Full Version 2024, Julij
Anonim
Domača avtomatizacija z Raspberry Pi z uporabo relejne plošče
Domača avtomatizacija z Raspberry Pi z uporabo relejne plošče

Večina ljudi želi veliko udobja, vendar po razumnih cenah. Leni smo, da vsak večer ob sončnem zahodu prižgemo hiše in naslednje jutro spet ugasnemo luči Ali pa vklopimo/izklopimo klimatsko napravo/ventilator/grelnike, kakršno je bilo vreme ali sobna temperatura.

Tu je poceni rešitev, da se izognete temu dodatnemu delu pri izklopu aparatov, kadar je to potrebno. Gre za avtomatizacijo vaših hiš s sorazmerno zelo nizkimi stroški z uporabo preprostih izdelkov plug and play. Deluje tako, da ko se temperatura dvigne ali zniža, vklopi klimatsko napravo oziroma grelec. Po potrebi bo v pomoč tudi pri vklopu ali osvetlitvi vašega doma, ne da bi jih ročno vklopili. Avtomatizirajte svet in še veliko več naprav. Naj začnemo vaš dom.

1. korak: Potrebna je strojna oprema

Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema

Uporabljali bomo:

Malina Pi

Raspberry Pi je osebni računalnik, ki temelji na Linuxu. Ta mali računalnik zaznamuje moč, ki se uporablja kot del elektronskih vaj, in računalniških operacij, kot so preglednice, urejanje besedil, brskanje po spletu in e -pošta ter igre

I2C ščit ali glava I2C

INPI2 (I2C adapter) ponuja vrata Raspberry Pi 2/3 in I²C za uporabo z več napravami I2C

Relejni krmilnik I2C MCP23008

MCP23008 podjetja Microchip je integriran razširitvenik vrat, ki preko vodila I²C upravlja osem relejev. Z vgrajenimi razširitvenimi vrati I²C lahko dodate več relejev, digitalnih V/I, analogno -digitalnih pretvornikov, senzorjev in drugih naprav

MCP9808 Temperaturni senzor

MCP9808 je visoko natančen temperaturni senzor, ki zagotavlja umerjene, linearne senzorske signale v digitalnem formatu I²C

Senzor svetilnosti TCS34903

TCS34903 je izdelek družine barvnih senzorjev, ki zagotavlja vrednost svetlobe in barve komponente RGB

Priključni kabel I2C

Priključni kabel I2C je 4-žilni kabel, ki je namenjen komunikaciji I2C med dvema napravama I2C, povezanima prek njega

Micro USB adapter

Za vklop Raspberry Pi potrebujemo kabel Micro USB

12V napajalnik za relejsko ploščo

Relejni krmilnik MCP23008 deluje na 12V zunanje napajanje in ga je mogoče napajati z 12V napajalnikom

Izdelek lahko kupite s klikom nanj. Prav tako lahko v trgovini Dcube najdete več odličnega materiala.

2. korak: Priključitev strojne opreme

Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme

Potrebne povezave (glejte slike) so naslednje:

  1. To bo delovalo preko I2C. Vzemite ščit I2C za Raspberry pi in ga nežno povežite z zatiči GPIO Raspberry Pi.
  2. En konec kabla I2C priključite na vhod TCS34903, drugi konec pa na ščit I2C.
  3. Vtičnico senzorja MCP9808 priključite na izhod TCS34903 s kablom I2C.
  4. Vtičnico MCP23008 priključite na izhod senzorja MCP9808 s kablom I2C.
  5. Ethernetni kabel priključite tudi na usmerjevalnik Raspberry Pi. Za isto lahko uporabite tudi usmerjevalnik Wi-Fi.
  6. Nato napajajte Raspberry Pi z adapterjem Micro USB in relejno ploščo MCP23008 z adapterjem 12V.
  7. Na koncu priključite luč s prvim relejem in ventilator ali grelec z drugim relejem. Modul lahko razširite ali pa z releji povežete več naprav.

3. korak: Komuniciranje z uporabo protokola I2C

Če želite omogočiti Raspberry Pi I2C, nadaljujte, kot je navedeno spodaj:

  1. V terminalu vnesite naslednji ukaz, da odprete konfiguracijske nastavitve: sudo raspi-config
  2. Tukaj izberite »Napredne možnosti«.
  3. Izberite »I2C« in kliknite »Da«.
  4. Znova zaženite sistem, da ga nastavite glede na spremembe, izvedene z ukazom ponovni zagon.

4. korak: Programiranje modula

Nagrada za uporabo Raspberry Pi je, da vam omogoča prilagodljivost pri izbiri programskega jezika, v katerem želite programirati za vmesnik zaznavalne naprave z Raspberry Pi. Če izkoristimo to prednost Raspberry Pi, tukaj dokazujemo njeno programiranje v Javi.

Če želite nastaviti okolje Java, namestite “pi4j libraby” s spletnega mesta https://pi4j.com/1.2/index.html Pi4j je knjižnica vnosov/izhodov Java za Raspberry Pi. Enostaven in najbolj priljubljen način za namestitev “pi4j knjižnica je, da izvedete spodnji ukaz neposredno v vašem Raspberry Pi:

curl -s get.pi4j.com | sudo bash

ALI

curl -s get.pi4j.com

uvoz com.pi4j.io.i2c. I2CBus; uvoz com.pi4j.io.i2c. I2CDevice; uvoz com.pi4j.io.i2c. I2CFactory; uvoz java.io. IOException; razred MCP23008 {public static void main (String args ) throws Exception {int status, value, value1 = 0x00; // Ustvari vodilo I2C I2CBus vodilo = I2CFactory.getInstance (I2CBus. BUS_1); // Pridobite napravo I2C, naslov MCP23008 I2C je 0x20 (32) Naprava I2CDevice = bus.getDevice (0x20); // Pridobite napravo I2C, naslov MCP9808 I2C je 0x18 (24) I2CDevice MCP9808 = bus.getDevice (0x18); // Pridobite napravo I2C, naslov I2C TCS34903 je 0x39 (55) I2CDevice TCS34903 = bus.getDevice (0x39); // Nastavi register čakanja = 0xff (255), čakalni čas = 2,78 ms TCS34903.write (0x83, (bajt) 0xFF); // Omogoči dostop do IR kanala TCS34903.write (0xC0, (bajt) 0x80); // Atime register nastavite na 0x00 (0), največje število = 65535 TCS34903.write (0x81, (bajt) 0x00); // VKLOPLJEN, ADC omogočen, Čakanje omogočeno TCS34903.write (0x80, (bajt) 0x0B); Thread.sleep (250); // Preberite 8 bajtov podatkov z jasnimi/ir podatki LSB prvi bajt data1 = nov bajt [8]; // branje temperaturnih podatkov bajt podatki = novi bajt [2]; status = naprava.prebrano (0x09); // Konfigurirali vse nožice kot OUTPUT device.write (0x00, (byte) 0x00); Thread.sleep (500); while (true) {MCP9808. read (0x05, podatki, 0, 2); // pretvori podatke int temp = ((podatki [0] & 0x1F) * 256 + (podatki [1] & 0xFF)); if (temp> 4096) {temp -= 8192; } dvojni cTemp = temp * 0,0625; System.out.printf (»Temperatura v Celziju je: %.2f C %n«, cTemp); TCS34903.read (0x94, data1, 0, 8); dvojni ir = ((podatki1 [1] & 0xFF) * 256) + (podatki1 [0] & 0xFF) * 1,00; dvojno rdeča = ((podatki1 [3] & 0xFF) * 256) + (podatki1 [2] & 0xFF) * 1,00; dvojno zelena = ((podatki1 [5] & 0xFF) * 256) + (podatki1 [4] & 0xFF) * 1,00; dvojno modra = ((podatki1 [7] & 0xFF) * 256) + (podatki1 [6] & 0xFF) * 1,00; // Izračunaj dvojno osvetljenost = (-0.32466) * (rdeča) + (1.57837) * (zelena) + (-0.73191) * (modra); System.out.printf ("Osvetljenost je: %.2f lux %n", osvetljenost); if (osvetljenost 30) {vrednost = vrednost1 | (0x01); } else {value = value1 & (0x02); } device.write (0x09, (bajtna) vrednost); Thread.sleep (300); }}}

5. korak: Ustvarjanje datoteke in zagon kode

  1. Za ustvarjanje nove datoteke, v katero je mogoče zapisati/kopirati kodo, bo uporabljen naslednji ukaz: sudo nano FILE_NAME.javaEg. sudo nano MCP23008.java
  2. Po ustvarjanju datoteke lahko tukaj vnesemo kodo.
  3. Kopirajte kodo iz prejšnjega koraka in jo prilepite v okno tukaj.
  4. Pritisnite Ctrl+X in nato "y" za izhod.
  5. Nato z naslednjim ukazom sestavite kodo: pi4j FILE_NAME.javaEg. pi4j MCP23008.java
  6. Če ni napak, zaženite program z omenjenim ukazom: pi4j FILE_NAMEEg. pi4j MCP23008.java

6. korak: Aplikacije

Ta sistem vam omogoča nadzor naprav, ne da bi šli na stenska stikala. To ima obsežne zmogljivosti, saj se časi vklopa ali izklopa naprav samodejno načrtujejo. Nekaj je aplikacij tega modula od hiš do industrij, bolnišnic, železniških postaj in še veliko drugih mest je mogoče na cenovno ugoden in enostaven način avtomatizirati s svojimi komponentami plug-and-play.

7. korak: Viri

Za več informacij o krmilniku relejev TSL34903, MCP9808 MCP23008 si oglejte spodnje povezave:

  • Tehnični list TSL34903
  • Tehnični list MCP9808
  • Tehnični list MCP23008

Priporočena: