Indholdsfortegnelse:

Arduino Smart Home System: 7 trin
Arduino Smart Home System: 7 trin

Video: Arduino Smart Home System: 7 trin

Video: Arduino Smart Home System: 7 trin
Video: ChatGPT with Arduino Nano #arduino #chatgpt #technology #openAI #electronic 2024, Juli
Anonim
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System

I denne Instructable viser vi dig, hvordan du opretter dit eget smarte hjemmesystem med MATLABs App Designer med et Sparkfun Red -bord. Denne instruktør kan bruges til at få en grundlæggende forståelse af MATLABs App Designer samt brug af en fotoresistor, servomotor og en PIR -bevægelsessensor.

Trin 1: Til begyndelse: Materialer

Dette projekt kræver følgende materialer:

- Arduino Uno (til dette projekt brugte vi et Sparkfun Red board)

- En fotoresistor

- En miniservomotor

- En kontinuerlig servomotor

- En PIR -bevægelsessensor

- En temperatursensor

- 2 lysdioder

- Ledninger og modstande efter behov

Trin 2: Trin 2: Nærmer sig problemet

Hovedmålet med dette projekt var at skabe et smart hjemmesystem, der er let at bruge, ved at kode et Arduino Uno -kort med MATLAB. Vi tænkte først på bare at arbejde med en temperatur- og fugtighedsføler, men hvis vi blev hos de to sensorer, ville vores smarte hjemmesystem ikke let kunne sælges til et generelt publikum. Vi besluttede, at vi ønskede at skabe et samlet smart hjem energisystem, der ville fungere som en smart termostat og sikkerhedssystem. Endelig ønskede vi at arbejde med MATLABs AppDesigner, så brugeren let kan ændre det smarte hjem, som de vil.

Trin 3: Trin 3: Konfiguration af GUI og Basic Code Flow

Trin 3: Konfiguration af GUI og grundlæggende kodeflow
Trin 3: Konfiguration af GUI og grundlæggende kodeflow

For at starte skal du åbne MATLABs AppDesigner og placere følgende:

To numeriske redigeringsfelter til en varm og kold tærskelindgang

En knap til at låse døren op

Og fire indikatorlamper til pejsen, dør, ventilator og oversvømmelseslys.

To etiketter til at kommunikere med brugeren.

Til dette projekt fandt vi det lettere at arbejde med globale variabler og opstartsfunktionen inden for designeren. Du skal bruge disse variabler inden for opstartsfunktionen:

globalt a

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

Lige nu har vi kun en opgave til variablen a, så din computer kan læse arduinoen. COM3 kan variere afhængigt af hvilken port din computer kan bruge.

Når du kører koden, starter den inden for opstartsfunktionen og skaber de globale variabler og kalibrerer systemet. I slutningen af denne funktion vil der være en timerfunktion, der kalder en egenskab, vi kaldte Timer. Inden for denne Timer-egenskab indsætter vi koden, der kører hjemmesystemet, så timeren ikke kører kalibreringskoden igen.

Bemærk: Vi gav ingen ledningsinstruktioner til systemet. Vi henviste til manualen, der fulgte med SparkFun Red -kortet.

Trin 4: Trin 3: Opsætning af termostatsystemet

Trin 3: Opsætning af termostatsystemet
Trin 3: Opsætning af termostatsystemet
Trin 3: Opsætning af termostatsystemet
Trin 3: Opsætning af termostatsystemet

Termostatens funktion fungerer som følger:

Brugeren angiver, hvilken temperatur de anser for for varm eller for kold. Når termometeret tager en aflæsning, hvis hjemmet er for koldt, vil "pejsen" (en rød LED) tænde og opvarme hjemmet. Hvis hjemmet er for varmt, vil en "ventilator" (kontinuerlig servomotor) tænde for afkøling af huset.

For at kode termostatsystemet:

Vi starter inden for opstartsfunktionen for at vise den aktuelle temperatur og lade brugeren indtaste deres kolde og varme tærskler.

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); %Etiketnummer kan ændre pause (10); %Vil måske ændre !!!!!

Derefter vil vi fuldføre termostatsystemet inden for Timer -ejendommen.

global curr_temp

global coldUI global en global hotUI hvis curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Tænder GUI -lampen grøn writePWMDutyCycle (a, 'D11',.9) %De næste tre linjer med kode kører servoviftepausen (10) writePWMDutyCycle (a, 'D11',.0) andet app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Dette slukker alle GUI -lamper og pejse -app. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); ende

Trin 5: Trin 4: Opsætning af dørsystemet

Trin 4: Opsætning af dørsystemet
Trin 4: Opsætning af dørsystemet

Funktionen til døren fungerer som følger:

Når du først kører din MATLAB -kode, vil appen bede dig om at åbne døren, så fotoresistoren kan foretage en indledende lysaflæsning. Når dette er fuldført, aktiveres timeren, og fotoresistoren vil foretage sekundære lysmålinger. Hvis den sekundære lysaflæsning er lettere end initialen, låser en servomotor døren. Hvis brugeren vil have døren ulåst, kan de trykke på en knap i appen, der låser døren op.

Sådan konfigureres servomotoren og fotoresistoren:

Sådan kodes dørsystemet:

Vi starter inden for opstartsfunktionen for at tage de indledende lysmålinger.

s = servo (a, 'D9') %Pin kan ændre sig baseret på ledninger

app. Label_4. Text = 'Åbn venligst døren for at kalibrere systemet'; pause (15); %Dette giver brugeren tid til at åbne døren int_light = readVoltage (a, p); app. Label_4. Text = 'Du må fjerne din finger';

Dernæst udfylder vi koden i Timer -ejendommen

global oplåsning

global int_light global s global a %Få en aktuel lysaflæsning for at sammenligne curr_light = readVoltage (a, p); % - Lås dør - hvis int_light <curr_light writePosition (s, 1) % Servopositioner kan variere pr. Motorpause (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; slut % - Lås dør op - hvis låse op == 1234 pause (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; ende

Endelig opretter vi opkaldsknappen til tilbagekald. Når brugeren trykker på oplåsningsknappen, vil den globale variabel låse blive tildelt et nummer, der kan fuldføre den sidste if -sætning i Timer -egenskaben.

global oplåsning

låse op = 1234;

Trin 6: Trin 6: Opsætning af Flood Light System

Trin 6: Opsætning af Flood Light System
Trin 6: Opsætning af Flood Light System

Funktionen for oversvømmelseslyset fungerer som følger:

Når du starter MATLAB -koden, begynder PIR -bevægelsessensoren at registrere bevægelse. Når den registrerer en eller anden form for bevægelse, vil den afbryde et effektsignal. Når dette signal er afbrudt, tændes et oversvømmelseslys uden for hjemmet.

Sådan konfigureres oversvømmelseslyssystemet:

For at kode oversvømmelseslyssystemet:

Denne gang kan vi springe til Timer -egenskaben, fordi vi ikke behøver at skrive ekstra variabler.

human_detected = readDigitalPin (a, 'D2'); %Pin kan ændre sig baseret på konfiguration, hvis human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin kan ændre 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

Trin 7: Konklusion

Nu hvor du har et udkast til din GUI med App Designer og din kode til Arduino, er du klar til at foretage dine egne redigeringer eller tilslutte din Arduino og gå!

Anbefalede: