Innehållsförteckning:

Arduino Smart Home System: 7 steg
Arduino Smart Home System: 7 steg

Video: Arduino Smart Home System: 7 steg

Video: Arduino Smart Home System: 7 steg
Video: Amazing arduino project 2024, November
Anonim
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System

I denna instruktionsbok visar vi dig hur du skapar ditt eget smarta hemsystem med MATLABs App Designer med en Sparkfun Red -bräda. Denna instruerbara kan användas för att få en grundläggande förståelse för MATLABs App Designer, samt att använda en fotoresistor, servomotor och en PIR -rörelsesensor.

Steg 1: Börja: Material

Detta projekt kräver följande material:

- Arduino Uno (För detta projekt använde vi en Sparkfun Red board)

- En fotoresistor

- En miniservomotor

- En kontinuerlig servomotor

- En PIR -rörelsesensor

- En temperaturgivare

- 2 lysdioder

- Ledningar och motstånd efter behov

Steg 2: Steg 2: Att närma sig problemet för att lösa

Huvudmålet med detta projekt var att skapa ett lättanvänt smart hemsystem genom att koda ett Arduino Uno -kort med MATLAB. Vi tänkte först på att bara arbeta med en temperatur- och luftfuktighetssensor, men om vi stannade med de två sensorerna skulle vårt smarta hemsystem inte vara lätt att sälja för en allmän publik. Vi bestämde att vi ville skapa ett övergripande smart hem energisystem som skulle fungera som en smart termostat och säkerhetssystem. Slutligen ville vi arbeta med MATLABs AppDesigner så att användaren enkelt kan ändra det smarta hemmet som de vill.

Steg 3: Steg 3: Konfigurera GUI och Basic Code Flow

Steg 3: Konfigurera GUI och Basic Code Flow
Steg 3: Konfigurera GUI och Basic Code Flow

För att starta måste du öppna MATLABs AppDesigner och placera följande:

Två numeriska redigeringsfält för en varm och kall tröskelindata

En knapp för att låsa upp dörren

Och fyra indikatorlampor för eldstaden, dörren, fläkten och strålkastarljuset.

Två etiketter för att kommunicera med användaren.

För det här projektet fann vi det lättare att arbeta med globala variabler och startfunktionen inom designern. Du behöver dessa variabler inom startfunktionen:

globalt a

a = arduino ('COM3', 'uno', 'Libraries', 'Servo'); global s global p global hotUI global coldUI global låsa upp global temp global curr_temp global int_light

Just nu har vi bara en uppgift för variabeln a så att din dator kan läsa arduino. COM3 kan variera beroende på vilken port din dator kan använda.

När du kör koden startar den inom startfunktionen och skapar de globala variablerna och kalibrerar systemet. I slutet av denna funktion kommer det att finnas en timerfunktion som kallar en egenskap som vi kallade Timer. Inom denna Timer-egenskap sätter vi in koden som kör hemmasystemet så att timern inte kör kalibreringskoden igen.

Obs: Vi gav inga kabeldragningar för systemet. Vi hänvisade till manualen som följde med SparkFun Red -kortet.

Steg 4: Steg 3: Installera termostatsystemet

Steg 3: Installera termostatsystemet
Steg 3: Installera termostatsystemet
Steg 3: Installera termostatsystemet
Steg 3: Installera termostatsystemet

Funktionen för termostaten fungerar som följer:

Användaren anger vilken temperatur de anser vara för varm eller för kall. När termometern väl har avläst, om hemmet är för kallt tänds "eldstaden" (en röd lysdiod) och värmer upp hemmet. Om hemmet är för varmt kommer en "fläkt" (kontinuerlig servomotor) att slå på kylningen av huset.

För att koda termostatsystemet:

Vi kommer att starta inom startfunktionen för att visa aktuell temperatur och låta användaren mata in sina kalla och varma trösklar.

p = 'A0' %fotoresistorstift

volt = readVoltage (a, temp); celc = (volt-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); %Etikettnummer kan ändra paus (10); %Kanske vill ändra !!!!!

Sedan kommer vi att slutföra termostatsystemet inom Timer -egenskapen.

global curr_temp

global coldUI global en global hotUI if curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Tänd GUI -lampan grön writePWMDutyCycle (a, 'D11',.9) %De tre följande kodkoderna kör servofläktpausen (10) writePWMDutyCycle (a, 'D11',.0) annars app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Detta stänger av alla GUI -lampor och öppen spis app. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); slutet

Steg 5: Steg 4: Installera dörrsystemet

Steg 4: Installera dörrsystemet
Steg 4: Installera dörrsystemet

Funktionen för dörren fungerar som följer:

När du kör din MATLAB -kod första gången kommer appen att be dig att öppna dörren så att fotoresistorn kan göra en första ljusavläsning. När det är klart kommer timern att aktiveras och fotoresistorn tar sekundära ljusavläsningar. Om den sekundära ljusavläsningen är lättare än initialen låser en servomotor dörren. Om användaren vill att dörren är upplåst kan de trycka på en knapp i appen som låser upp dörren.

Så här konfigurerar du servomotorn och fotoresistorn:

Så här kodar du dörrsystemet:

Vi kommer att starta inom startfunktionen för att ta de första ljusmätningarna.

s = servo (a, 'D9') %Pin kan ändras baserat på ledningar

app. Label_4. Text = 'Öppna dörren för att kalibrera systemet'; paus (15); %Detta ger användaren tid att öppna dörren int_light = readVoltage (a, p); app. Label_4. Text = 'Du kan ta bort fingret';

Därefter slutför vi koden inom Timer -egenskapen

global upplåsning

global int_light global s global a %Få en aktuell ljusavläsning för att jämföra curr_light = readVoltage (a, p); % - Lock Door - if int_light <curr_light writePosition (s, 1) % Servopositioner kan skilja sig från motorpaus (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; slut % - Lås upp dörren - om upplåsning == 1234 paus (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; slutet

Slutligen skapar vi återuppringningsknappen. När användaren trycker på upplåsningsknappen tilldelas den globala variabeln upplåsning ett nummer som kan slutföra den sista if -satsen i egenskapen Timer.

global upplåsning

låsa upp = 1234;

Steg 6: Steg 6: Installera Flood Light System

Steg 6: Installera Flood Light System
Steg 6: Installera Flood Light System

Funktionen för översvämningsljuset fungerar som följer:

När du startar MATLAB -koden börjar PIR -rörelsesensorn att upptäcka rörelse. När den upptäcker någon form av rörelse, kommer den att bryta en energisignal. När den signalen är avstängd tänds ett översvämningsljus utanför hemmet.

Så här konfigurerar du översvämningssystemet:

För att koda översvämningssystemet:

Den här gången kan vi hoppa till egenskapen Timer eftersom vi inte behöver skriva några extra variabler.

human_detected = readDigitalPin (a, 'D2'); %Pin kan ändras baserat på konfiguration om human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin kan ändra app. FloodLightStateLamp. Color = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D7', 0) slut

Steg 7: Slutsats

Nu när du har ett utkast till ditt GUI med App Designer och din kod för Arduino är du redo att göra dina egna redigeringar eller ansluta din Arduino och gå!

Rekommenderad: