Sisällysluettelo:
- Vaihe 1: Aluksi: Materiaalit
- Vaihe 2: Vaihe 2: Lähestyminen ratkaistavaan ongelmaan
- Vaihe 3: Vaihe 3: GUI: n ja peruskoodin virran määrittäminen
- Vaihe 4: Vaihe 3: Termostaattijärjestelmän käyttöönotto
- Vaihe 5: Vaihe 4: Ovijärjestelmän asennus
- Vaihe 6: Vaihe 6: Tulvavalojärjestelmän käyttöönotto
- Vaihe 7: Johtopäätös
Video: Arduino Smart Home System: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
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
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
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
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
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:
DIY Home Automation Intruder Alarm System!: 5 vaihetta (kuvilla)
DIY Home Automation Intruder Alarm System!: Tässä projektissa näytän sinulle, kuinka käyttää Home Assistant -ohjelmistoa luodaksesi tunkeutujahälytysjärjestelmän kotiisi. Järjestelmä havaitsee periaatteessa, jos ovi avataan ilman lupaa, ja lähettää sitten ilmoituksen
Hallitse automaattista liukuporttia Home Assistantin ja ESP: n avulla Home: 5 vaihetta (kuvilla)
Hallitse automaattista liukuporttia Home Assistantin ja ESPHomen avulla: Seuraava artikkeli antaa palautetta henkilökohtaisesta kokemuksestani taloon asennetun automaattisen liukuportin ohjaamisesta. Tässä portissa, "V2 Alfariss", oli muutama Phox V2 -kaukosäädin sen hallitsemiseksi. Minulla on myös
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 vaihetta
Sonoff B1 Firmware Home Automation Openhab Google Home: Pidän todella Tasmota -laiteohjelmistosta Sonoff -kytkimille. Mutta a ei ollut todella tyytyväinen Sonoff-B1: n Tasmota-laiteohjelmistoon. En onnistunut täysin integroimaan sitä Openhabiini ja hallitsemaan sitä Google Homen kautta. Siksi kirjoitin oman yritykseni
Automaattinen äänenvoimakkuuden analysointi Smart System: 4 vaihetta
Automaattinen äänenvoimakkuuden analysointi Smart System: Teema on tehdä prototyyppi, joka voi analysoida ja tunnistaa kaksi eri muotoa ja näyttää sen äänenvoimakkuuden. Tässä valitsemme Cuben ja sylinterin kahden eri muodon kanssa. Se voi tunnistaa muodot, analysoida ja laskea tilavuuden itse
GO-4 Smart Home Arduino Bot: 7 vaihetta (kuvilla)
GO-4 Smart Home Arduino Bot: Tässä projektissa näytän sinulle, miten voit rakentaa Smart Home Botin IOT-tekniikan avulla hallitsemaan kodinkoneitasi etänä Internetin välityksellä. Mutta ennen kuin aloitamme, puhumme tästä tekniikasta tehdä … Mikä on IOT? Th