Satura rādītājs:

Arduino viedās mājas sistēma: 7 soļi
Arduino viedās mājas sistēma: 7 soļi

Video: Arduino viedās mājas sistēma: 7 soļi

Video: Arduino viedās mājas sistēma: 7 soļi
Video: 5A-30A maiņstrāvas un līdzstrāvas mērīšana, izmantojot ACS712 ar Robojax bibliotēku 2024, Jūlijs
Anonim
Arduino viedās mājas sistēma
Arduino viedās mājas sistēma
Arduino viedās mājas sistēma
Arduino viedās mājas sistēma

Šajā pamācībā mēs parādīsim, kā izveidot savu viedās mājas sistēmu, izmantojot MATLAB lietotņu noformētāju ar Sparkfun Red tāfeli. Šo pamācību var izmantot, lai palīdzētu labāk izprast MATLAB lietotņu dizaineru, kā arī izmantot fotorezistoru, servomotoru un PIR kustības sensoru.

1. darbība: lai sāktu: materiāli

Šim projektam nepieciešami šādi materiāli:

- Arduino Uno (šim projektam mēs izmantojām Sparkfun Red dēli)

- Viens fotorezistors

- Viens mini servomotors

- Viens nepārtraukts servomotors

- Viens PIR kustības sensors

- Viens temperatūras sensors

- 2 gaismas diodes

- Vadi un rezistori pēc vajadzības

2. solis: 2. solis: pieeja problēmai, kas jāatrisina

Šī projekta galvenais mērķis bija izveidot viegli lietojamu viedās mājas sistēmu, kodējot Arduino Uno plāksni ar MATLAB. Mēs vispirms domājām tikai par darbu ar temperatūras un mitruma sensoru, tomēr, ja mēs paliktu pie šiem diviem sensoriem, mūsu viedās mājas sistēma nebūtu viegli pārdodama plašai auditorijai. Mēs nolēmām, ka vēlamies izveidot vispārēju viedas mājas enerģijas sistēmu, kas darbotos kā viedais termostats un drošības sistēma. Visbeidzot, mēs vēlējāmies sadarboties ar MATLAB AppDesigner, lai lietotājs varētu viegli mainīt viedo māju, kā vēlas.

3. darbība: 3. darbība: GUI un pamata koda plūsmas konfigurēšana

3. darbība. GUI un pamata koda plūsmas konfigurēšana
3. darbība. GUI un pamata koda plūsmas konfigurēšana

Lai sāktu, jums ir jāatver MATLABs AppDesigner un jāievada:

Divi ciparu rediģēšanas lauki karstā un aukstā sliekšņa ievadei

Poga durvju atslēgšanai

Un četras indikatora lampas kamīnam, durvīm, ventilatoram un plūdu gaismai.

Divas etiķetes, lai sazinātos ar lietotāju.

Šim projektam mums bija vieglāk strādāt ar globālajiem mainīgajiem un startēšanas funkciju dizainera ietvaros. Startēšanas funkcijā jums būs nepieciešami šie mainīgie:

globāls a

a = arduino ('COM3', 'uno', 'Bibliotēkas', 'Servo'); global s global p global hotUI global coldUI global unlock global temp global curr_temp global int_light

Pašlaik mums ir tikai mainīgā piešķiršana, lai jūsu dators varētu lasīt arduino. COM3 var atšķirties atkarībā no datora izmantotā porta.

Palaižot kodu, tas sāksies palaišanas funkcijā, izveidojot globālos mainīgos un kalibrējot sistēmu. Šīs funkcijas beigās būs taimera funkcija, kas izsauks īpašumu, ko mēs nosaucām par taimeri. Šajā Taimera rekvizītā mēs ievietojam kodu, kas vada mājas sistēmu, lai taimeris atkārtoti neizpildītu kalibrēšanas kodu.

Piezīme. Mēs nesniedzām nekādus sistēmas vadu norādījumus. Mēs atsaucāmies uz rokasgrāmatu, kas pievienota SparkFun Red plāksnei.

4. darbība: 3. darbība: termostata sistēmas iestatīšana

3. darbība: termostata sistēmas iestatīšana
3. darbība: termostata sistēmas iestatīšana
3. darbība: termostata sistēmas iestatīšana
3. darbība: termostata sistēmas iestatīšana

Termostata funkcija darbojas šādi:

Lietotājs ievadīs temperatūru, ko uzskata par pārāk karstu vai pārāk aukstu. Tiklīdz termometrs nolasa rādījumus, ja mājās ir pārāk auksts, "kamīns" (sarkana gaismas diode) ieslēgsies un sildīs māju. Ja mājās ir pārāk karsts, tad "ventilators" (nepārtraukts servomotors) ieslēgs mājas dzesēšanu.

Lai kodētu termostata sistēmu:

Mēs sāksim palaišanas funkcijā, lai parādītu pašreizējo temperatūru un ļautu lietotājam ievadīt aukstuma un karstuma sliekšņus.

p = 'A0' %Fotorezistora tapa

volt = readVoltage (a, temp); celc = (volt-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); %Etiķetes numurs var mainīt pauzi (10); %Var gribēt mainīties !!!!!

Tad mēs pabeigsim termostata sistēmu Taimera īpašumā.

globālais curr_temp

global coldUI global a global hotUI if curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; %Pārvērš GUI lampu zaļu rakstītPWMDutyCycle (a, 'D11',.9) %Nākamās trīs koda rindas palaiž servo ventilatora pauzi (10) writePWMDutyCycle (a, 'D11',.0) cits app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Tas izslēdz visas GUI lampas un kamīna lietotni. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D13', 0); beigas

5. darbība: 4. darbība: durvju sistēmas iestatīšana

4. solis: durvju sistēmas uzstādīšana
4. solis: durvju sistēmas uzstādīšana

Durvju funkcija darbojas šādi:

Pirmoreiz palaižot MATLAB kodu, lietotne lūgs jums atvērt durvis, lai fotorezistors varētu veikt sākotnējo gaismas nolasījumu. Kad tas ir pabeigts, taimeris aktivizēsies un fotorezistors veiks sekundāros gaismas rādījumus. Ja sekundārās gaismas rādījums ir vieglāks nekā sākotnējais, servodzinējs aizslēgs durvis. Ja lietotājs vēlas, lai durvis tiktu atslēgtas, lietotnē var nospiest pogu, kas durvis atbloķēs.

Lai konfigurētu servomotoru un fotorezistoru:

Lai kodētu durvju sistēmu:

Mēs sāksim startēšanas funkcijas ietvaros, lai veiktu sākotnējos gaismas rādījumus.

s = servo (a, 'D9') %Piespraude var mainīties atkarībā no elektroinstalācijas

app. Label_4. Text = 'Lūdzu, atveriet durvis, lai kalibrētu sistēmu'; pauze (15); %Tas dod laiku lietotājam atvērt durvis int_light = readVoltage (a, p); app. Label_4. Text = 'Jūs varat noņemt pirkstu';

Tālāk mēs aizpildīsim kodu īpašumā Taimeris

globāla atbloķēšana

global int_light global s global a %Iegūstiet pašreizējo gaismas rādījumu, lai salīdzinātu curr_light = readVoltage (a, p); % - Bloķēt durvis - ja int_light <curr_light writePosition (s, 1) % Servo pozīcijas var atšķirties atkarībā no motora pauzes (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; beigas % - atbloķēt durvis - ja atbloķēt == 1234 pauze (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; beigas

Visbeidzot, mēs izveidosim atbloķēšanas pogas atzvanīšanu. Kad lietotājs nospiež atbloķēšanas pogu, globālajam mainīgajam atbloķēšanai tiks piešķirts numurs, kas var aizpildīt galīgo if paziņojumu rekvizītā Taimeris.

globāla atbloķēšana

atbloķēt = 1234;

6. darbība: 6. darbība: plūdu gaismas sistēmas iestatīšana

6. darbība: plūdu gaismas sistēmas iestatīšana
6. darbība: plūdu gaismas sistēmas iestatīšana

Plūdu gaismas funkcija darbojas šādi:

Sākot MATLAB kodu, PIR kustības sensors sāks noteikt kustību. Kad tas nosaka kāda veida kustību, tas pārtrauks jaudas signālu. Kad šis signāls ir nogriezts, ārpus mājas iedegas plūdu gaisma.

Lai konfigurētu plūdu gaismas sistēmu:

Lai kodētu plūdu gaismas sistēmu:

Šoreiz mēs varam pāriet uz rekvizītu Taimeris, jo mums nav jāraksta papildu mainīgie.

human_detected = readDigitalPin (a, 'D2'); %Pin var mainīties atkarībā no konfigurācijas, ja human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin var mainīties 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) beigas

7. solis. Secinājums

Tagad, kad ar lietotņu noformētāju ir izveidots jūsu GUI uzmetums un Arduino kods, esat gatavs veikt savus labojumus vai pievienot Arduino un doties!

Ieteicams: