Turinys:

„Arduino Smart Home“sistema: 7 žingsniai
„Arduino Smart Home“sistema: 7 žingsniai

Video: „Arduino Smart Home“sistema: 7 žingsniai

Video: „Arduino Smart Home“sistema: 7 žingsniai
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Lapkritis
Anonim
„Arduino“išmaniųjų namų sistema
„Arduino“išmaniųjų namų sistema
„Arduino“išmaniųjų namų sistema
„Arduino“išmaniųjų namų sistema

Šioje instrukcijoje parodysime, kaip sukurti savo išmaniųjų namų sistemą naudojant „MATLAB“programų kūrėją su „Sparkfun Red“lenta. Ši instrukcija gali būti naudojama norint geriau suprasti „MATLAB“programų kūrėją, taip pat naudojant fotorezistorių, variklį ir PIR judesio jutiklį.

1 žingsnis: pradžia: medžiagos

Šiam projektui reikalingos šios medžiagos:

- Arduino Uno (šiam projektui naudojome „Sparkfun Red“lentą)

- Vienas fotorezistorius

- Vienas mini servo variklis

- Vienas nenutrūkstamas servo variklis

- Vienas PIR judesio jutiklis

- Vienas temperatūros jutiklis

- 2 šviesos diodai

- Prireikus laidai ir rezistoriai

2 veiksmas: 2 žingsnis: problemos sprendimo būdas

Pagrindinis šio projekto tikslas buvo sukurti lengvai naudojamą išmaniųjų namų sistemą, koduojant „Arduino Uno“plokštę su MATLAB. Pirmiausia galvojome apie darbą su temperatūros ir drėgmės jutikliu, tačiau jei pasiliktume prie šių dviejų jutiklių, mūsų išmaniųjų namų sistema nebūtų lengvai parduodama plačiajai auditorijai. Nusprendėme, kad norime sukurti bendrą išmaniųjų namų energetinę sistemą, kuri veiktų kaip išmanusis termostatas ir apsaugos sistema. Galiausiai norėjome dirbti su „MATLAB“„AppDesigner“, kad vartotojas galėtų lengvai keisti išmaniuosius namus.

3 veiksmas: 3 veiksmas: GUI ir pagrindinio kodo srauto konfigūravimas

3 veiksmas: GUI ir pagrindinio kodo srauto konfigūravimas
3 veiksmas: GUI ir pagrindinio kodo srauto konfigūravimas

Norėdami pradėti, turite atidaryti „MATLABs AppDesigner“ir įdėti:

Du skaitinio redagavimo laukai karšto ir šalto slenksčio įvedimui

Mygtukas durims atrakinti

Ir keturios židinio, durų, ventiliatoriaus ir potvynių lemputės.

Dvi etiketės, skirtos bendrauti su vartotoju.

Šiam projektui mums buvo lengviau dirbti su visuotiniais kintamaisiais ir paleidimo funkcija dizainerio viduje. Paleidimo funkcijoje jums reikės šių kintamųjų:

pasaulinis a

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

Šiuo metu mes turime tik kintamojo priskyrimą, kad jūsų kompiuteris galėtų skaityti arduino. COM3 gali skirtis priklausomai nuo to, kokį prievadą naudoja jūsų kompiuteris.

Kai paleisite kodą, jis prasidės paleidimo funkcijoje, kuriant visuotinius kintamuosius ir kalibruojant sistemą. Šios funkcijos pabaigoje bus laikmačio funkcija, kuri iškviečia nuosavybę, kurią pavadinome laikmačiu. Šioje „Timer“ypatybėje mes įvedame kodą, kuriame veikia namų sistema, kad laikmatis iš naujo nepaleistų kalibravimo kodo.

Pastaba: mes nepateikėme jokių sistemos prijungimo instrukcijų. Mes nurodėme vadovą, pateiktą kartu su „SparkFun Red“lenta.

4 žingsnis: 3 žingsnis: termostato sistemos nustatymas

3 žingsnis: nustatykite termostato sistemą
3 žingsnis: nustatykite termostato sistemą
3 žingsnis: nustatykite termostato sistemą
3 žingsnis: nustatykite termostato sistemą

Termostato funkcija veikia taip:

Vartotojas įves, kokią temperatūrą jie laiko per karšta ar per šalta. Kai termometras nuskaito, jei namuose yra per šalta, „židinys“(raudonas šviesos diodas) įsijungs ir šildys namus. Jei namuose per karšta, „ventiliatorius“(nuolatinis servo variklis) įjungia namo aušinimą.

Norėdami koduoti termostato sistemą:

Pradėsime nuo paleidimo funkcijos, kad būtų rodoma esama temperatūra ir leidžiame vartotojui įvesti savo šalto ir karšto slenksčius.

p = 'A0' %fotorezistoriaus kaištis

voltas = skaitymasĮtampa (a, temp); celc = (voltas-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); %Etiketės numeris gali pakeisti pauzę (10); %Gali norėti pasikeisti !!!!!

Tada mes užbaigsime termostato sistemą laikmačio ypatybėje.

global curr_temp

global coldUI global a global hotUI if curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Pasirodo GUI lemputė žalia rašytiPWMDutyCycle (a, 'D11',.9) %Kitos trys kodo eilutės paleidžia servo ventiliatoriaus pauzę (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Tai išjungia visas GUI lempas ir židinio programą. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); galas

5 veiksmas: 4 žingsnis: durų sistemos nustatymas

4 žingsnis: durų sistemos nustatymas
4 žingsnis: durų sistemos nustatymas

Durų funkcija veikia taip:

Kai pirmą kartą paleisite MATLAB kodą, programa paprašys atidaryti duris, kad fotorezistorius galėtų iš pradžių nuskaityti šviesą. Kai tai bus baigta, laikmatis įsijungs ir fotorezistorius ims antrinius šviesos rodmenis. Jei antrinis šviesos rodmuo yra lengvesnis nei pradinis, servo variklis užrakins duris. Jei vartotojas nori atrakinti duris, jis gali paspausti programėlėje esantį mygtuką, kuris atrakins duris.

Norėdami sukonfigūruoti servo variklį ir fotorezistorių:

Norėdami koduoti durų sistemą:

Pradėsime nuo paleidimo funkcijos, kad pamatytume pradinius šviesos rodmenis.

s = servo (a, 'D9') %Kaištis gali keistis priklausomai nuo laidų

app. Label_4. Text = 'Prašome atidaryti duris, kad sukalibruotumėte sistemą'; pauzė (15); %Tai suteikia vartotojui laiko atidaryti duris int_light = readVoltage (a, p); app. Label_4. Text = 'Galite nuimti pirštą';

Tada mes užpildysime kodą „Timer“ypatybėje

visuotinis atrakinimas

global int_light global s global a %Gaukite dabartinį šviesos rodiklį, kad galėtumėte palyginti curr_light = readVoltage (a, p); % - Užrakinti duris - jei int_light <curr_light writePosition (s, 1) % Servo padėtys gali skirtis priklausomai nuo variklio pauzės (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; pabaiga % - atrakinti duris - jei atrakinti == 1234 pauzė (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; galas

Galiausiai sukursime atrakinimo mygtuko atšaukimą. Kai vartotojas paspaus atrakinimo mygtuką, visuotinis kintamasis atrakinimas bus priskirtas skaičiui, kuris gali užbaigti galutinį if teiginį laikmačio ypatybėje.

visuotinis atrakinimas

atrakinti = 1234;

6 veiksmas: 6 veiksmas: potvynių šviesos sistemos nustatymas

6 veiksmas: potvynių šviesos sistemos nustatymas
6 veiksmas: potvynių šviesos sistemos nustatymas

Prožektoriaus funkcija veikia taip:

Kai paleidžiate MATLAB kodą, PIR judesio jutiklis pradės aptikti judesį. Aptikęs tam tikro tipo judesį, jis nutrauks maitinimo signalą. Kai šis signalas bus nutrauktas, už namo užsidegs potvynio šviesa.

Norėdami sukonfigūruoti apšvietimo sistemą:

Apšvietimo sistemos kodavimas:

Šį kartą galime pereiti prie „Timer“ypatybės, nes mums nereikia rašyti jokių papildomų kintamųjų.

human_detected = readDigitalPin (a, 'D2'); %Smeigtukas gali keistis priklausomai nuo konfigūracijos, jei human_detected == 0 writeDigitalPin (a, 'D7', 1) %PIN gali pakeisti 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) pabaiga

7 žingsnis: Išvada

Dabar, kai turite „GUI“juodraštį su „App Designer“ir „Arduino“kodą, esate pasirengęs atlikti savo pakeitimus arba prijungti „Arduino“ir eiti!

Rekomenduojamas: