Innehållsförteckning:

EF230 Smart Home Project: 7 steg
EF230 Smart Home Project: 7 steg

Video: EF230 Smart Home Project: 7 steg

Video: EF230 Smart Home Project: 7 steg
Video: EF 230 Roomba Project 2024, Juli
Anonim
EF230 Smart Home Project
EF230 Smart Home Project

Nödvändiga delar och material:

  • 1 Arduino MKR 1000
  • 3 brödbrädor
  • 2 minifotoceller
  • 1 NPN -transistorer
  • 1 mini strömbrytare
  • 1 LED - RGB (4 stift)
  • 1 LED (valfri färg)
  • 1 diod 1N4148
  • 1 10K Ohm motstånd
  • 5 100 Ohm motstånd
  • 1 temperatursensor TMP36
  • 1 DAGU 48: 1 Ratio Gearmotor
  • 25 hopptrådar
  • USB -sladd
  • MATLAB -program
  • SIK Experiment Guide för Arduino 101/Genuino 101 Board - SIK Experiment Guide Link

Detta projekt beskriver den konceptuella utformningen av ett smart hemsystem som skulle använda data för att hjälpa husägare att optimera sin energianvändning och säkerhet. Den innehåller en ljussensor för att tända utomhusbelysning på natten, en ljussensor för säkerhet och en temperatursensor och fläkt för temperaturkontroll inomhus.

Steg 1: Ljuskänslig LED

  • Den ljuskänsliga LED -inställningen är avsedd att representera utomhusbelysningen i ett hus som tänds på natten.
  • När minifotocellen känner av en minskad mängd ljus tänds lysdioden.
  • För ett smart hem har detta konsekvenser för energi och säkerhet. Det sparar energi genom att släcka lamporna under dagen och ger ökad säkerhet på natten.
  • Den exakta ledningen och inställningen för denna del av projektet finns under experiment 7 i SIK Experiment Guide.

Steg 2: Mini -strömbrytare

  • Växeln är det första steget i säkerhetsprocessen för det smarta hemmet.
  • När den är påslagen kommer omkopplaren att initiera ett svar som frågar användaren om de vill gå till "Hem" -läge eller "Borta" -läge.
  • Om "Hem" -läget är valt anses säkerheten vara avstängd, men att välja "Borta" -läget aktiverar säkerhetssystemet.
  • Ledningarna för denna del av projektet finns under experiment 6 i experimentguiden. För smarta hem behöver lysdioderna och deras anslutningskablar som finns i experiment 6 inte inkluderas.

Steg 3: Andra fotocellen

Andra fotocellen
Andra fotocellen
  • Den andra fotocellen fungerar som en rörelsesensor för smarta hemmets säkerhetssystem.
  • Sensorn används endast när systemet sätts i "Borta" -läge enligt beskrivningen i föregående steg.
  • Om fotocellen upplever en minskning av mängden ljus som den tar emot, känner den igen det som rörelse inuti huset.
  • Upplägget för denna del av projektet finns under experiment 7 i SIK Experiment Guide. Endast fotocellen och dess anslutningskablar behöver dock ingå i ledningarna.

Steg 4: RGB LED

  • RGB -lysdioden används i kombination med mini -strömbrytaren och den andra fotocellen för det smarta hemmets säkerhetssystem.
  • De tre olika färgerna används som indikatorer för det smarta hemmet.
  • När systemet är i hemläge blir lysdioden blå. När systemet är placerat i "Borta" -läge lyser lysdioden grönt. När fotocellen som används som rörelsesensor utlöses blinkar lampan rött.
  • Ledningarna för RGB LED finns i experiment 3 i SIK Experiment Guide.

Steg 5: Temperatursensor

  • Temperatursensorn är en viktig del av energibesparingen i det smarta hemmet.
  • Den boende kan ange önskad temperatur för sitt hem när det smarta hemmet används.
  • Temperaturgivare är hur systemet vet hur långt den verkliga temperaturen är från önskad temperatur.
  • Inställning för temperatursensorn finns i experiment 9 i SIK Experiment Guide.

Steg 6: DAGU -växelmotor

DAGU Växelmotor
DAGU Växelmotor
  • Motorn tillåter det smarta hemmet att reglera temperaturen i huset baserat på önskad temperatur och avläsningar av temperaturgivaren.
  • Motorn fungerar som AC -enhet i hemmet och kommer att snurra i olika hastigheter baserat på hur mycket högre den verkliga temperaturen är än önskad temperatur. Ju högre skillnad, desto snabbare snurrar motorn.
  • Kablarna till motorn finns i experimentguiden under experiment 11.

Steg 7: Kod

  • Koden för det smarta hemmet innehåller flera användargränssnitt som gör det möjligt för den boende att enkelt förstå hur det fungerar och enkelt ändra inställningarna.
  • Med det smarta hemmasystemet får den boende en varning via e -post om rörelsesensorn är avstängd medan de är borta.
  • Den enda ändringen som behöver göras är att infoga informationen för avsändarens e -post och mottagarens e -postadress.

rensa a; klara s; klart m; clc; Stäng alla; % Rensa arduino- och servovariabler så att de kan omdefinieras varje gång så att koden körs effektivt ("clear m" är nödvändigt för att en av looparna ska fungera korrekt) a = arduino (); % Ställ in arduino -variabeln

s = servo (a, 'D6'); % Ställ in servovariabel

% Initiera e -postvariabler för varningsmeddelanden från säkerhetssystemet

e -postmeddelanden = {'infoga mottagaradress'}; % Array av e -postmeddelanden för att få säkerhetsmeddelandet skickat till

% Inställningar för e -postinställningar som krävs för att använda ett Gmail att skicka e -post från

setpref ('Internet', 'E_mail', 'avsändarens e -postadress');

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

setpref ('Internet', 'SMTP_Password', 'avsändarens lösenord');

rekvisita = 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 -postämne och textvariabler

subj = 'Intruder Alert at Your Home';

text = 'Hej! Detta är ditt Smart Home -säkerhetssystem som informerar dig om att det har upptäckts rörelse utanför ditt hem. Vi har vidtagit nödvändiga åtgärder och kontaktat myndigheter för dig. Var försiktig.';

medan det är sant

prompt = {'Ange önskad hemtemperatur (mellan 65F och 85F):'}; % Fråga om användarinmatningsmeny

dlgtitle = 'Temperaturval'; % Titel för användarinmatningsmeny

dims = [1 30]; % Mått för användarinmatningsmeny

definput = {'72'}; % Standardinmatning som visas när menyn öppnas första gången

tempsel_array = inputdlg (prompt, dlgtitle, dims, definput); % Popup -användarinmatningsmeny som sparar det inmatade numret i en matris

if ~ isempty (tempsel_array) % Om matrisen INTE är tom

tempsel_char = cell2mat (tempsel_array); % Konvertera matrisen till en teckensträng

tempsel = str2double (tempsel_char); % Konvertera teckensträngen till siffror

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Skriv den valda temperaturen till din ThingSpeak -kanal

break % Bryt dig från medan loop så att menyn inte dyker upp flera gånger

annars % Om användaren klickar avbryt istället för att ange en temperatur

msg1 = msgbox ('Ingen temperatur vald, som standard 85F', 'Varning!'); % Meddelande visas för användaren efter att ha klickat på Avbryt

vänta på (msg1); % Vänta tills meddelandefältet stängs innan du fortsätter

tempsel = 85; % Ställ in temperaturen på det som stod i meddelanderutan

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Skriv den valda temperaturen till din ThingSpeak -kanal

break % Bryt dig från medan loop så att menyn inte dyker upp flera gånger

slutet

slutet

medan det är sant

chID = 745517; % ThingSpeak -kanal -ID

writeKey = 'G9XOQTP8KOVSCT0N'; % Nyckel för åtkomst till ThingSpeak -kanalen

% Initiera sensorer för att hämta data

tempread = readVoltage (a, 'A3'); % Läs av temperaturgivarens spänning

lightl1 = readVoltage (a, 'A2'); % Ljusnivå för fotoresistorn som går till den röda lysdioden

lightl2 = readVoltage (a, 'A5'); % Ljusnivå för fotoresistorn som går till säkerhetssystemet

switchv = readVoltage (a, 'A0'); % Värde för omkopplaren

% Konvertera temperaturdata från spänning till grader Fahrenheit

tempC = (tempread - 0,5) * 100; % Konvertera spänning till temperatur i Celsius

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

% Initiera stiftnumren för flerfärgad LED

redp = 'D9'; % Pin för rött ljus från LED

greenp = 'D10'; % Pin för grönt ljus från LED

bluep = 'D11'; % Pin för blått ljus från LED

om tempsel <tempF % Om den valda temperaturen är högre än rumstemperaturen

writePosition (s, 1); % Servo börjar flytta

paus (10) % Servo fortsätter att snurra i 10 sekunder för att representera att AC: n stängs av efter en viss tid

writePosition (s, 0); % Stäng av fläkten för att fortsätta koden utan fläkt

tempsel = 150; % Ändra temperaturvärdet för att bryta ut ur slingan efter att fläkten har stängts av, igen bara för att fortsätta koden

slutet

if lightl1 <= 3 % Om den första fotoresistorn detekterar en låg ljusnivå

writeDigitalPin (a, 'A1', 1); % Slå på röd LED som representerar utomhusbelysning

annars % Om ljusnivån är hög igen

writeDigitalPin (a, 'A1', 0); % Stäng av den röda lysdioden när ljusnivån är tillräckligt hög igen

slutet

om switchv> 3 % Om omkopplaren är påslagen

A = existera ('m', 'var'); % Kontrollera om det finns variabel 'm', detta kommer att initieras för medan loop och låter den brytas när ett menyalternativ väljs (det är därför tydligt m måste göras i början av koden)

medan A == 0 % loop kommer att köras tills variabeln 'm' existerar

menutext = 'Vilket säkerhetsläge vill du ange?'; % Text för popup -menyn för säkerhet

choice = {'Hem', 'Borta'}; % Val för popup -menyn för säkerhet

m = meny (menutext, val); % Popup -meny för säkerhetssystemlägen

break % Säkerställer att medan loop är bruten så att menyn inte dyker upp flera gånger

slutet

om m == 1 % Om läget "Hem" är valt

writeDigitalPin (a, bluep, 1); % Slå på bara blått ljus i den färgförändrande lysdioden

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % Om "Borta" -läget är valt

writeDigitalPin (a, bluep, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); % Slå på bara det gröna ljuset i den färgförändrande lysdioden

om lightl2 <= 3 % Om ljusnivån i den andra fotoresistorn är låg, representerar rörelse detekterad av säkerhetssystemet

sendmail (mejl, subj, text); % Skicka ett e -postmeddelande med tidigare definierade e -postegenskaper writeDigitalPin (a, greenp, 0); % Flash röd färg på och av 2 gånger

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); % Avsluta med fast rött efter att ha blinkat för att visa att det finns rörelse tills ljusnivån går upp igen

msg2 = msgbox ('Inkräktare upptäckt av säkerhetssystemet, ett e -postmeddelande har skickats till husägarna för att informera dem.', 'VARNING!'); % Meddelanderuta för att informera användaren om rörelse och för att informera om e -postmeddelandet som väntar på (msg2) % Vänta tills meddelanderutan stängs innan du fortsätter

annan

writeDigitalPin (a, greenp, 1); % När ljusnivån har stigit igen blir den grön igen

slutet

slutet

elseif switchv <3,3 % Om omkopplaren är avstängd

writeDigitalPin (a, bluep, 0); % Stäng av lysdioden helt för att visa att säkerhetssystemet är avstängt

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

slutet

slutet

Rekommenderad: