INHOUDSOPGAWE:

EF230 Smart Home -projek: 7 stappe
EF230 Smart Home -projek: 7 stappe

Video: EF230 Smart Home -projek: 7 stappe

Video: EF230 Smart Home -projek: 7 stappe
Video: PS1-PS8 2024, November
Anonim
EF230 Smart Home -projek
EF230 Smart Home -projek

Onderdele en materiaal benodig:

  • 1 Arduino MKR 1000
  • 3 Broodplanke
  • 2 mini fotoselle
  • 1 NPN -transistors
  • 1 mini -skakelaar
  • 1 LED - RGB (4 tande)
  • 1 LED (kleur van u keuse)
  • 1 Diode 1N4148
  • 1 10K Ohm weerstande
  • Weerstand van 5 100 Ohm
  • 1 Temperatuursensor TMP36
  • 1 DAGU 48: 1 Verhouding ratmotor
  • 25 Springdrade
  • USB koord
  • MATLAB -program
  • SIK -eksperimentgids vir die Arduino 101/Genuino 101 -bord - skakel SIK -eksperimentgids

Hierdie projek beskryf die konseptuele ontwerp van 'n slimhuisstelsel wat data sal gebruik om huiseienaars te help om hul energieverbruik en sekuriteit te optimaliseer. Dit bevat 'n ligsensor om snags buiteligte aan te skakel, 'n ligsensor vir sekuriteit, en 'n temperatuursensor en waaier vir binnentemperatuurbeheer.

Stap 1: Liggevoelige LED

  • Die liggevoelige LED -opstelling is bedoel om die buiteligte by 'n huis wat snags aanskyn, voor te stel.
  • As die minifotosel 'n verminderde hoeveelheid lig voel, sal die LED brand.
  • Vir 'n slim huis het dit energie- en sekuriteitsimplikasies. Dit bespaar energie deur die ligte gedurende die dag uit te laat en verhoogde veiligheid in die nag.
  • Die presiese bedrading en opset vir hierdie deel van die projek kan gevind word onder eksperiment 7 in die SIK -eksperimentgids.

Stap 2: Mini -kragskakelaar

  • Die skakelaar is die eerste stap in die veiligheidsproses van die slimhuis.
  • As dit aangeskakel is, sal die skakelaar 'n reaksie begin wat die gebruiker vra of hy 'tuis' of 'weg' wil afskakel.
  • As die 'tuis' -modus gekies word, word die sekuriteit as ontwapen beskou, maar as u' weg '-modus kies, word die sekuriteitstelsel geaktiveer.
  • Die bedrading vir hierdie gedeelte van die projek kan gevind word onder eksperiment 6 in die eksperimentgids. Vir die doeleindes van die slimhuis hoef die LED's en hul verbindingsdrade in eksperiment 6 nie ingesluit te word nie.

Stap 3: Tweede fotosel

Tweede fotosel
Tweede fotosel
  • Die tweede fotosel dien as bewegingsensor vir die sekuriteitstelsel van die slimhuis.
  • Die sensor word slegs gebruik as die stelsel in die 'Weg' -modus is, soos beskryf in die vorige stap.
  • As die fotosel 'n afname in die hoeveelheid lig ondervind, herken dit dit as beweging binne -in die huis.
  • Die opset vir hierdie deel van die projek kan gevind word onder eksperiment 7 in die SIK -eksperimentgids. Slegs die fotosel en sy verbindingsdrade moet egter by die bedrading ingesluit word.

Stap 4: RGB LED

  • Die RGB LED word saam met die mini -skakelaar en die tweede fotosel vir die sekuriteitstelsel van die slimhuis gebruik.
  • Die drie verskillende kleure word gebruik as aanwysers vir die slimhuisinwoner.
  • As die stelsel in die 'huis' -modus geplaas word, word die LED blou. As die stelsel in die 'Weg' -modus geplaas word, word die LED groen. As die fotosel wat as bewegingsensor gebruik word, gestruikel word, flikker die lig rooi.
  • Die bedrading vir die RGB LED kan gevind word in eksperiment 3 van die SIK -eksperimentgids.

Stap 5: Temperatuursensor

  • Die temperatuursensor is 'n belangrike deel van die besparing van energie in die slimhuis.
  • Die inwoner kan die gewenste temperatuur vir hul huis invoer wanneer die slimhuis gebruik word.
  • Temperatuursensor is hoe die stelsel weet hoe ver die werklike temperatuur van die gewenste temperatuur is.
  • Die opstelling van die temperatuursensor kan gevind word in eksperiment 9 van die SIK -eksperimentgids.

Stap 6: DAGU -ratmotor

DAGU ratmotor
DAGU ratmotor
  • Met die motor kan die slimhuis die temperatuur in die huis reguleer op grond van die gewenste temperatuur en die lesings van die temperatuursensor.
  • As 'n AC -eenheid in die huis, sal die motor teen verskillende snelhede draai, gebaseer op hoeveel hoër die werklike temperatuur is as die gewenste temperatuur. Hoe groter die verskil, hoe vinniger draai die motor.
  • Die bedrading vir die motor kan gevind word in die eksperimentgids onder eksperiment 11.

Stap 7: Kode

  • Die kode vir die slimhuis bevat veelvuldige gebruikerskoppelvlakke waarmee die inwoner maklik kan verstaan hoe dit werk en die instellings maklik kan verander.
  • Met die slimhuisstelsel sal die inwoner 'n waarskuwing ontvang en e -pos stuur as die bewegingsensor afgeskakel word terwyl hulle weg is.
  • Die enigste verandering wat aangebring moet word, is om die inligting vir die e -pos van die sender en die e -posadres van die ontvanger in te voeg.

duidelik a; duidelik s; duidelik m; clc; sluit almal; Maak arduino- en servo -veranderlikes skoon, sodat hulle elke keer herdefinieer kan word, sodat die kode effektief sal werk ('clear m' is nodig vir een van die terwyl die lusse behoorlik funksioneer) a = arduino (); % Stel die arduino -veranderlike in

s = servo (a, 'D6'); % Stel die servo -veranderlike in

% Inisialiseer e -pos veranderlikes vir e -pos waarskuwings e -pos

e -posse = {'voeg ontvangeradres in'}; Versameling e -posse om die e -pos na sekuriteit te stuur

% Instellings vir e -posvoorkeure wat nodig is vir die gebruik van 'n Gmail om e -pos vanaf te stuur

setpref ('Internet', 'E_mail', 'sender se e -posadres');

setpref ('Internet', 'SMTP_Username', 'sender's username');

setpref ('Internet', 'SMTP_Password', 'sender se wagwoord');

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

% E -pos onderwerp en teks veranderlikes

subj = 'Indringerwaarskuwing by u huis';

text = 'Hallo, dit is u Smart Home -sekuriteitstelsel wat u inlig dat daar beweging buite u huis opgemerk is. Ons het die nodige maatreëls getref en vir u die owerhede gekontak. Bly veilig.';

terwyl dit waar is

prompt = {'Voer die gewenste huistemperatuur in (tussen 65F en 85F):'}; % Vra vir gebruikersinvoer -kieslys

dlgtitle = 'Temperatuurkeuse'; % Titel vir gebruikersinvoer -kieslys

verdof = [1 30]; % Afmetings vir gebruikersinvoer -kieslys

definput = {'72'}; % Standaardinvoer wat verskyn wanneer die spyskaart die eerste keer oopgemaak word

tempsel_array = inputdlg (prompt, dlgtitle, dim, definput); Opspring -gebruikersinvoer -kieslys wat die ingevoerde nommer in 'n skikking sal stoor

as ~ isempty (tempsel_array) % As die skikking NIE leeg is nie

tempsel_char = cell2mat (tempsel_array); Skakel die skikking om na 'n tekenreeks

tempsel = str2double (tempsel_char); Skakel die tekenreeks om na getalle

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Skryf die gekose temperatuur na u ThingSpeak -kanaal

break % Breek weg van die while lus sodat die spyskaart nie meer as een keer verskyn nie

anders % As die gebruiker klik, kanselleer in plaas daarvan om 'n temperatuur in te voer

msg1 = msgbox ('Geen temperatuur gekies nie, standaard 85F', 'Waarskuwing!'); % Boodskap word aan die gebruiker gewys nadat u op Annuleer geklik het

wag vir (msg1); % Wag totdat die boodskapkassie toemaak voordat u verder gaan

tempsel = 85; Stel die temperatuur op wat in die boodskapkassie staan

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Skryf die gekose temperatuur na u ThingSpeak -kanaal

break % Breek weg van die while lus sodat die spyskaart nie meer as een keer verskyn nie

einde

einde

terwyl dit waar is

chID = 745517; % ThingSpeak -kanaal -ID

writeKey = 'G9XOQTP8KOVSCT0N'; % Sleutel vir toegang tot die ThingSpeak -kanaal

% Initialiseer sensors om data te gaan haal

tempread = readVoltage (a, 'A3'); % Lees die spanning van die temperatuursensor

lightl1 = readVoltage (a, 'A2'); % Ligvlak vir die fotoresistor wat na die rooi LED gaan

lightl2 = readVoltage (a, 'A5'); % Ligvlak vir die fotoresistor wat na die sekuriteitstelsel gaan

switchv = readVoltage (a, 'A0'); % Waarde vir die skakelaar

Skakel die temperatuurdata om van spanning na grade Fahrenheit

tempC = (tempread - 0.5) * 100; % Skakel spanning na temperatuur in Celsius om

tempF = (tempC * 9/5) + 32; Skakel temperatuur in Celsius om na temperatuur in Fahrenheit

% Begin die speldnommers vir die veelkleurige LED

redp = 'D9'; % Speld vir rooi lig van LED

greenp = 'D10'; % Speld vir groen lig van LED

bluep = 'D11'; % Speld vir blou lig van LED

as tempsel <tempF % As die gekose temperatuur groter is as die kamertemperatuur

skryfPosisie (s, 1); % Servo sal begin beweeg

pouse (10) % Servo sal 10 sekondes aanhou draai om aan te dui dat die wisselstroom na 'n bepaalde tyd sou uitskakel

skryfPosisie (s, 0); % Skakel waaier af om kode voort te sit sonder waaier aan

tempsel = 150; Verander die temperatuurwaarde om uit die lus te breek nadat die waaier afgeskakel is, weer net om die kode voort te sit

einde

if lightl1 <= 3 % As die eerste fotoresistor 'n lae ligvlak waarneem

writeDigitalPin (a, 'A1', 1); % Skakel rooi LED aan wat buiteligte voorstel

anders % As die ligvlak weer hoog is

writeDigitalPin (a, 'A1', 0); % Skakel rooi LED uit as die ligvlak weer hoog genoeg is

einde

as switchv> 3 % As die skakelaar aangeskakel is

A = bestaan ('m', 'var'); % Kontroleer of die veranderlike 'm' bestaan, dit sal vir die while lus inisialiseer en dit kan laat breek as 'n menu -item gekies word (daarom moet duidelike m aan die begin van die kode gedoen word)

terwyl A == 0 % lus sal uitgevoer word totdat veranderlike 'm' bestaan

menutext = 'Watter sekuriteitsmodus wil u binnegaan?'; % Teks vir die pop -up menu vir sekuriteit

keuses = {'Tuis', 'Weg'}; % Keuses vir die pop -up menu vir sekuriteit

m = spyskaart (menuteks, keuses); Opspringkieslys vir sekuriteitstelselmodusse

break % Verseker dat die while -lus gebreek word, sodat die spyskaart nie meer as een keer verskyn nie

einde

as m == 1 % As die 'tuis' -modus gekies is

writeDigitalPin (a, bluep, 1); Skakel net blou lig aan in die kleurveranderende LED

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % As 'Weg' -modus gekies is

writeDigitalPin (a, bluep, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); Skakel net die groen lig in die kleurveranderende LED aan

as lightl2 <= 3 % As die ligvlak in die tweede fotoresistor laag is, verteenwoordig dit beweging wat deur die sekuriteitstelsel opgespoor word

sendmail (e -pos, subj, teks); % Stuur 'n e -pos met die voorheen gedefinieerde e -pos eienskappe writeDigitalPin (a, greenp, 0); % Flits rooi kleur 2 keer aan en af

writeDigitalPin (a, redp, 1);

pouse (0.3)

writeDigitalPin (a, redp, 0);

pouse (0.3)

writeDigitalPin (a, redp, 1);

pouse (0.3)

writeDigitalPin (a, redp, 0);

pouse (0.3)

writeDigitalPin (a, redp, 1); % Voltooi met soliede rooi nadat dit geflits is om aan te toon dat daar beweging is totdat die ligvlak weer styg

msg2 = msgbox ('Inbreker opgespoor deur die sekuriteitstelsel, 'n e -pos is aan die huiseienaars gestuur om hulle in kennis te stel.', 'WAARSKUWING!'); % Boodskapsboks om die gebruiker in kennis te stel van beweging en om in te lig oor die e -pos wat gestuur is (msg2) % Wag totdat die boodskapkassie toemaak voordat u verder gaan

anders

writeDigitalPin (a, greenp, 1); % Sodra die ligvlak weer gestyg het, word dit weer groen

einde

einde

elseif switchv <3.3 % As die skakelaar afgeskakel is

writeDigitalPin (a, bluep, 0); % Skakel die LED heeltemal uit om te wys dat die sekuriteitstelsel af is

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

einde

einde

Aanbeveel: