Indholdsfortegnelse:

EF230 Smart Home -projekt: 7 trin
EF230 Smart Home -projekt: 7 trin

Video: EF230 Smart Home -projekt: 7 trin

Video: EF230 Smart Home -projekt: 7 trin
Video: SSH Website Tutorial EF230 2024, Juli
Anonim
EF230 Smart Home -projekt
EF230 Smart Home -projekt

Nødvendige dele og materialer:

  • 1 Arduino MKR 1000
  • 3 brødbrætter
  • 2 mini fotoceller
  • 1 NPN -transistorer
  • 1 mini afbryder
  • 1 LED - RGB (4 ben)
  • 1 LED (farve efter eget valg)
  • 1 Diode 1N4148
  • 1 10K Ohm modstande
  • 5 100 Ohm modstand
  • 1 Temperatursensor TMP36
  • 1 DAGU 48: 1 Ratio Gearmotor
  • 25 Jumper Wires
  • USB -ledning
  • MATLAB -program
  • SIK Experiment Guide til Arduino 101/Genuino 101 Board - SIK Experiment Guide Link

Dette projekt beskriver det konceptuelle design af et smart home system, der ville bruge data til at hjælpe husejere med at optimere deres energiforbrug og sikkerhed. Det inkluderer en lyssensor til at tænde udendørs lys om natten, en lyssensor til sikkerhed og en temperatursensor og blæser til indendørs temperaturkontrol.

Trin 1: Lysfølsom LED

  • Den lysfølsomme LED -opsætning er beregnet til at repræsentere udendørs lysene i et hus, der tændes om natten.
  • Når mini -fotocellen registrerer en reduceret mængde lys, lyser LED'en.
  • For et smart hjem har dette konsekvenser for energi og sikkerhed. Det vil spare energi ved at lade lyset være slukket i løbet af dagen og give øget sikkerhed om natten.
  • Den nøjagtige ledning og opsætning for denne del af projektet findes under eksperiment 7 i SIK Experiment Guide.

Trin 2: Mini -afbryder

  • Omskifteren er det første trin i sikkerhedsprocessen i det smarte hjem.
  • Når den er tændt, starter kontakten et svar, der spørger brugeren, om de ønsker at gå i tilstanden 'Hjem' eller 'væk'.
  • Hvis tilstanden 'Hjem' er valgt, betragtes sikkerheden som deaktiveret, men hvis du vælger 'væk', aktiveres sikkerhedssystemet.
  • Ledningerne til denne del af projektet kan findes under eksperiment 6 i eksperimentguiden. I forbindelse med det smarte hjem behøver LED'erne og deres forbindelsestråde, der findes i forsøg 6, ikke at være inkluderet.

Trin 3: Anden fotocelle

Anden fotocelle
Anden fotocelle
  • Den anden fotocelle tjener som en bevægelsessensor til det intelligente hjemmes sikkerhedssystem.
  • Sensoren bruges kun, når systemet sættes i 'væk' -tilstand som beskrevet i det foregående trin.
  • Hvis fotocellen oplever et fald i mængden af lys, den modtager, genkender den dette som bevægelse inde i huset.
  • Opsætningen til denne del af projektet findes under eksperiment 7 i SIK Experiment Guide. Det er dog kun fotocellen og dens forbindelsestråde, der skal inkluderes i ledningerne.

Trin 4: RGB LED

  • RGB -LED'en bruges sammen med mini -afbryderen og den anden fotocelle til sikkerhedssystemet i det smarte hjem.
  • De tre forskellige farver bruges som indikatorer for smart home -beboeren.
  • Når systemet er placeret i 'Hjem' -tilstand, bliver LED'en blå. Når systemet er placeret i 'væk' -tilstand, lyser LED'en grønt. Når fotocellen, der bruges som en bevægelsessensor, udløses, blinker lyset rødt.
  • Ledningerne til RGB LED'en findes i eksperiment 3 i SIK Experiment Guide.

Trin 5: Temperatursensor

  • Temperatursensoren er en vigtig del af energibesparelsen i det smarte hjem.
  • Beboeren kan indtaste en ønsket temperatur for deres hjem, når det smarte hjem er i brug.
  • Temperatursensor er, hvordan systemet ved, hvor langt den faktiske temperatur er fra den ønskede temperatur.
  • Opsætning til temperatursensoren findes i forsøg 9 i SIK -eksperimentguiden.

Trin 6: DAGU Gearmotor

DAGU Gearmotor
DAGU Gearmotor
  • Motoren gør det muligt for det smarte hjem at regulere temperaturen i huset baseret på den ønskede temperatur og målinger af temperatursensoren.
  • Som AC -enhed i hjemmet vil motoren dreje med forskellige hastigheder baseret på, hvor meget den faktiske temperatur er højere end den ønskede temperatur. Jo større forskel, jo hurtigere snurrer motoren.
  • Ledningerne til motoren findes i eksperimentguiden under forsøg 11.

Trin 7: Kode

  • Koden til det smarte hjem indeholder flere brugergrænseflader, der gør det muligt for beboeren let at forstå, hvordan det fungerer og nemt ændre indstillingerne.
  • Med smart home -systemet modtager beboeren en e -mail -advarsel, hvis bevægelsessensoren er slukket, mens de er væk.
  • Den eneste ændring, der skal foretages, er at indsætte oplysningerne til afsenderens e -mail og modtagerens e -mail -adresse.

klar a; klare s; klart m; clc; luk alle; % Ryd arduino og servo variabler, så de kan redefineres hver gang, så koden kører effektivt ("clear m" er nødvendig for at en af mens loopene skal fungere korrekt) a = arduino (); % Indstil arduino -variablen

s = servo (a, 'D6'); % Indstil servovariablen

% Initialiser e -mailvariabler til advarselsmail til sikkerhedssystem

emails = {'indsæt modtageradresse'}; % Array af e -mails for at få sikkerheds -e -mail sendt til

% Indstillinger for e -mailpræference er nødvendige for at bruge en Gmail til at sende e -mail fra

setpref ('Internet', 'E_mail', 'afsenders e -mail -adresse');

setpref ('Internet', 'SMTP_Username', 'afsenders brugernavn');

setpref ('Internet', 'SMTP_Password', 'afsenders adgangskode');

rekvisitter = 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 -mail -emne- og tekstvariabler

subj = 'Indbrudsadvarsel hjemme hos dig';

text = 'Hej, dette er dit Smart Home -sikkerhedssystem, der informerer dig om, at der er blevet registreret bevægelse uden for dit hjem. Vi har truffet de nødvendige foranstaltninger og kontaktet myndigheder for dig. Pas på dig selv.';

mens det er sandt

prompt = {'Indtast ønsket hjemmetemperatur (mellem 65F og 85F):'}; % Spørg om brugerindtastningsmenu

dlgtitle = 'Temperaturvalg'; % Titel for brugerindtastningsmenu

dæmper = [1 30]; % Dimensioner for brugerindtastningsmenu

definput = {'72'}; % Standardindgang, der vises, når menuen først åbnes

tempsel_array = inputdlg (prompt, dlgtitle, dims, definput); % Popup -brugerindtastningsmenu, der gemmer det indtastede nummer i et array

hvis ~ isempty (tempsel_array) % Hvis matrixen IKKE er tom

tempsel_char = cell2mat (tempsel_array); % Konverter arrayet til en tegnstreng

tempsel = str2double (tempsel_char); % Konverter tegnstrengen til tal

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Skriv den valgte temperatur til din ThingSpeak -kanal

break % Break from the while loop, så menuen ikke dukker op flere gange

ellers % Hvis brugeren klikker, annuller i stedet for at indtaste en temperatur

msg1 = msgbox ('Ingen temperatur valgt, som standard 85F', 'Advarsel!'); % Besked vises til bruger efter klik på annuller

waitfor (msg1); % Vent på, at meddelelsesboksen lukkes, før du fortsætter

tempsel = 85; % Indstil temperaturen til det, der stod i meddelelsesboksen

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Skriv den valgte temperatur til din ThingSpeak -kanal

break % Break from the while loop, så menuen ikke dukker op flere gange

ende

ende

mens det er sandt

chID = 745517; % ThingSpeak -kanal -id

writeKey = 'G9XOQTP8KOVSCT0N'; % Nøgle til adgang til ThingSpeak -kanalen

% Initialiser sensorer for at hente data

tempread = readVoltage (a, 'A3'); % Læs spændingen på temperatursensoren

lightl1 = readVoltage (a, 'A2'); % Lysniveau for fotoresistoren, der går til den røde LED

lightl2 = readVoltage (a, 'A5'); % Lysniveau for fotoresistoren, der går til sikkerhedssystemet

switchv = readVoltage (a, 'A0'); % Værdi for kontakten

% Konverter temperaturdata fra spænding til grader Fahrenheit

tempC = (tempread - 0,5) * 100; % Konverter spænding til temperatur i Celsius

tempF = (tempC * 9/5) + 32; % Konverter temperaturen i Celsius til temperaturen i Fahrenheit

% Initialiser pin -numrene for flerfarvet LED

redp = 'D9'; % Pin til rødt lys fra LED

greenp = 'D10'; % Pin til grønt lys fra LED

bluep = 'D11'; % Pin til blåt lys fra LED

hvis tempsel <tempF % Hvis den valgte temperatur er større end rumtemperaturen

writePosition (s, 1); % Servo begynder at bevæge sig

pause (10) % Servo vil blive ved med at dreje i 10 sekunder for at repræsentere, at vekselstrømmen ville slukke efter et bestemt tidsrum

writePosition (s, 0); % Sluk blæseren for at fortsætte koden uden ventilator tændt

tempsel = 150; % Skift temperaturværdien for at bryde ud af sløjfen, efter at blæseren er slukket, igen bare med det formål at fortsætte koden

ende

hvis lightl1 <= 3 % Hvis den første fotoresistor registrerer et lavt lysniveau

writeDigitalPin (a, 'A1', 1); % Tænd for rød LED, der repræsenterer udendørs lys

ellers % Hvis lysniveauet er højt igen

writeDigitalPin (a, 'A1', 0); % Sluk for den røde LED, når lysniveauet er højt nok igen

ende

hvis switchv> 3 % Hvis kontakten er tændt

A = findes ('m', 'var'); % Kontroller, om der er variabel 'm', dette initialiseres for mens loop og tillader, at det brydes, når et menupunkt vælges (det er derfor, at klart m skal udføres i starten af koden)

mens A == 0 % Loop udføres, indtil variablen 'm' eksisterer

menutext = 'Hvilken sikkerhedstilstand vil du gerne gå ind?'; % Tekst til popup -menuen til sikkerhed

choice = {'Home', 'Away'}; % Valg til popup -menuen til sikkerhed

m = menu (menutekst, valgmuligheder); % Popup -menu til sikkerhedssystemtilstande

break % Sikrer, at mens loop er brudt, så menuen ikke dukker op flere gange

ende

hvis m == 1 % Hvis tilstanden 'Hjem' er valgt

writeDigitalPin (a, bluep, 1); % Tænd kun for blåt lys i den farveændrende LED

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % Hvis tilstanden 'væk' er valgt

writeDigitalPin (a, bluep, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); % Tænd kun for det grønne lys i den farveændrende LED

hvis lightl2 <= 3 % Hvis lysniveauet i den anden fotoresistor er lavt, repræsenterer bevægelse detekteret af sikkerhedssystemet

sendmail (e -mails, subj, tekst); % Send en e -mail med de tidligere definerede e -mail -egenskaber writeDigitalPin (a, greenp, 0); % Blinker rød farve 2 gange

writeDigitalPin (a, redp, 1);

pause (0,3)

writeDigitalPin (a, redp, 0);

pause (0,3)

writeDigitalPin (a, redp, 1);

pause (0,3)

writeDigitalPin (a, redp, 0);

pause (0,3)

writeDigitalPin (a, redp, 1); % Afslut med fast rød efter at have blinket for at vise, at der er bevægelse, indtil lysniveauet går op igen

msg2 = msgbox ('Indbrud opdaget af sikkerhedssystemet, en e -mail er sendt til husejerne for at informere dem.', 'ADVARSEL!'); % Beskedboks for at informere brugeren om bevægelse og for at informere om den e -mail, der er sendt til (msg2) % Vent på, at meddelelsesboksen lukkes, før du fortsætter

andet

writeDigitalPin (a, greenp, 1); % Når lysniveauet er steget igen, skifter det tilbage til grønt

ende

ende

elseif switchv <3,3 % Hvis kontakten er slukket

writeDigitalPin (a, bluep, 0); % Sluk lysdioden helt for at vise, at sikkerhedssystemet er slukket

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

ende

ende

Anbefalede: