Sadržaj:

Projekt pametne kuće EF230: 7 koraka
Projekt pametne kuće EF230: 7 koraka

Video: Projekt pametne kuće EF230: 7 koraka

Video: Projekt pametne kuće EF230: 7 koraka
Video: ПОКУПАЙ НЕДВИЖИМОСТЬ У ПРОВЕРЕННЫХ ЗАСТРОЙЩИКОВ | Северный Кипр 2023 2024, Studeni
Anonim
Projekt pametne kuće EF230
Projekt pametne kuće EF230

Potrebni dijelovi i materijali:

  • 1 Arduino MKR 1000
  • 3 Oglasne ploče
  • 2 mini fotoćelije
  • 1 NPN tranzistor
  • 1 Mini prekidač napajanja
  • 1 LED - RGB (4 zupca)
  • 1 LED (boja po vašem izboru)
  • 1 dioda 1N4148
  • 1 10K ohmski otpornici
  • 5 100 Ohm otpornik
  • 1 Senzor temperature TMP36
  • 1 Omjer zupčanika DAGU 48: 1
  • 25 Žice kratkospojnika
  • USB kabel
  • MATLAB program
  • SIK -ov Vodič za eksperimente za ploču Arduino 101/Genuino 101 - SIK -ov vodič za eksperiment

Ovaj projekt detaljno opisuje idejno rješenje sustava pametne kuće koji bi koristio podatke kako bi pomogao vlasnicima kuća optimizirati njihovu potrošnju energije i sigurnost. Uključuje svjetlosni senzor za uključivanje vanjskog svjetla noću, svjetlosni senzor za sigurnost te senzor temperature i ventilator za kontrolu unutarnje temperature.

Korak 1: LED osjetljiva na svjetlo

  • LED postavka osjetljiva na svjetlo namijenjena je predstavljanju vanjskog svjetla u kući koja se pali noću.
  • Kad mini fotoćelija osjeti smanjenu količinu svjetla, LED će zasvijetliti.
  • Za pametni dom to ima energetske i sigurnosne implikacije. Uštedjet će energiju ostavljajući svjetla isključena danju, a pružit će povećanu sigurnost noću.
  • Točno ožičenje i postavljanje za ovaj dio projekta mogu se pronaći u eksperimentu 7 u SIK -ovom Vodiču za eksperimente.

Korak 2: Mini prekidač napajanja

  • Prekidač je prvi korak u sigurnosnom procesu pametne kuće.
  • Kada je uključeno, prekidač će pokrenuti odgovor pitajući korisnika želi li ući u način rada "Kod kuće" ili "Odsutni".
  • Ako je odabran način rada „Kod kuće“, sigurnost se smatra razoružanjem, ali odabirom načina „Odsutni“aktivirat će se sigurnosni sustav.
  • Ožičenje za ovaj dio projekta može se pronaći pod pokusom 6 u Vodiču za eksperiment. Za potrebe pametnog doma, LED diode i njihove spojne žice pronađene u pokusu 6 ne moraju biti uključene.

Korak 3: Druga fotoćelija

Druga fotoćelija
Druga fotoćelija
  • Druga fotoćelija služi kao senzor pokreta za sigurnosni sustav pametne kuće.
  • Senzor se koristi samo kada je sustav stavljen u način rada „Odsutno“kako je opisano u prethodnom koraku.
  • Ako fotoćelija doživi smanjenje količine svjetlosti koju prima, ona to prepoznaje kao kretanje unutar kuće.
  • Postavke za ovaj dio projekta mogu se pronaći pod eksperimentom 7 u SIK -ovom Vodiču za eksperimente. Međutim, samo fotoćelija i njene spojne žice moraju biti uključene u ožičenje.

Korak 4: RGB LED

  • RGB LED se koristi zajedno s mini prekidačem napajanja i drugom fotoćelijom za sigurnosni sustav pametne kuće.
  • Tri različite boje koriste se kao pokazatelji za stanovnike pametne kuće.
  • Kad je sustav postavljen u način rada 'Home', LED svijetli plavo. Kad je sustav postavljen u način rada „Odsutno“, LED svijetli zeleno. Kad se aktivira fotoćelija koja se koristi kao senzor pokreta, svjetlo treperi crveno.
  • Ožičenje za RGB LED može se pronaći u eksperimentu 3 SIK -ovog Vodiča za eksperimente.

Korak 5: Senzor temperature

  • Senzor temperature glavni je dio očuvanja energije u pametnom domu.
  • Stanar može unijeti željenu temperaturu za svoj dom dok se pametna kuća koristi.
  • Senzor temperature pokazuje kako sustav zna koliko je stvarna temperatura udaljena od željene temperature.
  • Postavljanje senzora temperature može se pronaći u pokusu 9 SIK -ovog Vodiča za eksperimente.

Korak 6: DAGU Gearmotor

DAGU Gearmotor
DAGU Gearmotor
  • Motor omogućuje pametnoj kući da regulira temperaturu u kući na temelju željene temperature i očitanja osjetnika temperature.
  • Djelujući kao AC jedinica u kući, motor će se vrtjeti različitim brzinama ovisno o tome koliko je stvarna temperatura viša od željene temperature. Što je razlika veća, motor se brže okreće.
  • Ožičenje motora može se pronaći u Vodiču za eksperiment pod eksperimentom 11.

Korak 7: Kodirajte

  • Kôd za pametnu kuću uključuje više korisničkih sučelja koje omogućuju stanovniku da jednostavno razumije kako radi i da lako promijeni postavke.
  • Sa sustavom pametne kuće, stanovnik će primiti upozorenje e -poštom ako je senzor pokreta isključen dok su odsutni.
  • Jedina promjena koju je potrebno napraviti je umetanje podataka za e -poštu pošiljatelja i e -adresu primatelja.

očistiti a; jasno s; čist m; clc; zatvori sve; % Očistite arduino i servo varijable kako bi se mogle redefinirati svaki put kako bi se kôd učinkovito izvodio ("clear m" je potrebno da bi jedna od while petlji pravilno funkcionirala) a = arduino (); % Postavite arduino varijablu

s = servo (a, 'D6'); % Postavite servo varijablu

% Pokretanje varijabli e -pošte za upozorenje e -pošte sigurnosnog sustava

e -poruke = {'umetni adresu primatelja'}; % Niz e -poruka na koje se šalje sigurnosna e -poruka

% Postavke e -pošte potrebne za korištenje Gmaila za slanje pošte

setpref ('Internet', 'E_mail', 'e -adresa pošiljatelja');

setpref ('Internet', 'SMTP_Username', 'korisničko ime pošiljatelja');

setpref ('Internet', 'SMTP_Password', 'lozinka pošiljatelja');

rekviziti = java.lang. System.getProperties;

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

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

% Teme i tekstualne varijable e -pošte

subj = 'Upozorenje protiv uljeza u vašem domu';

text = 'Pozdrav, ovo je vaš sigurnosni sustav Smart Home koji vas obavještava da je otkriveno kretanje izvan vašeg doma. Poduzeli smo potrebne mjere i za vas smo kontaktirali nadležna tijela. Ostati siguran.';

dok je istina

prompt = {'Unesite željenu temperaturu doma (između 65F i 85F):'}; % Upit za izbornik unosa korisnika

dlgtitle = 'Odabir temperature'; % Naslov izbornika za unos korisnika

dims = [1 30]; % Dimenzije izbornika za unos korisnika

definput = {'72'}; % Zadani ulaz koji se prikazuje pri prvom otvaranju izbornika

tempsel_array = inputdlg (prompt, dlgtitle, dims, definput); % Skočni izbornik za unos korisnika koji će spremiti uneseni broj u niz

if ~ isempty (tempsel_array) % Ako polje NIJE prazno

tempsel_char = cell2mat (tempsel_array); % Pretvorite niz u niz znakova

tempsel = str2double (tempsel_char); % Pretvorite niz znakova u brojeve

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Zapišite odabranu temperaturu na svoj ThingSpeak kanal

break % Prekid od while petlje kako se izbornik ne bi pojavio više puta

else % Ako korisnik klikne otkaži umjesto unosa temperature

msg1 = msgbox ('Nije odabrana temperatura, zadana vrijednost 85F', 'Upozorenje!'); % Poruka koja se prikazuje korisniku nakon što klikne otkaži

waitfor (msg1); % Pričekajte da se okvir s porukom zatvori prije nego nastavite

tempsel = 85; % Podesite temperaturu na ono što je navedeno u okviru za poruku

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Zapišite odabranu temperaturu na svoj ThingSpeak kanal

break % Prekid od while petlje kako se izbornik ne bi pojavio više puta

kraj

kraj

dok je istina

chID = 745517; % ThingSpeak ID kanala

writeKey = 'G9XOQTP8KOVSCT0N'; % Ključ za pristup ThingSpeak kanalu

% Inicijalizacija senzora za dohvaćanje podataka

tempread = readVoltage (a, 'A3'); % Očitajte napon osjetnika temperature

lightl1 = readVoltage (a, 'A2'); % Razina svjetla za fotootpornik ide do crvene LED diode

lightl2 = readVoltage (a, 'A5'); % Razina svjetla za fotootpornik koji ide u sigurnosni sustav

switchv = readVoltage (a, 'A0'); % Vrijednost prekidača

% Pretvorite podatke o temperaturi iz napona u stupnjeve Fahrenheita

tempC = (tempread - 0,5) * 100; % Pretvorite napon u temperaturu u Celzijusima

tempF = (tempC * 9/5) + 32; % Pretvorite temperaturu u Celzijusima u temperaturu u Fahrenheitu

% Inicirajte brojeve pinova za višebojnu LED

redp = 'D9'; % Pin za crveno svjetlo od LED diode

greenp = 'D10'; % Pin za zeleno svjetlo od LED diode

bluep = 'D11'; % Pin za plavo svjetlo iz LED diode

ako je tempsel <tempF % Ako je odabrana temperatura veća od sobne temperature

writePosition (s, 1); % Servo će se početi pomicati

pause (10) % Servo će se vrtjeti 10 sekundi kako bi pokazao da će se AC isključiti nakon određenog vremena

writePosition (s, 0); % Isključite ventilator radi nastavka koda bez uključenog ventilatora

tempsel = 150; % Promijenite vrijednost temperature da biste izašli iz petlje nakon isključivanja ventilatora, opet samo u svrhu nastavka koda

kraj

ako je lightl1 <= 3 % Ako prvi fotootpornik otkrije slabu razinu svjetlosti

writeDigitalPin (a, 'A1', 1); % Uključite crvenu LED lampicu koja predstavlja vanjska svjetla

else % Ako je razina svjetla ponovno visoka

writeDigitalPin (a, 'A1', 0); % Isključite crvenu LED diodu kad je razina svjetla ponovno dovoljno visoka

kraj

ako je prekidačv> 3 % Ako je prekidač uključen

A = postoje ('m', 'var'); % Provjerite postoji li varijabla 'm', ovo će se inicijalizirati za vrijeme petlje i dopustiti da se prekine pri odabiru stavke izbornika (zato se brisanje m mora učiniti na početku koda)

dok će se A == 0 % Petlja izvršavati sve dok ne postoji varijabla 'm'

menutext = 'U koji sigurnosni način rada želite ući?'; % Tekst za skočni izbornik sigurnosti

choices = {'Dom', 'Odsutno'}; % Izbori za skočni izbornik sigurnosti

m = izbornik (tekst menija, izbori); % Skočni izbornik za načine rada sigurnosnog sustava

break % Osigurava da je while petlja prekinuta pa se izbornik neće pojaviti više puta

kraj

ako je m == 1 % Ako je odabran način rada 'Dom'

writeDigitalPin (a, bluep, 1); % Uključite samo plavo svjetlo u LED diodi za promjenu boje

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % Ako je odabran način rada 'Odsutno'

writeDigitalPin (a, bluep, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); % Uključite samo zeleno svjetlo LED diode za promjenu boje

ako je lightl2 <= 3 % Ako je razina svjetla u drugom fotootporniku niska, predstavlja kretanje koje je detektirao sigurnosni sustav

sendmail (e -pošta, subj, tekst); % Slanje e -pošte s prethodno definiranim svojstvima e -pošte writeDigitalPin (a, greenp, 0); % Uključivanje i isključivanje crvene boje 2 puta

writeDigitalPin (a, redp, 1);

stanka (0,3)

writeDigitalPin (a, redp, 0);

stanka (0,3)

writeDigitalPin (a, redp, 1);

stanka (0,3)

writeDigitalPin (a, redp, 0);

stanka (0,3)

writeDigitalPin (a, redp, 1); % Nakon treptanja završite neprekidno crvenom bojom kako biste pokazali da se ima kretanja sve dok se razina svjetla ne vrati gore

msg2 = msgbox ('Sigurnosni sustav otkrio uljeza, vlasnicima kuća poslana je e -poruka da ih obavijesti.', 'UPOZORENJE!'); % Okvir s porukom za obavijest korisnika o kretanju i obavijest o poslanoj e -pošti waitfor (msg2) % Pričekajte da se okvir za poruku zatvori prije nastavka

drugo

writeDigitalPin (a, greenp, 1); % Nakon što se razina svjetla ponovno podigne, ponovno će postati zelena

kraj

kraj

inače prekidačv <3,3 % Ako je prekidač isključen

writeDigitalPin (a, bluep, 0); % Potpuno isključite LED kako biste pokazali da je sigurnosni sustav isključen

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

kraj

kraj

Preporučeni: