Innholdsfortegnelse:
- Trinn 1: For å begynne: Materialer
- Trinn 2: Trinn 2: Tilnærming til problemet som skal løses
- Trinn 3: Trinn 3: Konfigurering av GUI og grunnleggende kodeflyt
- Trinn 4: Trinn 3: Sette opp termostatsystemet
- Trinn 5: Trinn 4: Sette opp dørsystemet
- Trinn 6: Trinn 6: Sette opp Flood Light System
- Trinn 7: Konklusjon
Video: Arduino Smart Home System: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
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
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
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
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
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:
Lag et Smart Home Control System på STONE HMI Disp: 23 trinn
Lag et smart hjemmekontrollsystem på STONE HMI Disp: Prosjekt introduksjon Følgende opplæring viser deg hvordan du bruker STONE STVC050WT-01 berøringsskjermmodul til å lage et enkelt kontrollsystem for husholdningsapparater
Alexa Smart Home System som bruker NodeMCU -relemodul: 10 trinn
Alexa Smart Home System som bruker NodeMCU -relemodul: I dette IoT -prosjektet har jeg laget Alexa Smart Home Automation -systemet ved hjelp av NodeMCU ESP8266 & Relémodul. Du kan enkelt kontrollere lys, vifte og andre husholdningsapparater med talekommandoen. For å koble til Echo Dot smart høyttaler med
SmartBox - Smart Home System for rommet ditt: 6 trinn
SmartBox - Smart Home System for ditt rom: Hei alle sammen! I denne instruksen vil jeg forklare deg hvordan du lager et smart rom -system. Dette systemet inneholder to enheter: En generell enhet med en fuktighetssensor og temperatursensor som måler den nåværende livskvaliteten i rommet ditt. Du w
Smart Home System: 6 trinn
Smart Home System: Denne instruksen vil hjelpe deg med å forklare hvordan du konfigurerer og bruker vårt Smart Home System ved å bruke Matlab -programvaren og Raspberry Pi -maskinvaren. På slutten av denne instruksen, bør du enkelt kunne bruke produktet vårt fullt ut
Billig og enkelt Smart Home System: 7 trinn
Billig og enkelt Smart Home System: Hei! Jeg er Ed Jeg er en 15 år gammel med en lidenskap for databehandling, programmering og elektroteknikk. Siden jeg er ganske ung, bor jeg i foreldrenes hus. Dette prosjektet startet da jeg bestemte meg for å flytte til loftet/ loftsrommet, i prosjekteringsprosessen