Sadržaj:

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

Video: Arduino sistem pametne kuće: 7 koraka

Video: Arduino sistem pametne kuće: 7 koraka
Video: Bluetooth Control Home Automation System | Bluetooth Smart Home #shorts 2024, Novembar
Anonim
Arduino sistem pametne kuće
Arduino sistem pametne kuće
Arduino sistem pametne kuće
Arduino sistem pametne kuće

U ovom uputstvu pokazat ćemo vam kako stvoriti vlastiti sistem 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 crvenu 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 sistem pametne kuće kodiranjem Arduino Uno ploče s MATLAB -om. Prvo smo razmišljali o tome da radimo samo sa senzorom temperature i vlažnosti, međutim ako bismo ostali s ta dva senzora, naš sistem pametne kuće ne bi bio lako dostupan široj publici. Odlučili smo da želimo stvoriti cjelokupni energetski sistem pametne kuće koji će funkcionirati kao pametni termostat i sigurnosni sistem. Konačno, htjeli smo surađivati s MATLAB -ovim AppDesigner -om kako bi korisnik mogao lako promijeniti pametni dom kako želi.

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

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 toplog i hladnog praga

Dugme 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', 'Biblioteke', '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š računar koristi.

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

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

Korak 4: Korak 3: Postavljanje sistema termostata

Korak 3: Postavljanje sistema termostata
Korak 3: Postavljanje sistema termostata
Korak 3: Postavljanje sistema termostata
Korak 3: Postavljanje sistema termostata

Funkcija termostata radi na sljedeći način:

Korisnik će unijeti temperaturu za koju smatra da je prevruća ili prehladna. Kada 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 sistema termostata:

U okviru funkcije pokretanja počet ćemo s prikazom 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 sistem termostata unutar svojstva Timer.

global curr_temp

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

Korak 5: Korak 4: Postavljanje sistema vrata

Korak 4: Postavljanje sistema vrata
Korak 4: Postavljanje sistema 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 i 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 dugme u aplikaciji koje će otključati vrata.

Da biste konfigurirali servo motor i fotootpornik:

Za kodiranje sistema 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 kalibraciju sistema'; pauza (15); %Ovo daje korisniku vremena 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 da se razlikuju po 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 dugmeta za otključavanje. Nakon što korisnik pritisne dugme 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 sistema svjetla reflektora

Korak 6: Postavljanje sistema Flood Light
Korak 6: Postavljanje sistema Flood Light

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

Kada pokrenete MATLAB kôd, PIR senzor pokreta će početi detektovati kretanje. Jednom kada otkrije neku vrstu pokreta, prekinuti će signal napajanja. Nakon što se signal prekine, svjetlo poplave će se upaliti ispred kuće.

Da biste konfigurirali sistem svjetla poplave:

Da biste kodirali sistem svjetla poplave:

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 na osnovu konfiguracije 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 grafičkog sučelja s Dizajnerom aplikacija i svoj kôd za Arduino, spremni ste za uređivanje sami ili priključite svoj Arduino i krenite!

Preporučuje se: