Sisukord:

EF230 nutika kodu projekt: 7 sammu
EF230 nutika kodu projekt: 7 sammu

Video: EF230 nutika kodu projekt: 7 sammu

Video: EF230 nutika kodu projekt: 7 sammu
Video: Антон Катин Разоблачение. Фонд Neutrino, Sсhutz Capital, Simba Storage. 2024, Juuli
Anonim
EF230 targa kodu projekt
EF230 targa kodu projekt

Vajalikud osad ja materjalid:

  • 1 Arduino MKR 1000
  • 3 leiba
  • 2 mini fotoelementi
  • 1 NPN transistor
  • 1 mini toitelüliti
  • 1 LED - RGB (4 haruga)
  • 1 LED (teie valitud värv)
  • 1 diood 1N4148
  • 1 10K oomi takistid
  • 5 100 oomi takisti
  • 1 temperatuuriandur TMP36
  • 1 DAGU 48: 1 suhteline reduktormootor
  • 25 Jumper Traadid
  • USB juhe
  • MATLAB programm
  • SIK katsete juhend Arduino 101/Genuino 101 tahvlile - SIK -i katsejuhendi link

See projekt kirjeldab nutika kodu süsteemi kontseptuaalset disaini, mis kasutaks andmeid, et aidata majaomanikel oma energiatarbimist ja turvalisust optimeerida. See sisaldab valgusandurit, mis lülitab öösel sisse välisvalgustid, valgusandurit turvalisuse tagamiseks ning temperatuuriandurit ja ventilaatorit sisetemperatuuri reguleerimiseks.

Samm: valgustundlik LED

  • Valgustundlik LED -seade on mõeldud öösel süttiva maja välisvalgustite kujutamiseks.
  • Kui mini -fotoelement tuvastab vähendatud valguse, süttib LED.
  • Nutika kodu jaoks on sellel energia- ja julgeolekumõjud. See säästab energiat, jättes päevasel ajal tuled välja ja tagab suurema turvalisuse öösel.
  • Projekti selle osa täpse juhtmestiku ja seadistuse leiate SIK katsejuhendi 7. eksperimendi alt.

Samm: väike toitelüliti

  • Lüliti on nutikodu turvaprotsessi esimene samm.
  • Kui see on sisse lülitatud, käivitab lüliti vastuse, küsides kasutajalt, kas ta soovib siseneda režiimi Kodus või Eemal.
  • Kui valite režiimi „Kodus”, loetakse turvafunktsioon valvest välja, kuid režiimi „Eemal” valimine lülitab turvasüsteemi sisse.
  • Projekti selle osa juhtmestiku leiate katsejuhendi katse 6 alt. Nutika kodu jaoks ei ole vaja lisada katsel 6 leitud valgusdioode ja nende ühendusjuhtmeid.

3. samm: teine fotoelement

Teine fotoelement
Teine fotoelement
  • Teine fotoelement on nutika kodu turvasüsteemi liikumisandur.
  • Andurit kasutatakse ainult siis, kui süsteem on eelmine režiim, nagu eelmises etapis kirjeldatud.
  • Kui fotoelement tunneb vastuvõetud valguse hulga vähenemist, tunneb see selle ära kui liikumist majas.
  • Projekti selle osa seadistused leiate SIK katsejuhendi 7. eksperimendi alt. Kuid juhtmestikku tuleb lisada ainult fotoelement ja selle ühendusjuhtmed.

Samm: RGB LED

  • RGB LED -i kasutatakse koos väikese toitelüliti ja nutika kodu turvasüsteemi teise fotosilmaga.
  • Neid kolme erinevat värvi kasutatakse nutika kodu elaniku indikaatoritena.
  • Kui süsteem on režiimis „Kodu“, muutub LED siniseks. Kui süsteem on režiimis „Eemal”, muutub LED roheliseks. Kui liikumisandurina kasutatav fotoelement käivitub, vilgub tuli punaselt.
  • RGB LED -i juhtmestiku leiate SIK -i katsejuhendi eksperimendist 3.

Samm: temperatuuriandur

  • Temperatuuriandur on nutika kodu energia säästmise peamine osa.
  • Elanik saab nutika kodu kasutamisel sisestada oma kodu jaoks soovitud temperatuuri.
  • Temperatuuriandur on see, kuidas süsteem teab, kui kaugel tegelik temperatuur soovitud temperatuurist on.
  • Temperatuurianduri seadistused leiate SIK katsejuhendi katsest 9.

6. samm: DAGU käigumootor

Käigukast DAGU
Käigukast DAGU
  • Mootor võimaldab nutikodul reguleerida maja temperatuuri soovitud temperatuuri ja temperatuurianduri näitude põhjal.
  • Olles kodus vahelduvvoolu seade, pöörleb mootor erinevatel kiirustel sõltuvalt sellest, kui palju tegelik temperatuur on soovitud temperatuurist kõrgem. Mida suurem on erinevus, seda kiiremini mootor pöörleb.
  • Mootori juhtmestiku leiate katsejuhendist katse 11 all.

Samm: kood

  • Nutikodu kood sisaldab mitmeid kasutajaliideseid, mis võimaldavad elanikul hõlpsasti aru saada, kuidas see töötab, ja hõlpsasti seadeid muuta.
  • Nutika kodu süsteemiga saab elanik e -posti teel märguande, kui liikumisandur on nende eemaloleku ajal välja lülitatud.
  • Ainus muudatus, mida tuleb teha, on saatja e -posti ja saaja e -posti aadressi teabe sisestamine.

selge a; selge s; selge m; clc; sulgege kõik; % Tühjenda arduino ja servo muutujad, et neid saaks iga kord uuesti määratleda, nii et kood töötaks tõhusalt ("selge m" on vajalik, et mõni aeg -ahel korralikult toimiks) a = arduino (); % Määra arduino muutuja

s = servo (a, 'D6'); % Määra servomuutuja

% Initsialiseeri e -posti muutujad turvasüsteemi hoiatusmeilide jaoks

e -kirjad = {'sisestage adressaadi aadress'}; % E -kirjade massiiv, kuhu turvameil saata

% Gmaili kasutamiseks e -kirjade saatmiseks vajalikud e -posti eelistuste seaded

setpref ('Internet', 'E_mail', 'saatja e -posti aadress');

setpref ('Internet', 'SMTP_kasutajanimi', 'saatja kasutajanimi');

setpref ('Internet', 'SMTP_Password', 'saatja parool');

rekvisiidid = 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');

% Saada teema ja teksti muutujad

subj = 'Sissetungijate hoiatus teie kodus';

text = 'Tere, see on teie nutika kodu turvasüsteem, mis teavitab teid, et väljaspool teie kodu on tuvastatud liikumist. Oleme võtnud vajalikud meetmed ja võtnud teiega ühendust ametiasutustega. Ole turvaline. ';

kuigi tõsi

prompt = {'Sisestage soovitud kodutemperatuur (vahemikus 65F kuni 85F):'}; % Küsi kasutaja sisestusmenüüd

dlgtitle = 'Temperatuuri valimine'; % Pealkiri kasutaja sisestusmenüüle

hämarad = [1 30]; % Kasutaja sisestusmenüü mõõtmed

definput = {'72'}; % Vaikimisi sisend, mis kuvatakse menüü esmakordsel avamisel

tempsel_array = inputdlg (viip, dlgtitle, tuhm, definput); % Kasutaja hüpikmenüü, mis salvestab sisestatud numbri massiivi

kui ~ isempty (tempsel_array) % Kui massiiv EI ole tühi

tempsel_char = cell2mat (tempsel_array); % Teisenda massiiv tähemärgiks

tempsel = str2double (tempsel_char); % Teisenda tähemärk numbriteks

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Kirjutage valitud temperatuur oma ThingSpeak kanalile

break % Break from while loop, nii et menüü ei avane mitu korda

else % Kui kasutaja klõpsab temperatuuri sisestamise asemel nupul Tühista

msg1 = msgbox ('Temperatuuri pole valitud, vaikimisi 85F', 'Hoiatus!'); % Sõnum kuvatakse kasutajale pärast tühistamise klõpsamist

oota (msg1); % Enne jätkamist oodake, kuni sõnumikast sulgub

tempel = 85; % Seadke temperatuur teadete kastis märgitule

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Kirjutage valitud temperatuur oma ThingSpeak kanalile

break % Break from while loop, nii et menüü ei avane mitu korda

lõpp

lõpp

kuigi tõsi

chID = 745517; % ThingSpeak kanali ID

writeKey = 'G9XOQTP8KOVSCT0N'; % Võti ThingSpeak kanalile juurdepääsuks

% Andmete lähtestamine andmete toomiseks

tempread = readVoltage (a, 'A3'); % Lugege temperatuurianduri pinget

lightl1 = lugemispinge (a, 'A2'); % Valgustase punasele valgusdioodile

lightl2 = lugemispinge (a, 'A5'); % Valgusturve turvasüsteemi mineva fototakisti valgustugevus

switchv = readVoltage (a, 'A0'); Lüliti väärtus

% Teisendage temperatuuriandmed pingest Fahrenheiti kraadidesse

tempC = (tempread - 0,5) * 100; % Teisenda pinge temperatuuriks Celsiuse järgi

tempF = (tempC * 9/5) + 32; % Teisenda temperatuur Celsiuse järgi Fahrenheiti temperatuuriks

% Initsialiseeri mitmevärvilise LED -i tihvtide numbrid

redp = 'D9'; % Pin LED -i punase tule jaoks

greenp = 'D10'; % Pin rohelise tule jaoks LED -ist

bluep = 'D11'; % Pin LED -i sinise valguse jaoks

kui tempel <tempF % Kui valitud temperatuur on toatemperatuurist kõrgem

writePosition (s, 1); % Servo hakkab liikuma

paus (10) % Servo pöörleb 10 sekundit, et näidata, et vahelduvvool lülitub teatud aja pärast välja

writePosition (s, 0); % Lülitage ventilaator välja, et jätkata koodi ilma ventilaatorita

tempel = 150; % Muutke temperatuuri väärtust, et pärast ventilaatori väljalülitamist tsüklist välja murda, uuesti ainult koodi jätkamise eesmärgil

lõpp

kui lightl1 <= 3 % Kui esimene fototakisti tuvastab nõrga valguse

writeDigitalPin (a, 'A1', 1); % Lülitage sisse punane LED, mis tähistab välisvalgustust

else % Kui valgustase on jälle kõrge

writeDigitalPin (a, 'A1', 0); % Lülitage punane LED välja, kui valgustase on taas piisavalt kõrge

lõpp

kui lülitiv> 3 % Kui lüliti on sisse lülitatud

A = olemas ('m', 'var'); % Kontrollige muutuja "m" olemasolu, see initsialiseerub while -tsükli jaoks ja võimaldab selle katkestada, kui valite menüüelemendi (sellepärast tuleb koodi alguses teha selge m)

samas kui A == 0 % Loop täidetakse, kuni muutuja m on olemas

menutext = 'Millisesse turvarežiimi soovite siseneda?'; % Turva hüpikmenüü tekst

options = {'Kodu', 'Eemal'}; % Turvalisuse hüpikmenüü valikud

m = menüü (menutekst, valikud); % Turvasüsteemi režiimide hüpikmenüü

break % Tagab, et while -tsükkel on katki, nii et menüü ei avane mitu korda

lõpp

kui m == 1 % Kui valitud on "Kodu" režiim

writeDigitalPin (a, bluep, 1); % Lülitage värvimuutva LED -i sisse ainult sinine tuli

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % Kui valitud on režiim 'Eemal'

writeDigitalPin (a, bluep, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); % Lülitage värvimuutva LED -i sisse ainult roheline tuli

kui lightl2 <= 3 % Kui teise fototakisti valgustase on madal, tähistab turvasüsteemi tuvastatud liikumist

sendmail (e -kirjad, subj, tekst); % Saada e -kiri eelnevalt määratletud e -posti atribuutidega writeDigitalPin (a, greenp, 0); % Välkpunane värv sisse ja välja 2 korda

writeDigitalPin (a, redp, 1);

paus (0,3)

writeDigitalPin (a, redp, 0);

paus (0,3)

writeDigitalPin (a, redp, 1);

paus (0,3)

writeDigitalPin (a, redp, 0);

paus (0,3)

writeDigitalPin (a, redp, 1); % Lõpeta pärast vilkumist pideva punasega, et näidata liikumist kuni valguse taseme tõusuni

msg2 = msgbox ('Turvasüsteem tuvastas sissetungija, majaomanikele on saadetud e -kiri nende teavitamiseks.', 'HOIATUS!'); % Sõnumikast kasutaja teavitamiseks liikumisest ja teavitamiseks saadetud e -kirjast ootab (msg2) % Enne jätkamist oodake, kuni sõnumikast sulgub

muidu

writeDigitalPin (a, greenp, 1); % Kui valguse tase on uuesti tõusnud, muutub see roheliseks

lõpp

lõpp

elseif lülitiv <3,3 % Kui lüliti on välja lülitatud

writeDigitalPin (a, bluep, 0); % Lülitage LED täielikult välja, et näidata turvasüsteemi väljalülitamist

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

lõpp

lõpp

Soovitan: