Sisällysluettelo:

Arduino Smart Home System: 7 vaihetta
Arduino Smart Home System: 7 vaihetta

Video: Arduino Smart Home System: 7 vaihetta

Video: Arduino Smart Home System: 7 vaihetta
Video: Home Automation: How to use 7 Program 0.1s to 9999 minutes Relay Timer XY-LJ02 2024, Heinäkuu
Anonim
Arduino Smart Home -järjestelmä
Arduino Smart Home -järjestelmä
Arduino Smart Home -järjestelmä
Arduino Smart Home -järjestelmä

Tässä ohjeessa näytämme sinulle, miten voit luoda oman älykkään kotijärjestelmän MATLABin App Designerin ja Sparkfun Red -levyn avulla. Tämän opetusohjelman avulla voidaan oppia ymmärtämään paremmin MATLABin sovellusten suunnittelijaa sekä käyttää valoresistoria, servomoottoria ja PIR -liiketunnistinta.

Vaihe 1: Aluksi: Materiaalit

Tämä projekti vaatii seuraavat materiaalit:

- Arduino Uno (Tässä projektissa käytimme Sparkfun Red -taulua)

- Yksi valovastus

- Yksi mini-servomoottori

- Yksi jatkuva servomoottori

- Yksi PIR -liiketunnistin

- Yksi lämpötila -anturi

- 2 LEDiä

- Johdot ja vastukset tarpeen mukaan

Vaihe 2: Vaihe 2: Lähestyminen ratkaistavaan ongelmaan

Tämän projektin päätavoite oli luoda helppokäyttöinen älykäs kotijärjestelmä koodaamalla Arduino Uno -kortti MATLABilla. Ajattelimme ensin työskennellä vain lämpötila- ja kosteusanturin kanssa, mutta jos pysyisimme näiden kahden anturin kanssa, älykkään kodin järjestelmämme ei olisi helposti markkinoitavissa suurelle yleisölle. Päätimme, että haluamme luoda kokonaisvaltaisen älykkään kodin energiajärjestelmän, joka toimisi älykkään termostaatin ja turvajärjestelmänä. Lopuksi halusimme työskennellä MATLABin AppDesignerin kanssa, jotta käyttäjä voi helposti muuttaa älykotia haluamallaan tavalla.

Vaihe 3: Vaihe 3: GUI: n ja peruskoodin virran määrittäminen

Vaihe 3: GUI: n ja Basic Code Flow'n määrittäminen
Vaihe 3: GUI: n ja Basic Code Flow'n määrittäminen

Aloita avaamalla MATLABs AppDesigner ja asettamalla seuraava:

Kaksi numeerista muokkauskenttää kuuman ja kylmän kynnystulolle

Painike oven avaamiseksi

Ja neljä merkkivaloa takkaan, oveen, tuulettimeen ja tulvavaloon.

Kaksi tarraa kommunikoimaan käyttäjän kanssa.

Tässä projektissa oli helpompaa työskennellä globaalien muuttujien ja suunnittelutoiminnon käynnistystoiminnon kanssa. Tarvitset näitä muuttujia käynnistystoiminnossa:

maailmanlaajuinen a

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

Tällä hetkellä meillä on vain muuttujan tehtävä, jotta tietokoneesi voi lukea arduinoa. COM3 voi vaihdella sen mukaan, mitä porttia tietokoneesi käyttää.

Kun suoritat koodin, se alkaa käynnistystoiminnossa, joka luo yleiset muuttujat ja kalibroi järjestelmän. Tämän toiminnon lopussa on ajastintoiminto, joka kutsuu ajastimeksi kutsuttua ominaisuutta. Tässä Ajastin-ominaisuudessa kirjoitamme koodin, joka suorittaa kotijärjestelmän, joten ajastin ei suorita kalibrointikoodia uudelleen.

Huomautus: Emme antaneet järjestelmän kytkentäohjeita. Viittasimme SparkFun Red -levyn mukana toimitettuun käyttöoppaaseen.

Vaihe 4: Vaihe 3: Termostaattijärjestelmän käyttöönotto

Vaihe 3: Termostaattijärjestelmän asentaminen
Vaihe 3: Termostaattijärjestelmän asentaminen
Vaihe 3: Termostaattijärjestelmän asentaminen
Vaihe 3: Termostaattijärjestelmän asentaminen

Termostaatin toiminto toimii seuraavasti:

Käyttäjä syöttää, mitä lämpötilaa pitää liian kuumana tai liian kylmänä. Kun lämpömittari on lukenut, jos koti on liian kylmä, "takka" (punainen LED) syttyy ja lämmittää kotia. Jos koti on liian kuuma, "tuuletin" (jatkuva servomoottori) käynnistää talon jäähdytyksen.

Termostaattijärjestelmän koodaaminen:

Aloitamme käynnistystoiminnon sisällä näyttääksemme nykyisen lämpötilan ja antaa käyttäjän syöttää kylmän ja kuuman kynnysarvonsa.

p = 'A0' %Valovastuksen tappi

voltti = lukuJännite (a, lämpötila); celc = (voltti-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); %Tarran numero voi muuttaa taukoa (10); %Voi haluta muuttua !!!!!

Täydennämme sitten ajastinominaisuuden termostaattijärjestelmän.

globaali curr_temp

global coldUI global a global hotUI if curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Muuttaa GUI -lampun vihreäksi kirjoittaa PWMDutyCycle (a, 'D11',.9) %Seuraavat kolme koodiriviä suorittavat servotuulettimen tauon (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Tämä sammuttaa kaikki GUI -lamput ja takkasovelluksen. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); loppuun

Vaihe 5: Vaihe 4: Ovijärjestelmän asennus

Vaihe 4: Ovijärjestelmän asennus
Vaihe 4: Ovijärjestelmän asennus

Oven toiminto toimii seuraavasti:

Kun suoritat MATLAB -koodisi ensimmäistä kertaa, sovellus pyytää sinua avaamaan oven, jotta valon vastus voi ottaa ensimmäisen valolukeman. Kun tämä on valmis, ajastin aktivoituu ja valoresistori ottaa toissijaiset valolukemat. Jos toissijainen valolukema on kevyempi kuin alkuperäinen, servomoottori lukitsee oven. Jos käyttäjä haluaa oven avautuvan, hän voi painaa sovelluksen painiketta, joka avaa oven lukituksen.

Servomoottorin ja valovastuksen määrittäminen:

Ovijärjestelmän koodaaminen:

Aloitamme käynnistystoiminnon sisällä ottamaan ensimmäiset valolukemat.

s = servo (a, 'D9') %Nasta voi muuttua johdotuksen mukaan

app. Label_4. Text = 'Avaa ovi kalibroidaksesi järjestelmän'; tauko (15); %Tämä antaa käyttäjälle aikaa avata oven int_light = readVoltage (a, p); app. Label_4. Text = 'Voit poistaa sormesi';

Seuraavaksi viimeistelemme koodin Ajastin -ominaisuudessa

maailmanlaajuinen avaus

global int_light global s global a %Hae nykyinen valolukema vertaamaan curr_light = readVoltage (a, p); % - Lukitse ovi - jos int_light <curr_light writePosition (s, 1) % Servoasennot voivat vaihdella moottoritauon mukaan (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; loppu % - Avaa ovi - jos avaus == 1234 tauko (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; loppuun

Lopuksi luomme avauspainikkeen soittopyynnön. Kun käyttäjä painaa lukituksen avauspainiketta, globaalimuuttujan lukituksen avaukselle annetaan numero, joka voi suorittaa viimeisen if -lausekkeen Ajastin -ominaisuudessa.

maailmanlaajuinen avaus

avaa = 1234;

Vaihe 6: Vaihe 6: Tulvavalojärjestelmän käyttöönotto

Vaihe 6: Tulvavalojärjestelmän käyttöönotto
Vaihe 6: Tulvavalojärjestelmän käyttöönotto

Valonheittimen toiminto toimii seuraavasti:

Kun käynnistät MATLAB -koodin, PIR -liiketunnistin alkaa havaita liikettä. Kun se havaitsee jonkinlaisen liikkeen, se katkaisee tehosignaalin. Kun tämä signaali katkaistaan, tulvavalo syttyy kodin ulkopuolella.

Tulvavalojärjestelmän määrittäminen:

Tulvavalojärjestelmän koodaaminen:

Tällä kertaa voimme siirtyä ajastimen ominaisuuteen, koska meidän ei tarvitse kirjoittaa ylimääräisiä muuttujia.

human_detected = readDigitalPin (a, 'D2'); %Pin voi muuttua kokoonpanon mukaan, jos human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin voi muuttaa 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) loppu

Vaihe 7: Johtopäätös

Nyt kun sinulla on luonnos graafisesta käyttöliittymästäsi App Designerin kanssa ja Arduino -koodisi, olet valmis tekemään omia muokkauksiasi tai kytkemään Arduinon ja menemään!

Suositeltava: