Obsah:

Inteligentný domáci systém Arduino: 7 krokov
Inteligentný domáci systém Arduino: 7 krokov

Video: Inteligentný domáci systém Arduino: 7 krokov

Video: Inteligentný domáci systém Arduino: 7 krokov
Video: Микроволновый zigbee датчик присутствия YXZBRB58 - обзор и тестирование 2024, November
Anonim
Inteligentný domáci systém Arduino
Inteligentný domáci systém Arduino
Inteligentný domáci systém Arduino
Inteligentný domáci systém Arduino

V tomto návode vám ukážeme, ako si vytvoriť vlastný inteligentný domáci systém pomocou aplikácie MATLAB App Designer s doskou Sparkfun Red. Tento návod je možné použiť na pomoc pri základnom porozumení programu MATLAB App Designer a pri použití fotorezistora, servomotora a snímača pohybu PIR.

Krok 1: Začnite: Materiály

Tento projekt vyžaduje nasledujúce materiály:

- Arduino Uno (Na tento projekt sme použili červenú dosku Sparkfun)

- Jeden fotoodpor

- Jeden mini-servomotor

- Jeden nepretržitý servomotor

- Jeden snímač pohybu PIR

- Jeden teplotný snímač

- 2 LED diódy

- Drôty a odpory podľa potreby

Krok 2: Krok 2: Prístup k riešenému problému

Hlavným cieľom tohto projektu bolo vytvoriť ľahko použiteľný inteligentný domáci systém kódovaním dosky Arduino Uno s MATLAB. Najprv sme premýšľali o práci so snímačom teploty a vlhkosti, keby sme však zostali pri týchto dvoch snímačoch, náš systém inteligentnej domácnosti by nebol ľahko obchodovateľný pre široké publikum. Rozhodli sme sa, že chceme vytvoriť celkový inteligentný energetický systém pre domácnosť, ktorý bude fungovať ako inteligentný termostat a bezpečnostný systém. Nakoniec sme chceli pracovať s AppDesignerom MATLABu, aby si užívateľ mohol inteligentnú domácnosť ľahko meniť, ako chce.

Krok 3: Krok 3: Konfigurácia toku GUI a základného kódu

Krok 3: Konfigurácia grafického rozhrania a toku základného kódu
Krok 3: Konfigurácia grafického rozhrania a toku základného kódu

Na začiatok budete musieť otvoriť MATLABs AppDesigner a umiestniť nasledovné:

Dve číselné pole na úpravu vstupu horúceho a studeného prahu

Tlačidlo na odomknutie dverí

A štyri kontrolky pre krb, dvierka, ventilátor a protipovodňové svetlo.

Dva štítky na komunikáciu s používateľom.

Pre tento projekt sme zistili, že je jednoduchšie pracovať s globálnymi premennými a funkciou spustenia v návrhárovi. Na spustenie funkcie budete potrebovať tieto premenné:

globálna a

a = arduino ('COM3', 'uno', 'knižnice', 'servo'); global s global p global hotUI global coldUI global unlock global temp global temp_temp global int_light

Teraz máme iba priradenie premennej, aby váš počítač dokázal čítať arduino. COM3 sa môže líšiť v závislosti od toho, aký port váš počítač môže používať.

Keď spustíte kód, spustí sa v rámci spúšťacej funkcie, vytvára globálne premenné a kalibruje systém. Na konci tejto funkcie bude funkcia časovača, ktorá volá vlastnosť, ktorú sme pomenovali Timer. Do tejto vlastnosti Časovač vložíme kód, ktorý spúšťa domáci systém, takže časovač znova nespustí kalibračný kód.

Poznámka: Nedali sme žiadne pokyny na zapojenie systému. Odkazovali sme na príručku, ktorá sa dodáva s doskou SparkFun Red.

Krok 4: Krok 3: Nastavenie systému termostatu

Krok 3: Nastavenie systému termostatu
Krok 3: Nastavenie systému termostatu
Krok 3: Nastavenie systému termostatu
Krok 3: Nastavenie systému termostatu

Funkcia termostatu funguje nasledovne:

Používateľ zadá, akú teplotu považuje za príliš horúcu alebo príliš studenú. Keď je teplomer odčítaný, ak je v dome príliš zima, zapne sa „krb“(červená dióda LED) a vykuruje dom. Ak je dom príliš horúci, potom "ventilátor" (nepretržitý servomotor) zapne chladenie domu.

Kódovanie systému termostatu:

Začneme v rámci funkcie spustenia, aby sme zobrazili aktuálnu teplotu a umožnili používateľovi zadať svoje prahové hodnoty za studena a za tepla.

p = 'A0' %Fotorezistorový kolík

volt = readVoltage (a, temp); celc = (volt-0,5).*100; current_temp = celc*9/5+32; app. Label_4. Text = num2str (proud_temp); %Počet štítkov môže zmeniť pauzu (10); %Možno sa chce zmeniť !!!!!

Potom dokončíme systém termostatu v rámci vlastnosti Timer.

globálna teplota_meny

global coldUI global a global hotUI if toku_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Otočí zelenú lampu GUI writePWMDutyCycle (a, 'D11',.9) %Nasledujúce tri riadky kódu spustia pauzu ventilátora serva (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Toto vypne všetky GUI žiarovky a aplikáciu krbu. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); koniec

Krok 5: Krok 4: Nastavenie systému dverí

Krok 4: Nastavenie systému dverí
Krok 4: Nastavenie systému dverí

Funkcia pre dvere funguje nasledovne:

Pri prvom spustení kódu MATLAB vás aplikácia vyzve, aby ste otvorili dvere, aby fotorezistor mohol vykonať prvé čítanie svetla. Hneď ako je to dokončené, aktivuje sa časovač a fotorezistor odčíta sekundárne svetlo. Ak je sekundárne svetlo svetlejšie ako pôvodné, dvere zamkne servomotor. Ak chce používateľ odomknúť dvere, môže v aplikácii stlačiť tlačidlo, ktoré dvere odomkne.

Konfigurácia servomotora a fotorezistora:

Kódovanie systému dverí:

Začneme v rámci funkcie spustenia, aby sme vykonali počiatočné hodnoty svetla.

s = servo (a, 'D9') %Kolík sa môže meniť v závislosti od zapojenia

app. Label_4. Text = 'Prosím otvorte dvere na kalibráciu systému'; pauza (15); %To dáva užívateľovi čas na otvorenie dverí int_light = readVoltage (a, p); app. Label_4. Text = 'Môžete odstrániť svoj prst';

Ďalej dokončíme kód v rámci vlastnosti Časovač

globálne odomknutie

global int_light global s global a %Získajte aktuálnu svetelnú hodnotu na porovnanie prúd_light = readVoltage (a, p); % - Uzamykateľné dvere - ak je int_light <aktuálne_svetlo zápisuPozícia (s, 1) % Polohy serva sa môžu líšiť podľa prestávky motora (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; end % - Unlock Door - if unlock == 1234 pause (0,5); writePosition (s,, 52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; koniec

Nakoniec vytvoríme spätné volanie pomocou tlačidla odomknutia. Hneď ako používateľ stlačí tlačidlo odomknutia, bude globálnemu odomknutiu premennej priradené číslo, ktoré môže dokončiť príkaz if v vlastnosti Timer.

globálne odomknutie

odomknúť = 1234;

Krok 6: Krok 6: Nastavenie systému Flood Light

Krok 6: Nastavenie systému Flood Light
Krok 6: Nastavenie systému Flood Light

Funkcia pre povodňové svetlo funguje nasledovne:

Keď spustíte kód MATLAB, snímač pohybu PIR začne detekovať pohyb. Akonáhle zaznamená nejaký druh pohybu, preruší napájací signál. Akonáhle je tento signál prerušený, mimo domu sa zapne povodňové svetlo.

Konfigurácia systému povodňových svetiel:

Kódovanie systému povodňových svetiel:

Tentoraz môžeme preskočiť na vlastnosť Časovač, pretože nepotrebujeme písať žiadne ďalšie premenné.

human_detected = readDigitalPin (a, 'D2'); %Pin sa môže meniť na základe konfigurácie, ak human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin môže zmeniť aplikáciu. FloodLightStateLamp. Color = [0,47 0,67 0,19]; elseif human_detected == 1 aplikácia. FloodLightStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D7', 0) koniec

Krok 7: Záver

Teraz, keď máte návrh GUI s App Designer a kódom pre Arduino, ste pripravení vykonávať vlastné úpravy alebo zapojiť Arduino a ísť!

Odporúča: