Innholdsfortegnelse:

Arduino Smart Home System: 7 trinn
Arduino Smart Home System: 7 trinn

Video: Arduino Smart Home System: 7 trinn

Video: Arduino Smart Home System: 7 trinn
Video: Lesson 29: Car-7 Controlling SunFounder Smart Car using Remote Controller | Robojax 2024, November
Anonim
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System

I denne instruksjonsboken viser vi deg hvordan du lager ditt eget smarte hjemmesystem med MATLABs App Designer med et Sparkfun Red -brett. Denne instruksen kan brukes til å få en grunnleggende forståelse av MATLABs App Designer, samt bruk av en fotoresistor, servomotor og en PIR -bevegelsessensor.

Trinn 1: For å begynne: Materialer

Dette prosjektet krever følgende materialer:

- Arduino Uno (For dette prosjektet brukte vi et Sparkfun Red -brett)

- En fotoresistor

- En miniservomotor

- En kontinuerlig servomotor

- En PIR bevegelsessensor

- En temperatursensor

- 2 lysdioder

- Ledninger og motstander etter behov

Trinn 2: Trinn 2: Tilnærming til problemet som skal løses

Hovedmålet med dette prosjektet var å lage et smart hjemmesystem som er lett å bruke ved å kode et Arduino Uno -kort med MATLAB. Vi tenkte først på å bare jobbe med en temperatur- og fuktighetssensor, men hvis vi bodde hos de to sensorene, ville ikke vårt smarte hjemmesystem være lett å selge for et generelt publikum. Vi bestemte oss for at vi ønsket å lage et samlet energisystem for smarthus som ville fungere som en smart termostat og sikkerhetssystem. Til slutt ønsket vi å jobbe med MATLABs AppDesigner, slik at brukeren enkelt kan endre det smarte hjemmet som han vil.

Trinn 3: Trinn 3: Konfigurering av GUI og grunnleggende kodeflyt

Trinn 3: Konfigurering av GUI og grunnleggende kodeflyt
Trinn 3: Konfigurering av GUI og grunnleggende kodeflyt

For å starte må du åpne MATLABs AppDesigner og plassere følgende:

To numeriske redigeringsfelt for en varm og kald terskelinngang

En knapp for å låse opp døren

Og fire indikatorlamper for peisen, døren, viften og flomlyset.

To etiketter for å kommunisere med brukeren.

For dette prosjektet fant vi det lettere å jobbe med globale variabler og oppstartsfunksjonen i designeren. Du trenger disse variablene i oppstartsfunksjonen:

globalt a

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

Akkurat nå har vi bare en oppgave for a -variabelen slik at datamaskinen din kan lese arduinoen. COM3 kan variere avhengig av hvilken port datamaskinen din bruker.

Når du kjører koden, starter den i oppstartsfunksjonen og skaper de globale variablene og kalibrerer systemet. På slutten av denne funksjonen vil det være en timerfunksjon som kaller en egenskap vi kalte Timer. Innenfor denne Timer-egenskapen legger vi inn koden som kjører hjemmesystemet, slik at timeren ikke kjører kalibreringskoden på nytt.

Merk: Vi ga ingen ledningsinstruksjoner for systemet. Vi henviste til manualen som fulgte med SparkFun Red -kortet.

Trinn 4: Trinn 3: Sette opp termostatsystemet

Trinn 3: Sette opp termostatsystemet
Trinn 3: Sette opp termostatsystemet
Trinn 3: Sette opp termostatsystemet
Trinn 3: Sette opp termostatsystemet

Funksjonen for termostaten fungerer som følger:

Brukeren vil angi hvilken temperatur de anser for varm eller for kald. Når termometeret leser, hvis hjemmet er for kaldt, vil "peisen" (en rød LED) tenne og varme opp hjemmet. Hvis huset er for varmt, vil en "vifte" (kontinuerlig servomotor) slå på kjøling av huset.

Slik koder du termostatsystemet:

Vi starter med oppstartsfunksjonen for å vise gjeldende temperatur og la brukeren angi kalde og varme terskler.

p = 'A0' %fotoresistorpinne

volt = readVoltage (a, temp); celc = (volt-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); %Etikettnummer kan endre pause (10); %Kan være lurt å endre !!!!!

Deretter fullfører vi termostatsystemet i Timer -egenskapen.

global curr_temp

global coldUI global en global hotUI hvis curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Slår GUI -lampen grønn writePWMDutyCycle (a, 'D11',.9) %De neste tre kodelinjene kjører servoviftepausen (10) writePWMDutyCycle (a, 'D11',.0) annet app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Dette slår av alle GUI -lamper og peisapp. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); slutt

Trinn 5: Trinn 4: Sette opp dørsystemet

Trinn 4: Sette opp dørsystemet
Trinn 4: Sette opp dørsystemet

Funksjonen for døren fungerer som følger:

Når du først kjører MATLAB -koden, vil appen be deg om å åpne døren slik at fotoresistoren kan ta en første lysavlesning. Når dette er fullført, vil timeren aktiveres og fotoresistoren vil ta sekundære lysavlesninger. Hvis den sekundære lysavlesningen er lettere enn den opprinnelige, vil en servomotor låse døren. Hvis brukeren vil at døren skal være ulåst, kan de trykke på en knapp på appen som vil låse opp døren.

Slik konfigurerer du servomotor og fotoresistor:

For å kode dørsystemet:

Vi starter i oppstartsfunksjonen for å ta de første lysavlesningene.

s = servo (a, 'D9') %Pin kan endres basert på ledninger

app. Label_4. Text = 'Vennligst åpne døren for å kalibrere systemet'; pause (15); %Dette gir brukeren tid til å åpne døren int_light = readVoltage (a, p); app. Label_4. Text = 'Du kan fjerne fingeren';

Deretter fullfører vi koden i Timer -egenskapen

global opplåsing

global int_light global s global a %Få en nåværende lysavlesning for å sammenligne curr_light = readVoltage (a, p); % - Lås dør - hvis int_light <curr_light writePosisjon (er, 1) % Servoposisjoner kan variere per motorpause (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; slutt % - Lås opp dør - hvis låse opp == 1234 pause (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; slutt

Til slutt vil vi opprette tilbakeringing av opplåsningsknappen. Når brukeren trykker på låse opp -knappen, vil den globale variabelen låse opp få et nummer som kan fullføre den siste if -setningen i Timer -egenskapen.

global opplåsing

låse opp = 1234;

Trinn 6: Trinn 6: Sette opp Flood Light System

Trinn 6: Sette opp Flood Light System
Trinn 6: Sette opp Flood Light System

Funksjonen for flomlyset fungerer som følger:

Når du starter MATLAB -koden, begynner PIR -bevegelsessensoren å registrere bevegelse. Når den oppdager en eller annen bevegelse, vil den kutte et strømsignal. Når signalet er kuttet, tennes et flomlys utenfor hjemmet.

Slik konfigurerer du flomlyssystemet:

For å kode flomlyssystemet:

Denne gangen kan vi hoppe til Timer -egenskapen fordi vi ikke trenger å skrive noen ekstra variabler.

human_detected = readDigitalPin (a, 'D2'); %Pin kan endres basert på konfigurasjon hvis human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin kan endre 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) slutt

Trinn 7: Konklusjon

Nå som du har et utkast til din GUI med App Designer og koden for Arduino, er du klar til å gjøre dine egne redigeringer eller koble til Arduino og gå!

Anbefalt: