Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
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 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
- 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