Sisällysluettelo:

EF230 Smart Home Project: 7 vaihetta
EF230 Smart Home Project: 7 vaihetta

Video: EF230 Smart Home Project: 7 vaihetta

Video: EF230 Smart Home Project: 7 vaihetta
Video: Home Automation: How to use 7 Program 0.1s to 9999 minutes Relay Timer XY-LJ02 2024, Marraskuu
Anonim
EF230 Smart Home -projekti
EF230 Smart Home -projekti

Tarvittavat osat ja materiaalit:

  • 1 Arduino MKR 1000
  • 3 Leipälevyt
  • 2 minivalokennoa
  • 1 NPN -transistori
  • 1 Mini virtakytkin
  • 1 LED - RGB (4 piikkiä)
  • 1 LED (valitsemasi väri)
  • 1 diodi 1N4148
  • 1 10 K ohmin vastukset
  • 5 100 ohmin vastus
  • 1 Lämpötila -anturi TMP36
  • 1 DAGU 48: 1 Suhde Vaihdemoottori
  • 25 hyppyjohdinta
  • USB -johto
  • MATLAB -ohjelma
  • SIK -kokeiluopas Arduino 101/Genuino 101 -levylle - SIK -kokeiluoppaan linkki

Tämä projekti kuvaa älykkään kodin järjestelmän konseptisuunnittelua, joka hyödyntäisi tietoja kodinomistajien optimoimiseksi energiankäytön ja turvallisuuden kannalta. Se sisältää valoanturin, joka sytyttää ulkovalot yöllä, valotunnistimen turvallisuuden vuoksi sekä lämpötila -anturin ja tuulettimen sisäilman säätöön.

Vaihe 1: Valoherkkä LED

  • Valoherkkä LED -asetus on tarkoitettu edustamaan yöllä syttyvän talon ulkovaloja.
  • Kun mini -valokenno havaitsee vähemmän valoa, LED -valo syttyy.
  • Älykkään kodin kannalta sillä on energia- ja turvallisuusvaikutuksia. Se säästää energiaa jättämällä valot pois päältä päivällä ja lisää turvallisuutta yöllä.
  • Projektin tämän osan tarkka johdotus ja asetukset löytyvät SIK -kokeiluoppaan kokeesta 7.

Vaihe 2: Mini virtakytkin

  • Kytkin on ensimmäinen askel älykkään kodin turvallisuusprosessissa.
  • Kun se on kytketty päälle, kytkin käynnistää vastauksen ja kysyy käyttäjältä, haluavatko he siirtyä Koti- tai Poissa -tilaan.
  • Jos "Koti" -tila on valittu, suojaus katsotaan poiskytketyksi, mutta Poissa -tilan valitseminen virittää turvajärjestelmän.
  • Tämän projektin osan johdotus löytyy kokeiluoppaan kohdasta 6. Älykästä kotia varten kokeessa 6 löydettyjä LED -valoja ja niiden liitäntäjohtoja ei tarvitse sisällyttää.

Vaihe 3: Toinen valokenno

Toinen valokenno
Toinen valokenno
  • Toinen valokenno toimii älykkään kodin turvajärjestelmän liikeanturina.
  • Anturia käytetään vain, kun järjestelmä on asetettu Poissa -tilaan, kuten edellisessä vaiheessa on kuvattu.
  • Jos valokenno vastaanottamansa valon määrä vähenee, se tunnistaa sen liikkeeksi talon sisällä.
  • Tämän projektin osan asetukset löytyvät SIK -kokeiluoppaan kokeesta 7. Johdotukseen on kuitenkin sisällytettävä vain valokenno ja sen liitäntäjohdot.

Vaihe 4: RGB -LED

  • RGB -LEDiä käytetään yhdessä minikytkimen ja älykkään kodin turvajärjestelmän toisen valokennon kanssa.
  • Näitä kolmea eri väriä käytetään älykkään kodin asukkaiden indikaattoreina.
  • Kun järjestelmä asetetaan kotitilaan, LED -valo muuttuu siniseksi. Kun järjestelmä asetetaan Poissa -tilaan, LED -valo muuttuu vihreäksi. Kun liiketunnistimena käytetty valokenno laukeaa, valo vilkkuu punaisena.
  • RGB -LEDin johdotus löytyy SIK -kokeiluoppaan kokeesta 3.

Vaihe 5: Lämpötila -anturi

  • Lämpötila -anturi on tärkeä osa älykkään kodin energian säästämistä.
  • Asukas voi syöttää kotiinsa halutun lämpötilan älykkään kodin ollessa käytössä.
  • Lämpötila -anturi on se, miten järjestelmä tietää, kuinka kaukana todellinen lämpötila on halutusta lämpötilasta.
  • Lämpötila -anturin asetukset löytyvät SIK -kokeiluoppaan kokeesta 9.

Vaihe 6: DAGU -vaihdemoottori

Vaihdemoottori DAGU
Vaihdemoottori DAGU
  • Moottorin avulla älykoti voi säätää talon lämpötilaa halutun lämpötilan ja lämpötila -anturin lukemien perusteella.
  • Toimimalla kodin vaihtovirtayksikkönä moottori pyörii eri nopeuksilla sen mukaan, kuinka paljon todellinen lämpötila on korkeampi kuin haluttu lämpötila. Mitä suurempi ero, sitä nopeammin moottori pyörii.
  • Moottorin johdotus löytyy Kokeiluoppaan kohdasta Koe 11.

Vaihe 7: Koodi

  • Älykotin koodi sisältää useita käyttöliittymiä, joiden avulla asukas voi helposti ymmärtää sen toiminnan ja muuttaa asetuksia helposti.
  • Älykäs koti -järjestelmällä asukas saa ja lähettää hälytyksen sähköpostitse, jos liiketunnistin kytketään pois päältä heidän ollessaan poissa.
  • Ainoa muutos, joka on tehtävä, on lisätä tiedot lähettäjän sähköpostiosoitteeseen ja vastaanottajan sähköpostiosoitteeseen.

selkeä a; kirkas s; kirkas m; clc; sulje kaikki; % Tyhjennä arduino- ja servomuuttujat, jotta ne voidaan määrittää uudelleen joka kerta, jotta koodi toimii tehokkaasti ("tyhjennä m" on välttämätöntä, jotta jokin silmukoista toimii oikein) a = arduino (); % Aseta arduino -muuttuja

s = servo (a, 'D6'); % Aseta servomuuttuja

% Alusta sähköpostimuuttujat turvajärjestelmän varoitussähköpostille

sähköpostit = {'lisää vastaanottajan osoite'}; % Sähköpostisarja, johon suojausviesti lähetetään

% Sähköpostiasetusten asetukset, joita tarvitaan Gmailin käyttämiseen sähköpostin lähettämiseen

setpref ('Internet', 'Sähköposti', 'lähettäjän sähköpostiosoite');

setpref ('Internet', 'SMTP_Käyttäjänimi', 'lähettäjän käyttäjätunnus');

setpref ('Internet', 'SMTP_Password', 'lähettäjän salasana');

rekvisiitta = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'true');

props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');

% Sähköpostin aihe- ja tekstimuuttujat

subj = 'Tunkeutujahälytys kotona';

text = 'Hei, Tämä on älykkään kodin turvajärjestelmä, joka ilmoittaa, että kodin ulkopuolella on havaittu liikettä. Olemme toteuttaneet tarvittavat toimenpiteet ja ottaneet yhteyttä viranomaisiin. Pysy turvassa.';

vaikka totta

prompt = {'Anna haluttu kotilämpötila (65 F - 85 F):'}; % Kysy käyttäjän syöttövalikkoa

dlgtitle = 'Lämpötilan valinta'; % Käyttäjän syöttövalikon otsikko

himmeät = [1 30]; % Käyttäjän syöttövalikon mitat

määritelmä = {'72'}; % Oletussyöttö, joka näkyy, kun valikko avataan ensimmäisen kerran

tempsel_array = inputdlg (kehote, dlgtitle, himmeä, määritelmä); % Käyttäjän ponnahdusvalikko, joka tallentaa syötetyn numeron taulukkoon

jos ~ isempty (tempsel_array) % Jos taulukko EI ole tyhjä

tempsel_char = solu2mat (tempsel_array); % Muunna taulukko merkkijonoksi

tempsel = str2double (tempsel_char); % Muunna merkkijono numeroiksi

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Kirjoita valittu lämpötila ThingSpeak -kanavallesi

break % Break from while -silmukka, joten valikko ei tule esiin useita kertoja

else % Jos käyttäjä napsauttaa Peruuta lämpötilan syöttämisen sijaan

msg1 = msgbox ('Lämpötilaa ei ole valittu, oletusarvo on 85 F', 'Varoitus!'); % Viesti näytetään käyttäjälle napsauttamalla Peruuta

odota (msg1); % Odota, kunnes viestiruutu sulkeutuu, ennen kuin jatkat

tempsel = 85; % Aseta lämpötila sanomalaatikossa ilmoitettuun arvoon

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Kirjoita valittu lämpötila ThingSpeak -kanavallesi

break % Break from while -silmukka, joten valikko ei tule esiin useita kertoja

loppuun

loppuun

vaikka totta

chID = 745517; % ThingSpeak -kanavatunnus

writeKey = 'G9XOQTP8KOVSCT0N'; % -Avain ThingSpeak -kanavan käyttöön

% Alusta anturit tietojen hakemiseksi

tempread = readVoltage (a, 'A3'); % Lue lämpötila -anturin jännite

lightl1 = lukujännite (a, 'A2'); % Valovastuksen valotaso siirtyy punaiseen LED -valoon

lightl2 = lukujännite (a, 'A5'); % Valojännite turvajärjestelmään menevälle valoresistorille

kytkinv = lukujännite (a, 'A0'); % Kytkimen arvo

% Muunna lämpötilatiedot jännitteestä Fahrenheit -asteiksi

tempC = (tempread - 0,5) * 100; % Muunna jännite celsiusasteeksi

tempF = (tempC * 9/5) + 32; % Muunna Celsius -lämpötila Fahrenheit -lämpötilaksi

% Alusta monivärisen LEDin nastanumerot

redp = 'D9'; % Pin LED -valon punaiselle valolle

greenp = 'D10'; % Nasta vihreää valoa varten LEDistä

bluep = 'D11'; % Nasta LED -valon sinistä valoa varten

jos tempsel <tempF % Jos valittu lämpötila on korkeampi kuin huonelämpötila

writePosition (s, 1); % Servo alkaa liikkua

tauko (10) % Servo pyörii 10 sekuntia osoittaakseen, että AC sammuu tietyn ajan kuluttua

writePosition (s, 0); % Sammuta tuuletin, jotta koodi jatkuu ilman tuuletinta

tempsel = 150; % Muuta lämpötila -arvoa niin, että se katkeaa silmukasta tuulettimen sammuttua, uudelleen vain koodin jatkamiseksi

loppuun

jos lightl1 <= 3 % Jos ensimmäinen valoresistori havaitsee heikon valotason

writeDigitalPin (a, 'A1', 1); % Sytytä punainen LED, joka edustaa ulkovaloja

else % Jos valotaso on jälleen korkea

writeDigitalPin (a, 'A1', 0); % Sammuta punainen LED, kun valotaso on jälleen tarpeeksi korkea

loppuun

jos kytkinv> 3 % Jos kytkin on päällä

A = olemassa ('m', 'var'); % Tarkista, onko olemassa muuttuja 'm', se alustaa while -silmukan ja sallii sen rikkoutua, kun valikkokohta valitaan (tämän vuoksi tyhjä m on tehtävä koodin alussa)

kun taas A == 0 % Silmukka suoritetaan, kunnes muuttuja "m" on olemassa

menutext = 'Mihin suojaustilaan haluat siirtyä?'; % Suojauksen ponnahdusvalikon teksti

options = {'Home', 'Poissa'}; % Suojauksen ponnahdusvalikon vaihtoehdot

m = valikko (valikkoteksti, valinnat); % Ponnahdusvalikko turvajärjestelmätiloille

break % Varmista, että while -silmukka on katkennut, joten valikko ei tule esiin useita kertoja

loppuun

jos m == 1 % Jos 'Koti' -tila on valittu

writeDigitalPin (a, bluep, 1); % Sytytä vain sininen valo väriä vaihtavassa LED -valossa

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % Jos Poissa -tila on valittu

writeDigitalPin (a, bluep, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); % Sytytä vain vihreä valo väriä vaihtavassa LED -valossa

jos lightl2 <= 3 % Jos toisen valovastuksen valotaso on alhainen, mikä ilmaisee turvajärjestelmän havaitseman liikkeen

sendmail (sähköpostit, subj, teksti); % Lähetä sähköposti, jossa on aiemmin määritetyt sähköpostiominaisuudet writeDigitalPin (a, greenp, 0); % Salaman punainen väri päälle ja pois päältä 2 kertaa

writeDigitalPin (a, redp, 1);

tauko (0,3)

writeDigitalPin (a, redp, 0);

tauko (0,3)

writeDigitalPin (a, redp, 1);

tauko (0,3)

writeDigitalPin (a, redp, 0);

tauko (0,3)

writeDigitalPin (a, redp, 1); % Viimeistele kiinteällä punaisella vilkkumisen jälkeen osoittaaksesi liikettä, kunnes valotaso nousee takaisin

msg2 = msgbox ('Turvajärjestelmä havaitsi tunkeutujan, asunnon omistajille on lähetetty sähköpostiviesti.', 'VAROITUS!'); % Viestiruutu ilmoittaa käyttäjälle liikkeestä ja ilmoittaa lähetetystä sähköpostista odota (msg2) % Odota, että viestiruutu sulkeutuu ennen kuin jatkat

muu

writeDigitalPin (a, greenp, 1); % Kun valotaso on jälleen noussut, se muuttuu vihreäksi

loppuun

loppuun

elseif kytkinv <3,3 % Jos kytkin on pois päältä

writeDigitalPin (a, bluep, 0); % Sammuta merkkivalo kokonaan osoittaaksesi, että turvajärjestelmä on pois päältä

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

loppuun

loppuun

Suositeltava: