Përmbajtje:

Projekti EF230 Smart Home: 7 hapa
Projekti EF230 Smart Home: 7 hapa

Video: Projekti EF230 Smart Home: 7 hapa

Video: Projekti EF230 Smart Home: 7 hapa
Video: Python Rover EF230 Project 2024, Nëntor
Anonim
Projekti i Shtëpisë së Zgjuar EF230
Projekti i Shtëpisë së Zgjuar EF230

Pjesët dhe materialet e nevojshme:

  • 1 Arduino 1000 MKR
  • 3 Pllaka buke
  • 2 Mini Fotocelë
  • 1 Transistorë NPN
  • 1 Mini kaloni i energjisë
  • 1 LED - RGB (4 prizë)
  • 1 LED (ngjyra e zgjedhjes suaj)
  • 1 Diodë 1N4148
  • 1 Rezistente 10K Ohm
  • 5 Rezistencë 100 Ohm
  • 1 Sensori i Temperaturës TMP36
  • 1 DAGU 48: 1 Raporti Gearmotor
  • 25 Tela Jumper
  • Kordoni USB
  • Programi MATLAB
  • Udhëzuesi i Eksperimentit SIK për Bordin Arduino 101/Genuino 101 - Lidhja e Udhëzuesit të Eksperimentit SIK

Ky projekt detajon modelin konceptual të një sistemi të zgjuar të shtëpisë që do të përdorte të dhëna për të ndihmuar pronarët e shtëpive të optimizojnë përdorimin dhe sigurinë e tyre të energjisë. Ai përfshin një sensor drite për të ndezur dritat e jashtme gjatë natës, një sensor dritë për sigurinë dhe një sensor të temperaturës dhe një ventilator për kontrollin e temperaturës së brendshme.

Hapi 1: LED i ndjeshëm ndaj dritës

  • Konfigurimi LED i ndjeshëm ndaj dritës ka për qëllim të përfaqësojë dritat e jashtme në një shtëpi që ndizet gjatë natës.
  • Kur mini fotoceli ndjen një sasi të zvogëluar të dritës, LED do të ndizet.
  • Për një shtëpi të zgjuar kjo ka implikime energjie dhe sigurie. Do të kursejë energji duke lënë dritat fikur gjatë ditës dhe do të sigurojë siguri të shtuar gjatë natës.
  • Instalimet dhe instalimet e sakta për këtë pjesë të projektit mund të gjenden nën eksperimentin 7 në Udhëzuesin e Eksperimentit SIK.

Hapi 2: Mini Power Switch

  • Kalimi është hapi i parë në procesin e sigurisë së shtëpisë së zgjuar.
  • Kur ndizet, çelësi do të nisë një përgjigje duke pyetur përdoruesin nëse dëshiron të hyjë në modalitetin "Shtëpi" ose "Larg".
  • Nëse zgjidhet modaliteti "Shtëpi", siguria konsiderohet e çarmatosur, por zgjedhja e modalitetit "Larg" do të armatosë sistemin e sigurisë.
  • Instalimet elektrike për këtë pjesë të projektit mund të gjenden nën eksperimentin 6 në Udhëzuesin e Eksperimentit. Për qëllimet e shtëpisë së zgjuar, LED -të dhe telat e tyre lidhës të gjetur në eksperimentin 6 nuk kanë nevojë të përfshihen.

Hapi 3: Fotoceli i dytë

Fotoceli i dytë
Fotoceli i dytë
  • Fotoceli i dytë shërben si një sensor lëvizjeje për sistemin e sigurisë së shtëpisë së zgjuar.
  • Sensori përdoret vetëm kur sistemi vihet në modalitetin "Larg" siç përshkruhet në hapin e mëparshëm.
  • Nëse fotoceli përjeton një rënie të sasisë së dritës që merr, e njeh këtë si lëvizje brenda shtëpisë.
  • Konfigurimi për këtë pjesë të projektit mund të gjendet nën eksperimentin 7 në Udhëzuesin e Eksperimentit SIK. Sidoqoftë, vetëm fotoceli dhe telat e tij lidhës duhet të përfshihen në instalime elektrike.

Hapi 4: RGB LED

  • RGB LED përdoret në kombinim me mini çelësin e energjisë dhe fotocelën e dytë për sistemin e sigurisë së shtëpisë së zgjuar.
  • Tre ngjyrat e ndryshme përdoren si tregues për banorin e shtëpisë së zgjuar.
  • Kur sistemi vendoset në modalitetin 'Home', LED kthehet në blu. Kur sistemi vendoset në modalitetin "Larg" LED ndizet me ngjyrë të gjelbër. Kur fotocelja e përdorur si sensor lëvizjeje fiket, drita ndizet me ngjyrë të kuqe.
  • Instalimet për LED RGB mund të gjenden në eksperimentin 3 të Udhëzuesit të Eksperimentit SIK.

Hapi 5: Sensori i temperaturës

  • Sensori i temperaturës është pjesa kryesore e ruajtjes së energjisë në shtëpinë e zgjuar.
  • Banori është në gjendje të vendosë një temperaturë të dëshiruar për shtëpinë e tyre kur shtëpia e zgjuar është në përdorim.
  • Sensori i temperaturës është mënyra se si sistemi e di se sa larg është temperatura aktuale nga temperatura e dëshiruar.
  • Konfigurimi për sensorin e temperaturës mund të gjendet në eksperimentin 9 të Udhëzuesit të Eksperimentit SIK.

Hapi 6: DAGU Gearmotor

DAGU Gearmotor
DAGU Gearmotor
  • Motori lejon që shtëpia e zgjuar të rregullojë temperaturën në shtëpi bazuar në temperaturën e dëshiruar dhe leximet e sensorit të temperaturës.
  • Duke vepruar si njësi AC në shtëpi, motori do të rrotullohet me shpejtësi të ndryshme bazuar në atë se sa më e lartë është temperatura aktuale sesa temperatura e dëshiruar. Sa më i lartë diferenca, ai rrotullohet më shpejt.
  • Instalimet elektrike për motorin mund të gjenden në Udhëzuesin e Eksperimentit nën eksperimentin 11.

Hapi 7: Kodi

  • Kodi për shtëpinë e zgjuar përfshin ndërfaqe të shumta përdoruesi që i lejojnë banorit të kuptojë me lehtësi se si funksionon dhe të ndryshojë me lehtësi cilësimet.
  • Me sistemin e shtëpisë së zgjuar, banori do të marrë dhe do të dërgojë një alarm elektronik nëse sensori i lëvizjes fiket ndërsa ata janë larg.
  • Ndryshimi i vetëm që duhet bërë është futja e informacionit për emailin e dërguesit dhe adresën e emailit të marrësit.

pastroj a; s e qartë; m e qartë; clc; mbyll të gjitha; % Pastroni variablat arduino dhe servo në mënyrë që ato të mund të ripërkufizohen çdo herë në mënyrë që kodi të funksionojë në mënyrë efektive ("m qartë" është e nevojshme që një nga sythet while të funksionojë siç duhet) a = arduino (); % Vendosni ndryshoren arduino

s = servo (a, 'D6'); % Vendosni ndryshoren servo

% Filloni variablat e email -it për email paralajmërues të sistemit të sigurisë

email = {'fut adresën e marrësit}}; % Grumbull email -esh për të dërguar email -in e sigurisë

% Cilësimet e preferencës së email -it të nevojshme për të përdorur një Gmail për të dërguar postë nga

setpref ('Internet', 'E_mail', 'adresa e emailit të dërguesit');

setpref ("Internet", "SMTP_Username", "emri i përdoruesit të dërguesit");

setpref ('Internet', 'SMTP_Password', 'fjalëkalimi i dërguesit');

props = java.lang. System.getProposies;

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

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

% Ndryshoret e subjektit dhe tekstit të postës elektronike

subj = 'Paralajmërim ndërhyrës në shtëpinë tuaj';

text = 'Përshëndetje, ky është sistemi juaj i sigurisë Smart Home që ju informon se ka pasur lëvizje të zbuluar jashtë shtëpisë tuaj. Ne kemi marrë masat e nevojshme dhe kemi kontaktuar autoritetet për ju. Qëndroni të sigurt. ';

ndërsa e vërtetë

shpejtë = {'Fut temperaturën e dëshiruar të shtëpisë (midis 65F dhe 85F):'}; % Kërkesë për menunë e hyrjes së përdoruesit

dlgtitle = 'Zgjedhja e Temperaturës'; % Titulli për menunë hyrëse të përdoruesit

dims = [1 30]; % Dimensionet për menunë hyrëse të përdoruesit

definput = {'72'}; % Hyrja e paracaktuar që shfaqet kur menyja është hapur për herë të parë

tempsel_array = inputdlg (shpejtë, dlgtitle, dims, definput); % Menyja hyrëse e përdoruesit që shfaqet do të ruajë numrin e futur në një grup

nëse ~ është i zbrazët (tempsel_array) % Nëse grupi NUK është bosh

tempsel_char = cell2mat (tempsel_array); % Shndërroni grupin në një varg karakteresh

tempsel = str2double (tempsel_char); % Shndërroni vargun e karaktereve në numra

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Shkruani temperaturën e zgjedhur në kanalin tuaj ThingSpeak

pushim % Pushim nga laku while në mënyrë që menyja të mos shfaqet shumë herë

else % Nëse përdoruesi klikon anuloni në vend që të vendosni një temperaturë

msg1 = msgbox ('Nuk është zgjedhur temperatura, parazgjedhur në 85F', 'Paralajmërim!'); % Mesazhi i shfaqet përdoruesit pas klikimit të anulimit

prisni (msg1); % Prisni që kutia e mesazheve të mbyllet para se të vazhdoni

tempsel = 85; % Vendosni temperaturën në atë që u tha në kutinë e mesazheve

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Shkruani temperaturën e zgjedhur në kanalin tuaj ThingSpeak

pushim % Pushim nga laku while në mënyrë që menyja të mos shfaqet shumë herë

fund

fund

ndërsa e vërtetë

chID = 745517; % ID e kanalit ThingSpeak

writeKey = 'G9XOQTP8KOVSCT0N'; % Çelësi për qasje në ThingSpeak Channel

% Filloni sensorët për të marrë të dhëna

tempread = readVoltage (a, 'A3'); % Lexoni tensionin e sensorit të temperaturës

lightl1 = readVoltage (a, 'A2'); % Niveli i dritës për rezistencën e fotos që shkon në LED të kuq

lightl2 = readVoltage (a, 'A5'); % Niveli i dritës për rezistencën e fotos që shkon në sistemin e sigurisë

switchv = readVoltage (a, 'A0'); % Vlera për kalimin

% Shndërroni të dhënat e temperaturës nga tensioni në gradë Fahrenheit

tempC = (tempread - 0.5) * 100; % Shndërroni tensionin në temperaturë në Celsius

tempF = (tempC * 9/5) + 32; % Shndërroni temperaturën në Celsius në temperaturën në Fahrenheit

% Filloni numrat e kunjave për LED me shumë ngjyra

redp = 'D9'; % Pin për dritën e kuqe nga LED

greenp = 'D10'; % Pin për dritën jeshile nga LED

blup = 'D11'; % Pin për dritën blu nga LED

nëse tempsel <tempF % Nëse temperatura e zgjedhur është më e madhe se temperatura e dhomës

writePosition (s, 1); % Servo do të fillojë të lëvizë

pauzë (10) % Servo do të rrotullohet për 10 sekonda për të treguar që AC do të fiket pas një kohe të caktuar

writePosition (s, 0); % Fikni ventilatorin me qëllim të vazhdimit të kodit pa ndezur tifozin

tempsel = 150; % Ndryshoni vlerën e temperaturës për të dalë nga lak pasi ventilatori të jetë fikur, përsëri vetëm me qëllim të vazhdimit të kodit

fund

nëse lightl1 <= 3 % Nëse fotorerezistori i parë zbulon një nivel të ulët të dritës

writeDigitalPin (a, 'A1', 1); % Ndizni LED -in e kuq që përfaqëson dritat e jashtme

else % Nëse niveli i dritës është përsëri i lartë

writeDigitalPin (a, 'A1', 0); % Fikni LED -in e kuq kur niveli i dritës të jetë përsëri mjaft i lartë

fund

nëse switchv> 3 % Nëse çelësi është i ndezur

A = ekzistoj ('m', 'var'); % Kontrolloni ekzistencën e ndryshores 'm', kjo do të inicializohet për lakin while dhe do të lejojë që ajo të prishet kur zgjidhet një artikull menuje (kjo është arsyeja pse m e qartë duhet të bëhet në fillim të kodit)

ndërsa A == 0 % Loop do të ekzekutohet derisa të ekzistojë variabli 'm'

menutext = 'Në cilën mënyrë sigurie dëshironi të hyni?'; % Tekst për menynë kërcyese të sigurisë

zgjedhje = {'Në shtëpi', 'Larg'}; % Zgjedhje për menunë kërcyese të sigurisë

m = menu (menutext, zgjedhje); % Menyja kërcyese për mënyrat e sistemit të sigurisë

break % Sigurohet që laku while të jetë thyer kështu që menyja nuk do të shfaqet shumë herë

fund

nëse m == 1 % Nëse zgjidhet mënyra 'Home'

writeDigitalPin (a, bluep, 1); % Ndizni vetëm dritën blu në LED që ndryshon ngjyrën

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % Nëse zgjidhet mënyra "Larg"

writeDigitalPin (a, bluep, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); % Ndizni vetëm dritën jeshile në LED që ndryshon ngjyrën

nëse drita2 <= 3 % Nëse niveli i dritës në rezistencën e dytë fotografike është i ulët, që përfaqëson lëvizjen e zbuluar nga sistemi i sigurisë

sendmail (email, subj, tekst); % Dërgo një email me vetitë e përcaktuara më parë të emailit writeDigitalPin (a, greenp, 0); % Ngjyra e kuqe e ndezjes ndizet dhe fiket 2 herë

writeDigitalPin (a, redp, 1);

pauzë (0.3)

writeDigitalPin (a, redp, 0);

pauzë (0.3)

writeDigitalPin (a, redp, 1);

pauzë (0.3)

writeDigitalPin (a, redp, 0);

pauzë (0.3)

writeDigitalPin (a, redp, 1); % Përfundoni me të kuqe të ngurtë pas ndezjes për të treguar se ka lëvizje derisa niveli i dritës të kthehet përsëri

msg2 = msgbox ('Ndërhyrës i zbuluar nga sistemi i sigurisë, një email u është dërguar pronarëve të shtëpive për t'i informuar ata.', 'KUJDES!'); % Kutia e mesazheve për të informuar përdoruesin për lëvizjen dhe për të informuar në lidhje me emailin e dërguar waitfor (msg2) % Prisni që kutia e mesazheve të mbyllet para se të vazhdoni

tjeter

writeDigitalPin (a, greenp, 1); % Pasi të jetë rritur niveli i dritës përsëri do të kthehet në të gjelbër

fund

fund

elseif switchv <3.3 % Nëse çelësi është i fikur

writeDigitalPin (a, bluep, 0); % Fikni LED plotësisht për të treguar që sistemi i sigurisë është i fikur

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

fund

fund

Recommended: