Kazalo:

Arduino sistem pametnega doma: 7 korakov
Arduino sistem pametnega doma: 7 korakov

Video: Arduino sistem pametnega doma: 7 korakov

Video: Arduino sistem pametnega doma: 7 korakov
Video: ПЕРВАЯ СХЕМА НА АРДУИНО [Уроки Arduino #4] 2024, November
Anonim
Arduino sistem pametnega doma
Arduino sistem pametnega doma
Arduino sistem pametnega doma
Arduino sistem pametnega doma

V tem navodilu vam bomo pokazali, kako ustvariti lasten sistem pametnega doma z oblikovalcem aplikacij MATLAB s ploščo Sparkfun Red. Ta Instructable lahko uporabite za lažje razumevanje oblikovalca aplikacij podjetja MATLAB, pa tudi z uporabo fotorezistorja, servomotorja in senzorja gibanja PIR.

1. korak: Za začetek: Materiali

Ta projekt zahteva naslednje materiale:

- Arduino Uno (Za ta projekt smo uporabili rdečo ploščo Sparkfun)

- En foto upor

- En mini servo motor

- En neprekinjen servo motor

- En PIR senzor gibanja

- En temperaturni senzor

- 2 LED

- Žice in upori po potrebi

2. korak: 2. korak: Pristopite k rešitvi problema

Glavni cilj tega projekta je bil ustvariti enostaven za uporabo sistem pametnega doma s kodiranjem plošče Arduino Uno z MATLAB -om. Najprej smo razmišljali o tem, da bi delali samo s senzorjem temperature in vlažnosti, če pa bi ostali pri teh dveh senzorjih, naš sistem pametnega doma ne bi bil zlahka tržen za splošno publiko. Odločili smo se, da želimo ustvariti celoten energetski sistem pametnega doma, ki bi deloval kot pameten termostat in varnostni sistem. Nazadnje smo želeli sodelovati z MATLAB -jevim AppDesignerjem, tako da lahko uporabnik preprosto spremeni pametni dom, kot želi.

3. korak: 3. korak: Konfiguriranje grafičnega vmesnika in pretoka osnovne kode

3. korak: Konfiguriranje grafičnega vmesnika in pretoka osnovne kode
3. korak: Konfiguriranje grafičnega vmesnika in pretoka osnovne kode

Za začetek boste morali odpreti aplikacijo MATLABs AppDesigner in postaviti naslednje:

Dva številska polja za vnos praga vročega in hladnega

Gumb za odklepanje vrat

In štiri indikatorske svetilke za kamin, vrata, ventilator in reflektor.

Dve nalepki za komunikacijo z uporabnikom.

Za ta projekt smo lažje delali z globalnimi spremenljivkami in zagonsko funkcijo znotraj oblikovalca. V zagonski funkciji boste potrebovali te spremenljivke:

globalni a

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

Trenutno imamo samo spremenljivko dodeljeno, tako da lahko vaš računalnik bere arduino. COM3 se lahko razlikuje glede na vrata, ki jih uporablja vaš računalnik.

Ko zaženete kodo, se bo začela v zagonski funkciji ustvarjati globalne spremenljivke in kalibrirati sistem. Na koncu te funkcije bo funkcija časovnika, ki pokliče lastnost, ki smo jo poimenovali Timer. Znotraj te lastnosti Timer vnesemo kodo, ki poganja domači sistem, da časovnik ne zažene znova kalibracijske kode.

Opomba: Za sistem nismo dali navodil za ožičenje. Sklicevali smo se na priročnik, ki je priložen plošči SparkFun Red.

4. korak: 3. korak: Nastavitev sistema termostata

3. korak: Nastavitev sistema termostata
3. korak: Nastavitev sistema termostata
3. korak: Nastavitev sistema termostata
3. korak: Nastavitev sistema termostata

Funkcija termostata deluje na naslednji način:

Uporabnik bo vnesel temperaturo, za katero meni, da je prevroča ali prehladna. Ko termometer odčita, če je dom prehladen, se vklopi "kamin" (rdeča LED) in ogreva dom. Če je v hiši prevroče, se vklopi "ventilator" (neprekinjeni servo motor), ki hladi hišo.

Za kodiranje sistema termostata:

Začeli bomo v zagonski funkciji, da prikažemo trenutno temperaturo in uporabniku omogočimo, da vnese svoje hladne in vroče pragove.

p = 'A0' %Pin za fotorezistor

volt = readVoltage (a, temp); celc = (volt-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); %Številka oznake lahko spremeni premor (10); %Se morda želi spremeniti !!!!!

Nato bomo v lastnostih Timer dokončali sistem termostata.

globalni curr_temp

globalno coldUI globalno globalno hotUI if curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Vklopi zeleno lučko GUI writePWMDutyCycle (a, 'D11',.9) %Naslednje tri vrstice kode zaženejo pavzo ventilatorja servo (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %To izklopi vse GUI svetilke in aplikacijo za kamin. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); konec

5. korak: 4. korak: Nastavitev sistema vrat

4. korak: Nastavitev sistema vrat
4. korak: Nastavitev sistema vrat

Funkcija vrat deluje na naslednji način:

Ko prvič zaženete kodo MATLAB, vas bo aplikacija prosila, da odprete vrata, da bo lahko fotorezistor najprej odčitaval svetlobo. Ko je to končano, se bo časovnik aktiviral in fotorezistor bo izvedel sekundarne odčitke svetlobe. Če je sekundarna luč lažja od začetne, bo vrata zaklenil servo motor. Če želi uporabnik odkleniti vrata, lahko v aplikaciji pritisne gumb, ki odklene vrata.

Za nastavitev servo motorja in fotorezistorja:

Za kodiranje sistema vrat:

Začeli bomo v okviru zagonske funkcije, da vzamemo začetne odčitke svetlobe.

s = servo (a, 'D9') %Pin se lahko spremeni glede na ožičenje

app. Label_4. Text = 'Prosimo, odprite vrata za umerjanje sistema'; premor (15); %To daje uporabniku čas, da odpre vrata int_light = readVoltage (a, p); app. Label_4. Text = 'Lahko odstranite prst';

Nato bomo dokončali kodo v lastnosti Timer

globalno odklepanje

global int_light global s global a %Pridobite trenutni odčitek svetlobe za primerjavo curr_light = readVoltage (a, p); % - Zaklepanje vrat - če int_light <curr_light writePosition (s, 1) % Položaji servo se lahko razlikujejo glede na pavzo motorja (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; konec % - Odklepanje vrat - če je odklepanje == 1234 premor (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; konec

Končno bomo ustvarili povratni klic z gumbom za odklepanje. Ko uporabnik pritisne gumb za odklepanje, bo globalni spremenljivki odklepanje dodeljena številka, ki lahko dokonča stavek if v lastnosti Timer.

globalno odklepanje

odkleni = 1234;

Korak 6: Korak 6: Nastavitev sistema luči

6. korak: Nastavitev sistema Flood Light
6. korak: Nastavitev sistema Flood Light

Funkcija reflektorja deluje na naslednji način:

Ko zaženete kodo MATLAB, bo senzor gibanja PIR začel zaznavati gibanje. Ko zazna določeno vrsto gibanja, prekine signal za vklop. Ko se signal prekine, se zunaj doma prižge luč za poplavo.

Če želite konfigurirati sistem reflektorjev:

Za kodiranje sistema luči:

Tokrat lahko preskočimo na lastnost Timer, ker nam ni treba pisati dodatnih spremenljivk.

human_detected = readDigitalPin (a, 'D2'); %Pin se lahko spremeni glede na konfiguracijo, če human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin se lahko spremeni 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) konec

7. korak: Zaključek

Zdaj, ko imate osnutek svojega grafičnega vmesnika z oblikovalcem aplikacij in kodo za Arduino, ste pripravljeni narediti lastne popravke ali priključiti svoj Arduino in iti!

Priporočena: