Sadržaj:

Arduino sustav pametne kuće: 7 koraka
Arduino sustav pametne kuće: 7 koraka

Video: Arduino sustav pametne kuće: 7 koraka

Video: Arduino sustav pametne kuće: 7 koraka
Video: Lesson 21: Using Infrared Remote Control with Arduino | SunFounder Robojax 2024, Srpanj
Anonim
Arduino sustav pametne kuće
Arduino sustav pametne kuće
Arduino sustav pametne kuće
Arduino sustav pametne kuće

U ovom Instructableu pokazat ćemo vam kako stvoriti vlastiti sustav pametne kuće s MATLAB -ovim dizajnerom aplikacija sa Sparkfun crvenom pločom. Ovaj Instructable se može koristiti za lakše razumijevanje MATLAB -ovog dizajnera aplikacija, kao i za korištenje fotootpornika, servomotora i PIR senzora pokreta.

Korak 1: Za početak: Materijali

Ovaj projekt zahtijeva sljedeće materijale:

- Arduino Uno (Za ovaj projekt koristili smo Sparkfun Red ploču)

- Jedan fotootpornik

- Jedan mini-servo motor

- Jedan kontinuirani servo motor

- Jedan PIR senzor pokreta

- Jedan senzor temperature

- 2 LED diode

- Žice i otpornici po potrebi

Korak 2: Korak 2: Pristup rješavanju problema

Glavni cilj ovog projekta bio je stvoriti jednostavan za korištenje sustav pametne kuće kodiranjem Arduino Uno ploče s MATLAB -om. Prvo smo razmišljali samo o radu sa senzorom temperature i vlage, no ako bismo ostali s ta dva senzora, naš sustav pametne kuće ne bi bio lako prodan široj publici. Odlučili smo da želimo stvoriti cjelokupni energetski sustav pametne kuće koji bi funkcionirao kao pametni termostat i sigurnosni sustav. Konačno, htjeli smo surađivati s MATLAB -ovim AppDesigner -om tako da korisnik može lako promijeniti pametni dom kako želi.

Korak 3: Korak 3: Konfiguriranje grafičkog sučelja i protoka osnovnih kodova

Korak 3: Konfiguriranje grafičkog sučelja i toka osnovnog koda
Korak 3: Konfiguriranje grafičkog sučelja i toka osnovnog koda

Za početak morate otvoriti MATLAB -ov AppDesigner i postaviti sljedeće:

Dva numerička polja za uređivanje za unos praga tople i hladne

Gumb za otključavanje vrata

I četiri indikatorske lampe za kamin, vrata, ventilator i reflektor.

Dvije oznake za komunikaciju s korisnikom.

Za ovaj projekt bilo nam je lakše raditi s globalnim varijablama i funkcijom pokretanja unutar dizajnera. U funkciji pokretanja trebat će vam ove varijable:

globalni a

a = arduino ('COM3', 'uno', 'Knjižnice', 'Servo'); globalno s globalno p globalno hotUI globalno hladnoUI globalno otključavanje globalno temp globalno curr_temp globalno int_light

Trenutno imamo samo dodjelu varijable tako da vaše računalo može čitati arduino. COM3 se može razlikovati ovisno o tome koji port vaše računalo možda koristi.

Kada pokrenete kôd, on će se pokrenuti unutar funkcije pokretanja, stvarajući globalne varijable i kalibrirajući sustav. Na kraju ove funkcije bit će funkcija timera koja poziva svojstvo koje smo nazvali Timer. Unutar ovog svojstva mjerača vremena stavljamo kôd koji pokreće kućni sustav tako da mjerač vremena ne pokreće ponovno kalibracijski kôd.

Napomena: Nismo dali nikakve upute za ožičenje za sustav. Pozvali smo se na priručnik koji dolazi sa SparkFun Red pločom.

Korak 4: Korak 3: Postavljanje sustava termostata

Korak 3: Postavljanje sustava termostata
Korak 3: Postavljanje sustava termostata
Korak 3: Postavljanje sustava termostata
Korak 3: Postavljanje sustava termostata

Funkcija termostata radi na sljedeći način:

Korisnik će unijeti temperaturu za koju smatra da je prevruća ili prehladna. Kad termometar očita, ako je dom previše hladan, uključit će se "kamin" (crvena LED) i zagrijati dom. Ako je kući prevruće, tada će se "ventilator" (kontinuirani servo motor) uključiti hlađenje kuće.

Za kodiranje sustava termostata:

Počet ćemo unutar funkcije pokretanja za prikaz trenutne temperature i dopustiti korisniku da unese svoje hladne i vruće pragove.

p = 'A0' %Igla fotootpornika

volt = readVoltage (a, temp); celc = (volt-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); %Broj oznake može promijeniti pauzu (10); %Možda se želi promijeniti !!!!!

Zatim ćemo dovršiti sustav termostata unutar svojstva Timer.

globalni curr_temp

globalni coldUI globalni globalni hotUI if curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Uključuje GUI žarulju zeleno writePWMDutyCycle (a, 'D11',.9) %Sljedeća tri retka koda pokreću pauzu ventilatora servo -a (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Ovo isključuje sve GUI svjetiljke i aplikaciju za kamin. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); kraj

Korak 5: Korak 4: Postavljanje sustava vrata

Korak 4: Postavljanje sustava vrata
Korak 4: Postavljanje sustava vrata

Funkcija vrata radi na sljedeći način:

Kada prvi put pokrenete svoj MATLAB kôd, aplikacija će vas zamoliti da otvorite vrata kako bi fotootpornik mogao očitati početno svjetlo. Kad se to dovrši, mjerač vremena će se aktivirati, a fotootpornik će uzeti sekundarna očitanja svjetla. Ako je očitanje sekundarnog svjetla lakše od početnog, servo motor će zaključati vrata. Ako korisnik želi otključavanje vrata, može pritisnuti gumb u aplikaciji koji će otključati vrata.

Za konfiguriranje servo motora i fotootpornika:

Za kodiranje sustava vrata:

Počet ćemo unutar funkcije pokretanja kako bismo uzeli početna očitanja svjetla.

s = servo (a, 'D9') %Pin se može promijeniti ovisno o ožičenju

app. Label_4. Text = 'Molimo otvorite vrata za kalibriranje sustava'; stanka (15); %Ovo daje vrijeme korisniku da otvori vrata int_light = readVoltage (a, p); app. Label_4. Text = 'Možete ukloniti prst';

Zatim ćemo dovršiti kôd unutar svojstva Timer

globalno otključavanje

global int_light global s global a %Dobijte trenutno očitanje svjetla za usporedbu curr_light = readVoltage (a, p); % - Zaključavanje vrata - ako int_light <curr_light writePosition (s, 1) % Servo položaji mogu varirati ovisno o pauzi motora (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; kraj % - Otključaj vrata - ako je otključavanje == 1234 pauza (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; kraj

Na kraju ćemo stvoriti povratni poziv gumba za otključavanje. Nakon što korisnik pritisne gumb za otključavanje, globalnoj varijabli za otključavanje bit će dodijeljen broj koji može dovršiti posljednju naredbu if u svojstvu Timer.

globalno otključavanje

otključavanje = 1234;

Korak 6: Korak 6: Postavljanje sustava svjetla reflektora

Korak 6: Postavljanje sustava Flood Light
Korak 6: Postavljanje sustava Flood Light

Funkcija reflektorskog svjetla radi na sljedeći način:

Kada pokrenete MATLAB kôd, PIR senzor pokreta počet će detektirati kretanje. Nakon što otkrije neku vrstu kretanja, prekinut će signal napajanja. Nakon što se signal prekine, svjetlo poplave će se upaliti izvan kuće.

Da biste konfigurirali sustav svjetla poplave:

Da biste kodirali sustav svjetla za poplavu:

Ovaj put možemo preskočiti na svojstvo Timer jer ne moramo pisati dodatne varijable.

human_detected = readDigitalPin (a, 'D2'); %Pin se može promijeniti ovisno o konfiguraciji ako human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin može promijeniti 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) kraj

Korak 7: Zaključak

Sada kada imate nacrt svog GUI -ja s dizajnerom aplikacija i svoj kôd za Arduino, spremni ste za vlastite izmjene ili priključite svoj Arduino i krenite!

Preporučeni: