Sisukord:

Arduino nutikas kodu süsteem: 7 sammu
Arduino nutikas kodu süsteem: 7 sammu

Video: Arduino nutikas kodu süsteem: 7 sammu

Video: Arduino nutikas kodu süsteem: 7 sammu
Video: wifi пульт для IR и RF кодов Broadlink RM4C Pro, работа в Home Assistant - управляем кондиционером 2024, Juuli
Anonim
Arduino nutikas kodu süsteem
Arduino nutikas kodu süsteem
Arduino nutikas kodu süsteem
Arduino nutikas kodu süsteem

Selles juhendis näitame teile, kuidas luua oma nutikodu süsteem MATLABi rakenduste disaineriga Sparkfun Redi tahvliga. Seda juhendit saab kasutada MATLABi rakenduste disaineri põhjalikumaks mõistmiseks, samuti fototakisti, servomootori ja PIR -liikumisanduri kasutamiseks.

Samm: alustamiseks: materjalid

Selle projekti jaoks on vaja järgmisi materjale:

- Arduino Uno (selle projekti jaoks kasutasime Sparkfun Red tahvlit)

- üks fototakisti

- üks mini-servomootor

- Üks pidev servomootor

- üks PIR -liikumisandur

- Üks temperatuuriandur

- 2 LED -i

- Juhtmed ja takistid vastavalt vajadusele

2. samm: 2. samm: lähenemine lahendatavale probleemile

Selle projekti peamine eesmärk oli luua hõlpsasti kasutatav nutikas kodu süsteem, kodeerides Arduino Uno plaadi MATLAB -iga. Kõigepealt mõtlesime lihtsalt temperatuuri ja niiskuse anduriga töötamisele, kuid kui jääksime nende kahe anduri juurde, poleks meie nutikas kodu süsteem üldsusele kergesti turustatav. Otsustasime, et tahame luua üldise nutika kodu energiasüsteemi, mis toimiks nutika termostaadi ja turvasüsteemina. Lõpuks tahtsime teha koostööd MATLABi rakendusega AppDesigner, et kasutaja saaks nutikat kodu hõlpsalt oma äranägemise järgi muuta.

3. samm: 3. samm: GUI ja põhilise koodivoo seadistamine

3. samm: GUI ja põhilise koodivoo seadistamine
3. samm: GUI ja põhilise koodivoo seadistamine

Alustamiseks peate avama MATLABs AppDesigner ja asetama järgmise:

Kaks numbrilist redigeerimisvälja kuuma ja külma läve sisendiks

Nupp ukse avamiseks

Ja neli märgutuld kamina, ukse, ventilaatori ja üleujutuste jaoks.

Kaks silti kasutajaga suhtlemiseks.

Selle projekti puhul oli meil lihtsam töötada globaalsete muutujate ja disaineri käivitusfunktsiooniga. Käivitusfunktsioonis on teil vaja neid muutujaid:

ülemaailmne a

a = arduino ('COM3', 'uno', 'raamatukogud', 'servo'); global s global p globaalne hotUI globaalne coldUI globaalne avamine globaalne temp globaalne curr_temp global int_light

Praegu on meil ainult muutujale määratud ülesanne, et teie arvuti saaks arduinot lugeda. COM3 võib erineda sõltuvalt sellest, millist porti teie arvuti võib kasutada.

Koodi käivitamisel algab see käivitusfunktsiooni raames, luues globaalsed muutujad ja kalibreerides süsteemi. Selle funktsiooni lõpus on taimerifunktsioon, mis kutsub atribuudi nimega Taimer. Selles atribuudis Taimer sisestame kodusüsteemi käivitava koodi, nii et taimer ei käivita kalibreerimiskoodi uuesti.

Märkus: me ei andnud süsteemile ühtegi juhtmestikku. Viitasime SparkFun Red plaadiga kaasasolevale kasutusjuhendile.

4. samm: 3. samm: termostaadisüsteemi seadistamine

Samm: termostaadisüsteemi seadistamine
Samm: termostaadisüsteemi seadistamine
Samm: termostaadisüsteemi seadistamine
Samm: termostaadisüsteemi seadistamine

Termostaadi funktsioon töötab järgmiselt.

Kasutaja sisestab, millist temperatuuri ta peab liiga kuumaks või liiga külmaks. Kui termomeeter võtab näidu ja kui kodus on liiga külm, lülitub "kamin" (punane LED) sisse ja soojendab kodu. Kui kodus on liiga palav, lülitab maja jahutamise sisse ventilaator (pidev servomootor).

Termostaadisüsteemi kodeerimiseks toimige järgmiselt.

Alustame käivitusfunktsioonist, et kuvada praegust temperatuuri ja lasta kasutajal sisestada oma külma ja kuuma künnised.

p = 'A0' %fototakisti tihvt

volt = lugemispinge (a, temp); celc = (volt-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); %Sildi number võib muuta pausi (10); Võib -olla tahaks muutuda !!!!!

Seejärel lõpetame termostaadisüsteemi atribuudi Taimer abil.

globaalne curr_temp

global coldUI global a global hotUI if curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Muudab GUI -lambi roheliseks 0,90 0,90 0,90]; %See lülitab kõik GUI lambid ja kaminarakenduse välja. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); lõpp

5. samm: 4. samm: uksesüsteemi seadistamine

4. samm: uksesüsteemi seadistamine
4. samm: uksesüsteemi seadistamine

Ukse funktsioon toimib järgmiselt.

MATLAB -koodi esmakordsel käivitamisel palub rakendus teil ukse avada, et fototakisti saaks esmase valgusnäidu. Kui see on lõpule viidud, aktiveerub taimer ja fototakisti võtab sekundaarsed valgusnäidud. Kui lisavalguse näit on esialgsest kergem, lukustab servomootor ukse. Kui kasutaja soovib ukse lukust lahti saada, saab ta vajutada rakenduses nuppu, mis avab ukse.

Servomootori ja fototakisti konfigureerimiseks toimige järgmiselt.

Uksesüsteemi kodeerimiseks toimige järgmiselt.

Alustame käivitusfunktsiooni raames, et võtta esmased valgusnäidud.

s = servo (a, 'D9') %Pin võib juhtmestikust sõltuvalt muutuda

app. Label_4. Text = 'Palun avage uks süsteemi kalibreerimiseks'; paus (15); %See annab kasutajale aega ukse avamiseks int_light = readVoltage (a, p); app. Label_4. Text = 'Võite sõrme eemaldada';

Järgmisena täidame koodi atribuudis Taimer

globaalne avamine

globaalne int_light globaalne s globaalne a %Võta võrdlusesse curr_light = readVoltage (a, p); % - Lukusta uks - kui int_light <curr_light writePosition (s, 1) % Servoasendid võivad mootori pausi (0,5) kohta erineda; app. DoorStateLamp. Color = [0,47 0,67 0,19]; lõpp % - ukse avamine - kui avada == 1234 paus (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; lõpp

Lõpuks loome avamisnupu tagasihelistamise. Kui kasutaja on avamisnuppu vajutanud, määratakse globaalsele muutujale avamiseks number, mis saab omaduse Taimer lõpliku if -avalduse lõpule viia.

globaalne avamine

avamine = 1234;

6. samm: 6. samm: üleujutussüsteemi seadistamine

6. samm: üleujutussüsteemi seadistamine
6. samm: üleujutussüsteemi seadistamine

Üleujutuste funktsioon toimib järgmiselt.

Kui käivitate MATLAB -koodi, hakkab PIR -liikumisandur tuvastama liikumist. Kui see tuvastab teatud liikumise, katkestab see toitesignaali. Kui see signaal on ära lõigatud, süttib väljaspool kodu üleujutuslamp.

Üleujutussüsteemi konfigureerimiseks toimige järgmiselt.

Üleujutussüsteemi kodeerimiseks toimige järgmiselt.

Seekord võime minna atribuudi Taimer juurde, kuna me ei pea lisamuutujaid kirjutama.

human_detected = readDigitalPin (a, 'D2'); %Pin võib muutuda sõltuvalt konfiguratsioonist, kui human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin võib muuta 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) lõpp

Samm 7: Järeldus

Nüüd, kui teil on rakenduse kujundajaga oma GUI mustand ja Arduino kood, olete valmis oma muudatusi tegema või Arduino ühendama ja minema!

Soovitan: