Obsah:

Inteligentní domácí systém Arduino: 7 kroků
Inteligentní domácí systém Arduino: 7 kroků

Video: Inteligentní domácí systém Arduino: 7 kroků

Video: Inteligentní domácí systém Arduino: 7 kroků
Video: Zavřete oči a poslouchejte 😂😂😂 2024, Listopad
Anonim
Inteligentní domácí systém Arduino
Inteligentní domácí systém Arduino
Inteligentní domácí systém Arduino
Inteligentní domácí systém Arduino

V tomto Instructable vám ukážeme, jak vytvořit svůj vlastní inteligentní domácí systém pomocí MATLAB's App Designer s tabulí Sparkfun Red. Tento Instructable lze použít k získání základního porozumění programu MATLAB App Designer a také pomocí fotorezistoru, servomotoru a pohybového senzoru PIR.

Krok 1: Začněte: Materiály

Tento projekt vyžaduje následující materiály:

- Arduino Uno (Pro tento projekt jsme použili Sparkfun Red board)

- Jeden fotorezistor

- Jeden mini-servomotor

- Jeden nepřetržitý servomotor

- Jeden snímač pohybu PIR

- Jedno teplotní čidlo

- 2 LED diody

- Dráty a odpory podle potřeby

Krok 2: Krok 2: Přistoupení k řešení problému

Hlavním cílem tohoto projektu bylo vytvořit snadno použitelný inteligentní domácí systém kódováním desky Arduino Uno s MATLAB. Nejprve jsme přemýšleli o práci se snímačem teploty a vlhkosti, ale pokud bychom zůstali u těchto dvou senzorů, náš systém inteligentní domácnosti by nebyl snadno prodejný pro široké publikum. Rozhodli jsme se, že chceme vytvořit celkový inteligentní domácí energetický systém, který bude fungovat jako inteligentní termostat a zabezpečovací systém. Nakonec jsme chtěli pracovat s aplikací MATLAB AppDesigner, aby si uživatel mohl inteligentní dům snadno libovolně upravovat.

Krok 3: Krok 3: Konfigurace GUI a základního toku kódu

Krok 3: Konfigurace GUI a základního toku kódu
Krok 3: Konfigurace GUI a základního toku kódu

Chcete -li začít, musíte otevřít MATLABs AppDesigner a umístit následující:

Dvě numerická pole pro zadání horkého a studeného prahu

Tlačítko pro odemčení dveří

A čtyři kontrolky pro krb, dvířka, ventilátor a záplavové světlo.

Dva štítky pro komunikaci s uživatelem.

Pro tento projekt jsme zjistili, že je jednodušší pracovat s globálními proměnnými a spouštěcí funkcí v rámci návrháře. V rámci spouštěcí funkce budete potřebovat tyto proměnné:

globální a

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

Právě teď máme přiřazení pouze pro proměnnou, takže váš počítač může číst arduino. COM3 se může lišit v závislosti na tom, jaký port váš počítač používá.

Když spustíte kód, spustí se v rámci spouštěcí funkce, která vytvoří globální proměnné a zkalibruje systém. Na konci této funkce bude funkce časovače, která volá vlastnost, kterou jsme pojmenovali Timer. Do této vlastnosti Timer vložíme kód, který spouští domácí systém, takže časovač znovu nespustí kalibrační kód.

Poznámka: Nedali jsme žádné pokyny k zapojení systému. Odkazovali jsme na manuál, který je součástí desky SparkFun Red.

Krok 4: Krok 3: Nastavení systému termostatu

Krok 3: Nastavení systému termostatu
Krok 3: Nastavení systému termostatu
Krok 3: Nastavení systému termostatu
Krok 3: Nastavení systému termostatu

Funkce termostatu funguje následovně:

Uživatel zadá, jakou teplotu považuje za příliš horkou nebo příliš nízkou. Jakmile je teploměr naměřený, pokud je v domě příliš zima, zapne se „krb“(červená LED) a vytopí dům. Pokud je dům příliš horký, pak „ventilátor“(nepřetržitý servomotor) zapne chlazení domu.

Kódování systému termostatu:

Začneme v rámci funkce spouštění, abychom zobrazili aktuální teplotu a nechali uživatele zadat své prahové hodnoty za studena a za tepla.

p = 'A0' %Pin fotorezistoru

volt = readVoltage (a, temp); celc = (volt-0,5).*100; proud_temp = celc*9/5+32; app. Label_4. Text = num2str (proud_temp); %Číslo štítku může změnit pauzu (10); %Může chtít změnit !!!!!

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

globální proud_temp

global coldUI global a global hotUI if toku_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; %Otočí zelenou lampu GUI writePWMDutyCycle (a, 'D11',.9) %Následující tři řádky kódu spustí pauzu ventilátoru serva (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Tím se vypnou všechny GUI lampy a krbová aplikace. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); konec

Krok 5: Krok 4: Nastavení systému dveří

Krok 4: Nastavení dveřního systému
Krok 4: Nastavení dveřního systému

Funkce pro dveře funguje následovně:

Když poprvé spustíte kód MATLAB, aplikace vás vyzve k otevření dveří, aby fotorezistor mohl provést počáteční čtení světla. Jakmile je to dokončeno, časovač se aktivuje a fotorezistor provede odečty sekundárního světla. Pokud je hodnota sekundárního světla lehčí než původní, dveře zamkne servomotor. Pokud chce uživatel odemknout dveře, může v aplikaci stisknout tlačítko, které dveře odemkne.

Konfigurace servomotoru a fotorezistoru:

Kódování systému dveří:

Začneme v rámci spouštěcí funkce, abychom provedli počáteční měření světla.

s = servo (a, 'D9') %Pin se může měnit na základě zapojení

app. Label_4. Text = 'Otevřete dveře a zkalibrujte systém'; pauza (15); %To dává uživateli čas na otevření dveří int_light = readVoltage (a, p); app. Label_4. Text = 'Můžete odebrat prst';

Dále dokončíme kód ve vlastnosti Timer

globální odemknutí

global int_light global s global a %Získejte aktuální světelnou hodnotu pro porovnání proud_light = readVoltage (a, p); % - Dveře zámku - pokud int_light < app. DoorStateLamp. Color = [0,47 0,67 0,19]; end % - Unlock Door - if unlock == 1234 pause (0,5); writePosition (s, 0,52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; konec

Nakonec vytvoříme zpětné volání tlačítka odemčení. Jakmile uživatel stiskne tlačítko pro odemknutí, bude globálnímu odemčení proměnné přiřazeno číslo, které může dokončit příkaz final if ve vlastnosti Timer.

globální odemčení

odemknout = 1234;

Krok 6: Krok 6: Nastavení systému Flood Light

Krok 6: Nastavení systému Flood Light
Krok 6: Nastavení systému Flood Light

Funkce pro povodňové světlo funguje následovně:

Když spustíte kód MATLAB, pohybový senzor PIR začne detekovat pohyb. Jakmile detekuje nějaký druh pohybu, přeruší napájecí signál. Jakmile je tento signál přerušen, mimo domov se rozsvítí povodňové světlo.

Konfigurace systému světlometů:

Kódování systému světlometů:

Tentokrát můžeme přeskočit na vlastnost Timer, protože nepotřebujeme psát žádné další proměnné.

human_detected = readDigitalPin (a, 'D2'); %Pin se může měnit na základě konfigurace, pokud human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin může změnit app. FloodLightStateLamp. Color = [0,47 0,67 0,19]; elseif human_detected == 1 aplikace. FloodLightStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D7', 0) konec

Krok 7: Závěr

Nyní, když máte návrh grafického uživatelského rozhraní s aplikací App Designer a kódem pro Arduino, jste připraveni provádět vlastní úpravy nebo zapojit Arduino a jít!

Doporučuje: