Obsah:

Projekt inteligentnej domácnosti EF230: 7 krokov
Projekt inteligentnej domácnosti EF230: 7 krokov

Video: Projekt inteligentnej domácnosti EF230: 7 krokov

Video: Projekt inteligentnej domácnosti EF230: 7 krokov
Video: Inteligentná domácnosť riadená pomocou BBC micro:bit 2024, November
Anonim
Projekt inteligentnej domácnosti EF230
Projekt inteligentnej domácnosti EF230

Potrebné diely a materiály:

  • 1 Arduino MKR 1000
  • 3 chlebové dosky
  • 2 mini fotobunky
  • 1 tranzistory NPN
  • 1 Mini vypínač
  • 1 LED - RGB (4 hroty)
  • 1 LED (farba podľa vášho výberu)
  • 1 dióda 1N4148
  • 1 10K ohmové odpory
  • Rezistor 5 100 ohmov
  • 1 snímač teploty TMP36
  • Prevodový motor 1 DAGU s pomerom strán 48: 1
  • 25 prepojovacích káblov
  • USB kábel
  • Program MATLAB
  • Sprievodca experimentom SIK pre dosku Arduino 101/Genuino 101 - odkaz na sprievodcu experimentom SIK

Tento projekt podrobne popisuje koncepčný návrh systému inteligentnej domácnosti, ktorý by využíval údaje na pomoc majiteľom domov pri optimalizácii spotreby energie a bezpečnosti. Obsahuje svetelný senzor na zapnutie vonkajších svetiel v noci, svetelný senzor pre bezpečnosť a teplotný senzor a ventilátor na reguláciu vnútornej teploty.

Krok 1: LED citlivá na svetlo

  • Svetlocitlivé nastavenie LED diódy má predstavovať vonkajšie svetlá v dome, ktoré sa zapína v noci.
  • Keď malá fotobunka zaznamená znížené množstvo svetla, rozsvieti sa LED dióda.
  • Na inteligentný domov to má vplyv na energiu a bezpečnosť. Šetrí energiu tým, že necháva zhasnuté svetlá cez deň, a v noci poskytne zvýšenú bezpečnosť.
  • Presné zapojenie a nastavenie pre túto časť projektu nájdete v experimente 7 v experimentálnej príručke SIK.

Krok 2: Mini vypínač

  • Prepínač je prvým krokom v procese zabezpečenia inteligentnej domácnosti.
  • Keď je zapnutý, prepínač spustí reakciu s otázkou, či sa užívateľ chce dostať do režimu „Doma“alebo „Preč“.
  • Ak je zvolený režim „Doma“, zabezpečenie sa považuje za deaktivované, ale výberom režimu „Mimo“sa aktivuje bezpečnostný systém.
  • Zapojenie pre túto časť projektu nájdete v experimente 6 v Príručke experimentov. Na účely inteligentného domu nemusia byť LED diódy a ich spojovacie vodiče nájdené v experimente 6 zahrnuté.

Krok 3: Druhá fotobunka

Druhá fotobunka
Druhá fotobunka
  • Druhá fotobunka slúži ako snímač pohybu pre bezpečnostný systém inteligentnej domácnosti.
  • Senzor sa používa iba vtedy, keď je systém v režime „Preč“, ako je popísané v predchádzajúcom kroku.
  • Ak fotobunka zaznamená zníženie množstva svetla, ktoré prijíma, rozpozná to ako pohyb vo vnútri domu.
  • Nastavenie pre túto časť projektu nájdete v experimente 7 v Príručke experimentov SIK. Do zapojenia však musí byť zahrnutá iba fotobunka a jej spojovacie vodiče.

Krok 4: RGB LED

  • RGB LED sa používa v spojení s mini vypínačom a druhou fotobunkou pre bezpečnostný systém inteligentnej domácnosti.
  • Tri rôzne farby sa používajú ako indikátory pre obyvateľov inteligentných domov.
  • Keď je systém v režime „Home“, dióda LED sa zmení na modrú. Keď je systém v režime „Preč“, dióda LED sa zmení na zelenú. Keď sa vypne fotobunka používaná ako snímač pohybu, svetlo bliká načerveno.
  • Zapojenie RGB LED diódy nájdete v experimente 3 príručky experimentov SIK.

Krok 5: Snímač teploty

  • Teplotný snímač je hlavnou súčasťou úspory energie v inteligentnom dome.
  • Keď je inteligentný dom v prevádzke, môže obyvateľ zadať požadovanú teplotu pre svoj domov.
  • Snímač teploty je to, ako systém vie, ako ďaleko je skutočná teplota od požadovanej teploty.
  • Nastavenie teplotného senzora nájdete v experimente 9 príručky experimentov SIK.

Krok 6: Prevodový motor DAGU

Prevodový motor DAGU
Prevodový motor DAGU
  • Motor umožňuje inteligentnej domácnosti regulovať teplotu v dome na základe požadovanej teploty a hodnôt teplotného senzora.
  • Motor, ktorý v domácnosti funguje ako striedavá jednotka, sa bude otáčať rôznymi rýchlosťami podľa toho, o koľko je skutočná teplota vyššia ako požadovaná. Čím vyšší je rozdiel, tým rýchlejšie sa motor točí.
  • Zapojenie motora nájdete v experimentálnej príručke pod experimentom 11.

Krok 7: Kód

  • Kód pre inteligentnú domácnosť obsahuje viacero používateľských rozhraní, ktoré rezidentovi umožňujú ľahko pochopiť, ako funguje, a ľahko zmeniť nastavenia.
  • So systémom smart home bude obyvateľ dostávať e -maily a upozorní ich, ak je pohybový senzor vypnutý, keď sú preč.
  • Jedinou zmenou, ktorú je potrebné vykonať, je vloženie informácií pre e -mail odosielateľa a e -mailovú adresu príjemcu.

jasné a; jasné s; jasný m; clc; zavrieť všetky; % Vymazať arduino a servo premenné, aby ich bolo možné predefinovať zakaždým, aby kód bežal efektívne („Clear m“je nevyhnutné pre správnu funkciu jednej zo slučiek while) a = arduino (); % Nastavte premennú arduino

s = servo (a, 'D6'); % Nastavte premennú servo

% Inicializujte e -mailové premenné pre e -maily s upozornením na bezpečnostný systém

e -maily = {'vložte adresu príjemcu'}; % Pole e -mailov, na ktoré sa má odoslať bezpečnostný e -mail

% Nastavenia predvolieb e -mailu potrebné na odosielanie pošty z Gmailu

setpref ('Internet', 'E_mail', 'e -mailová adresa odosielateľa');

setpref ('Internet', 'SMTP_Username', 'užívateľské meno odosielateľa');

setpref ('Internet', 'SMTP_Password', 'heslo odosielateľa');

props = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'true');

props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');

% Predmet a textové premenné e -mailu

subj = 'Hlásenie narušiteľa u vás doma';

text = 'Dobrý deň, toto je váš bezpečnostný systém Smart Home, ktorý vás informuje, že mimo vášho domova bol detekovaný pohyb. Prijali sme za vás potrebné opatrenia a kontaktovali sme úrady. Zostať v bezpečí.';

kým je to pravda

prompt = {'Zadajte požadovanú domácu teplotu (medzi 65 ° F a 85 ° F):'}; % Výzva na vstupnú ponuku užívateľa

dlgtitle = 'Výber teploty'; % Názov pre vstupnú ponuku užívateľa

dims = [1 30]; % Rozmery pre ponuku vstupu užívateľa

definput = {'72'}; % Predvolený vstup, ktorý sa zobrazí pri prvom otvorení ponuky

tempsel_array = inputdlg (prompt, dlgtitle, dims, definput); % Kontextová ponuka vstupu užívateľa, ktorá uloží zadané číslo do poľa

if ~ isempty (tempsel_array) % Ak pole NIE je prázdne

tempsel_char = cell2mat (tempsel_array); % Previesť pole na reťazec znakov

tempsel = str2double (tempsel_char); % Skonvertujte reťazec znakov na čísla

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Zapíšte zvolenú teplotu do svojho kanála ThingSpeak

break % Prestávka zo slučky while, aby sa ponuka viac krát nezobrazila

else % Ak používateľ klikne na tlačidlo Zrušiť namiesto zadávania teploty

msg1 = msgbox ('Nie je zvolená žiadna teplota, predvolené je 85F', 'Varovanie!'); % Správa sa zobrazí používateľovi po kliknutí na tlačidlo Zrušiť

čakať (msg1); % Pred pokračovaním počkajte, kým sa okno so správou zatvorí

tempsel = 85; % Nastavte teplotu na hodnotu uvedenú v okne so správou

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Zapíšte zvolenú teplotu do svojho kanála ThingSpeak

break % Prestávka zo slučky while, aby sa ponuka viac krát nezobrazila

koniec

koniec

kým je to pravda

chID = 745517; % ThingSpeak ID kanála

writeKey = 'G9XOQTP8KOVSCT0N'; % Kľúč pre prístup k kanálu ThingSpeak

% Inicializujte senzory na načítanie údajov

tempread = readVoltage (a, 'A3'); % Odčítajte napätie snímača teploty

lightl1 = readVoltage (a, 'A2'); % Úroveň svetla pre fotorezistor prechádzajúci na červenú LED

lightl2 = readVoltage (a, 'A5'); % Svetelná hladina fotorezistora smerujúceho do bezpečnostného systému

switchv = readVoltage (a, 'A0'); % Hodnota pre prepínač

% Prevod teplotných údajov z napätia na stupne Fahrenheita

tempC = (template - 0,5) * 100; % Previesť napätie na teplotu v stupňoch Celzia

tempF = (tempC * 9/5) + 32; % Prevod teploty v stupňoch Celzia na teplotu vo Fahrenheite

% Inicializujte čísla pinov pre viacfarebnú LED diódu

redp = 'D9'; % Pin pre červené svetlo z LED

greenp = 'D10'; % Pin pre zelené svetlo z LED

bluep = 'D11'; % Pin pre modré svetlo z LED

if tempsel <tempF % Ak je zvolená teplota väčšia ako teplota v miestnosti

writePosition (s, 1); % Servo sa začne pohybovať

pauza (10) % Servo sa bude točiť 10 sekúnd, čo znamená, že sa AC vypne po určenom čase

writePosition (s, 0); % Vypnite ventilátor za účelom pokračovania kódu bez zapnutého ventilátora

tempsel = 150; % Zmeňte hodnotu teploty tak, aby sa vymanila zo slučky po vypnutí ventilátora, opäť len za účelom pokračovania kódu

koniec

if lightl1 <= 3 % Ak prvý fotoodpor detekuje slabú úroveň svetla

writeDigitalPin (a, 'A1', 1); % Zapnite červenú diódu LED, ktorá predstavuje vonkajšie osvetlenie

else % Ak je úroveň svetla opäť vysoká

writeDigitalPin (a, 'A1', 0); % Vypnite červenú LED, keď je úroveň svetla opäť dostatočne vysoká

koniec

ak je prepínač v> 3 % Ak je spínač zapnutý

A = existovať ('m', 'var'); % Skontrolujte existenciu premennej „m“, táto sa inicializuje pre cyklus while a umožní jej prerušenie pri výbere položky ponuky (z tohto dôvodu je potrebné na začiatku kódu vykonať vymazanie m)

zatiaľ čo A == 0 % slučka bude fungovať, kým nebude existovať premenná 'm'

menutext = 'Do ktorého bezpečnostného režimu by ste chceli vstúpiť?'; % Text pre rozbaľovaciu ponuku zabezpečenia

options = {'Domov', 'Preč'}; % Možnosti rozbaľovacej ponuky zabezpečenia

m = ponuka (menutext, možnosti); % Rozbaľovacia ponuka pre režimy bezpečnostného systému

break % Zaisťuje, že slučka while je prerušená, takže sa ponuka viac krát nezobrazí

koniec

ak m == 1 % Ak je vybratý režim „Domov“

writeDigitalPin (a, bluep, 1); % V LED dióde meniacej farbu zapnite iba modré svetlo

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % Ak je zvolený režim „Preč“

writeDigitalPin (a, bluep, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); % Zapnite iba zelené svetlo v LED dióde meniacej farbu

ak svetlol2 <= 3 % Ak je úroveň svetla v druhom fotoodpore nízka, predstavuje pohyb detekovaný bezpečnostným systémom

sendmail (e -maily, subj, text); % Pošlite e -mail s predtým definovanými vlastnosťami e -mailu writeDigitalPin (a, greenp, 0); % Bleskovo červená farba 2 -krát zapnutá a vypnutá

writeDigitalPin (a, redp, 1);

pauza (0,3)

writeDigitalPin (a, redp, 0);

pauza (0,3)

writeDigitalPin (a, redp, 1);

pauza (0,3)

writeDigitalPin (a, redp, 0);

pauza (0,3)

writeDigitalPin (a, redp, 1); % Dokončite blikaním červenej farby, aby ste ukázali, že je pohyb, kým sa úroveň svetla nevráti späť

msg2 = msgbox ('Bezpečnostný systém zistil narušiteľa, majiteľom domov bol odoslaný e -mail s cieľom informovať ich.', 'UPOZORNENIE!'); % Okno so správou na informovanie používateľa o pohybe a o odoslanom e -maile čakajúci na (msg2) % Pred pokračovaním počkajte, kým sa okno so správou zatvorí

inak

writeDigitalPin (a, greenp, 1); % Akonáhle sa hladina svetla opäť zvýši, zmení sa na zelenú

koniec

koniec

elseif prepínač v <3,3 % Ak je vypínač vypnutý

writeDigitalPin (a, bluep, 0); % Úplným vypnutím LED diódy sa zobrazí, že bezpečnostný systém je vypnutý

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

koniec

koniec

Odporúča: