Përmbajtje:

Sistemi i Arduino Smart Home: 7 hapa
Sistemi i Arduino Smart Home: 7 hapa

Video: Sistemi i Arduino Smart Home: 7 hapa

Video: Sistemi i Arduino Smart Home: 7 hapa
Video: Relay Control with Arduino & DWIN HMI Display 2024, Korrik
Anonim
Sistemi i Arduino Smart Home
Sistemi i Arduino Smart Home
Sistemi i Arduino Smart Home
Sistemi i Arduino Smart Home

Në këtë Instructable ne do t'ju tregojmë se si të krijoni sistemin tuaj të zgjuar të shtëpisë me Projektuesin e Aplikacioneve të MATLAB me një tabelë Sparkfun Red. Ky udhëzues mund të përdoret për të ndihmuar në marrjen e një kuptimi bazë të Dizajnuesit të Aplikacioneve të MATLAB, si dhe përdorimin e një fotorezistori, servomotori dhe një sensor lëvizjeje PIR.

Hapi 1: Për të filluar: Materialet

Ky projekt kërkon materialet e mëposhtme:

- Arduino Uno (Për këtë projekt ne përdorëm një tabelë Sparkfun Red)

- Një fotorezistues

- Një mini-servo motor

- Një servo motor i vazhdueshëm

- Një sensor lëvizjeje PIR

- Një sensor i temperaturës

- 2 LED

- Tela dhe rezistorë sipas nevojës

Hapi 2: Hapi 2: Afrimi i problemit për t'u zgjidhur

Qëllimi kryesor i këtij projekti ishte krijimi i një sistemi të zgjuar të përdorimit të shtëpisë duke koduar një bord Arduino Uno me MATLAB. Ne së pari menduam për të punuar vetëm me një sensor të temperaturës dhe lagështisë, megjithatë nëse do të qëndronim me ata dy sensorë, sistemi ynë i zgjuar i shtëpisë nuk do të ishte lehtësisht i tregtueshëm për një auditor të përgjithshëm. Ne vendosëm që donim të krijonim një sistem të përgjithshëm të energjisë të zgjuar në shtëpi që do të funksiononte si një termostat i zgjuar dhe sistem sigurie. Më në fund, ne donim të punonim me AppDesigner të MATLAB -it, në mënyrë që përdoruesi të mund të ndryshojë me lehtësi shtëpinë e zgjuar sipas dëshirës së tij.

Hapi 3: Hapi 3: Konfigurimi i GUI dhe Rrjedha e Kodit Bazë

Hapi 3: Konfigurimi i GUI dhe Rrjedha e Kodit Bazë
Hapi 3: Konfigurimi i GUI dhe Rrjedha e Kodit Bazë

Për të filluar do t'ju duhet të hapni MATLABs AppDesigner dhe të vendosni sa vijon:

Dy fusha numerike të redaktimit për një hyrje të pragut të nxehtë dhe të ftohtë

Një buton për të zhbllokuar derën

Dhe katër llamba treguese për oxhakun, derën, ventilatorin dhe dritën e përmbytjes.

Dy etiketa për të komunikuar me përdoruesin.

Për këtë projekt ne e kemi pasur më të lehtë të punojmë me variablat globale dhe funksionin e fillimit brenda projektuesit. Ju do të keni nevojë për këto ndryshore brenda funksionit të fillimit:

globale a

a = arduino ('COM3', 'uno', 'Bibliotekat', 'Servo'); global s global p global hotUI global ftohtëUI global zhbllokimin e temperaturës globale curr_temp globale int_light globale

Tani për tani ne kemi vetëm një detyrë për ndryshoren në mënyrë që kompjuteri juaj të mund të lexojë arduino. COM3 mund të ndryshojë në varësi të asaj porte që kompjuteri juaj mund të përdorë.

Kur ekzekutoni kodin, ai do të fillojë brenda funksionit të fillimit duke krijuar variablat globale dhe duke kalibruar sistemin. Në fund të këtij funksioni do të ketë një funksion të kohëmatësit që thërret një pronë që e kemi quajtur Timer. Brenda kësaj vetie Timer ne vendosim kodin që drejton sistemin e shtëpisë në mënyrë që kohëmatësi të mos ri-ekzekutojë kodin e kalibrimit.

Shënim: Ne nuk kemi dhënë udhëzime për instalime elektrike për sistemin. Ne iu referuam manualit që vjen me tabelën SparkFun Red.

Hapi 4: Hapi 3: Vendosja e sistemit të termostatit

Hapi 3: Vendosja e sistemit të termostatit
Hapi 3: Vendosja e sistemit të termostatit
Hapi 3: Vendosja e sistemit të termostatit
Hapi 3: Vendosja e sistemit të termostatit

Funksioni për termostatin funksionon si më poshtë:

Përdoruesi do të japë atë temperaturë që ata e konsiderojnë të jetë shumë e nxehtë ose shumë e ftohtë. Sapo termometri të marrë një lexim, nëse shtëpia është shumë e ftohtë atëherë "fireplace" (një LED i kuq) do të ndizet dhe ngroh shtëpinë. Nëse shtëpia është shumë e nxehtë, atëherë një "tifoz" (servo motor i vazhdueshëm) do të ndezë ftohjen e shtëpisë.

Për të koduar sistemin e termostatit:

Ne do të fillojmë brenda funksionit të fillimit për të shfaqur temperaturën aktuale dhe ta lëmë përdoruesin të hyjë në pragjet e tij të ftohta dhe të nxehta.

p = 'A0' %kunja e Photoresistor

volt = readVoltage (a, temp); celc = (volt-0.5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); %Numri i etiketës mund të ndryshojë pauzën (10); %Mund të dëshirojë të ndryshojë !!!!!

Pastaj ne do të përfundojmë sistemin e termostatit brenda vetisë Timer.

curr_temp globale

global coldUI global një hotUI global nëse curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; %Kthen shkrirjen e gjelbër të llambës GUIPWMDutyCycle (a, 'D11',.9) %Tre rreshtat e ardhshëm të kodit ekzekutojnë pauzën servo fan (10) writePWMDutyCycle (a, 'D11',.0) tjetër app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Kjo fik të gjitha llambat GUI dhe fireplace app. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D13', 0); fund

Hapi 5: Hapi 4: Vendosja e sistemit të dyerve

Hapi 4: Vendosja e sistemit të dyerve
Hapi 4: Vendosja e sistemit të dyerve

Funksioni për derën funksionon si më poshtë:

Kur përdorni për herë të parë kodin tuaj MATLAB, aplikacioni do t'ju kërkojë të hapni derën në mënyrë që rezistenca e fotos të marrë një lexim fillestar të dritës. Pasi të ketë përfunduar, kohëmatësi do të aktivizohet dhe fotorezistuesi do të marrë lexime dytësore të dritës. Nëse leximi i dritës dytësore është më i lehtë se fillestari, një servo motor do të bllokojë derën. Nëse përdoruesi dëshiron që dera të jetë e hapur, mund të shtypë një buton në aplikacion që do të zhbllokojë derën.

Për të konfiguruar servo motorin dhe rezistencën e fotos:

Për të koduar sistemin e dyerve:

Ne do të fillojmë brenda funksionit të fillimit për të marrë leximet fillestare të dritës.

s = servo (a, 'D9') %Pin mund të ndryshojë në bazë të instalimeve elektrike

app. Label_4. Text = 'Ju lutemi hapni derën për të kalibruar sistemin'; pauzë (15); %Kjo i jep kohë përdoruesit të hapë derën int_light = readVoltage (a, p); app. Label_4. Text = 'Mund të heqësh gishtin';

Tjetra, ne do të plotësojmë kodin brenda vetisë Timer

zhbllokimi global

global int_light global s global a %Merrni një lexim aktual të dritës për të krahasuar curr_light = readVoltage (a, p); % - Dera e Bllokimit - nëse int_light <curr_light writePosition (s, 1) % Pozicionet servo mund të ndryshojnë për një pauzë motorike (0.5); app. DoorStateLamp. Ngjyra = [0.47 0.67 0.19]; fund % - Hape Deren - nëse zhbllokohet == 1234 pauzë (0.5); writePosition (s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; fund

Më në fund do të krijojmë përgjigjen e butonit të zhbllokimit. Pasi përdoruesi të shtypë butonin e zhbllokimit, zhbllokimit të ndryshores globale do t'i caktohet një numër i cili mund të plotësojë deklaratën përfundimtare nëse në vetinë Timer.

zhbllokimi global

zhblloko = 1234;

Hapi 6: Hapi 6: Vendosja e Sistemit të Dritës së Përmbytjes

Hapi 6: Vendosja e sistemit të dritës së përmbytjes
Hapi 6: Vendosja e sistemit të dritës së përmbytjes

Funksioni për dritën e përmbytjes funksionon si më poshtë:

Kur filloni kodin MATLAB, sensori i lëvizjes PIR do të fillojë të zbulojë lëvizjen. Pasi të zbulojë një lloj lëvizjeje, do të ndërpresë një sinjal të energjisë. Pasi të ndërpritet ai sinjal, një dritë përmbytjeje do të ndizet jashtë shtëpisë.

Për të konfiguruar sistemin e dritës së përmbytjes:

Për të koduar sistemin e dritave të përmbytjes:

Këtë herë ne mund të kalojmë në vetinë Timer sepse nuk kemi nevojë të shkruajmë ndonjë ndryshore shtesë.

human_detected = readDigitalPin (a, 'D2'); %Pin mund të ndryshojë në bazë të konfigurimit nëse human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin mund të ndryshojë app. FloodLightStateLamp. Color = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; shkruajDigitalPin (a, 'D7', 0) fund

Hapi 7: Përfundimi

Tani që keni një draft të GUI -t tuaj me Dizajnerin e Aplikacioneve dhe kodin tuaj për Arduino, jeni gati të bëni redaktimet tuaja ose të lidhni Arduino -n tuaj dhe të shkoni!

Recommended: