Cuprins:
- Pasul 1: LED sensibil la lumină
- Pasul 2: Mini comutator de alimentare
- Pasul 3: A doua fotocelula
- Pasul 4: LED RGB
- Pasul 5: senzor de temperatură
- Pasul 6: DAGU Gearmotor
- Pasul 7: Cod
Video: Proiect EF230 Smart Home: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Piese și materiale necesare:
- 1 Arduino MKR 1000
- 3 panouri de prăjitură
- 2 mini fotocelule
- 1 tranzistoare NPN
- 1 mini comutator de alimentare
- 1 LED - RGB (4 direcții)
- 1 LED (culoarea la alegere)
- 1 diodă 1N4148
- 1 rezistențe 10K Ohm
- 5 100 Ohm rezistor
- 1 senzor de temperatură TMP36
- 1 DAGU 48: 1 Ratomotoare
- 25 fire jumper
- Cablu USB
- Programul MATLAB
-
SIK Experiment Guide pentru placa Arduino 101 / Genuino 101 - SIK Experiment Guide Link
Acest proiect detaliază proiectarea conceptuală a unui sistem inteligent de casă care ar folosi datele pentru a-i ajuta pe proprietari să își optimizeze consumul de energie și securitatea. Include un senzor de lumină pentru a aprinde luminile exterioare noaptea, un senzor de lumină pentru securitate și un senzor de temperatură și ventilator pentru controlul temperaturii interioare.
Pasul 1: LED sensibil la lumină
- Configurarea LED sensibilă la lumină este menită să reprezinte luminile exterioare ale unei case care se aprind noaptea.
- Când mini-fotocelula detectează o cantitate redusă de lumină, LED-ul se va aprinde.
- Pentru o casă inteligentă, aceasta are implicații energetice și de securitate. Acesta va economisi energie lăsând luminile stinse în timpul zilei și va oferi o securitate sporită pe timp de noapte.
- Cablajul și configurarea exacte pentru această parte a proiectului pot fi găsite în experimentul 7 din Ghidul experimentului SIK.
Pasul 2: Mini comutator de alimentare
- Comutatorul este primul pas în procesul de securitate al casei inteligente.
- Când este activat, comutatorul va iniția un răspuns care îi va solicita utilizatorului dacă dorește să intre în modul „Acasă” sau „Plecat”.
- Dacă este selectat modul „Acasă”, securitatea este considerată dezarmată, dar selectarea modului „În deplasare” va înarma sistemul de securitate.
- Cablajul pentru această porțiune a proiectului poate fi găsit în experimentul 6 din Ghidul experimentului. În scopul casei inteligente, LED-urile și firele lor de conectare găsite în experimentul 6 nu trebuie incluse.
Pasul 3: A doua fotocelula
- A doua fotocelula servește ca senzor de mișcare pentru sistemul de securitate al casei inteligente.
- Senzorul este utilizat numai atunci când sistemul este pus în modul „Depărtare” așa cum este descris în pasul anterior.
- Dacă fotocelula se confruntă cu o scădere a cantității de lumină pe care o primește, aceasta o recunoaște ca mișcare în interiorul casei.
- Configurarea pentru această parte a proiectului poate fi găsită în experimentul 7 din Ghidul experimentului SIK. Cu toate acestea, numai fotocelula și firele sale de conectare trebuie să fie incluse în cablare.
Pasul 4: LED RGB
- LED-ul RGB este utilizat împreună cu mini întrerupătorul de alimentare și a doua fotocelula pentru sistemul de securitate al casei inteligente.
- Cele trei culori diferite sunt utilizate ca indicatori pentru locuitorul inteligent.
- Când sistemul este plasat în modul „Acasă”, LED-ul devine albastru. Când sistemul este plasat în modul „Departe”, LED-ul devine verde. Când fotocelula utilizată ca senzor de mișcare este declanșată, lumina clipește în roșu.
- Cablarea LED-ului RGB poate fi găsită în experimentul 3 din Ghidul de experiment SIK.
Pasul 5: senzor de temperatură
- Senzorul de temperatură este o parte majoră a conservării energiei în casa inteligentă.
- Rezidentul este capabil să introducă temperatura dorită pentru casa lor atunci când este folosită casa inteligentă.
- Senzorul de temperatură este modul în care sistemul știe cât de departe este temperatura reală de temperatura dorită.
- Configurarea senzorului de temperatură poate fi găsită în experimentul 9 din Ghidul de experiment SIK.
Pasul 6: DAGU Gearmotor
- Motorul permite locuinței inteligente să regleze temperatura din casă pe baza temperaturii dorite și a citirilor senzorului de temperatură.
- Acționând ca unitatea de curent alternativ în casă, motorul se va roti la viteze diferite în funcție de cât de mult este mai mare temperatura reală decât temperatura dorită. Cu cât diferența este mai mare, cu atât motorul se rotește mai repede.
- Cablajul motorului poate fi găsit în Ghidul experimentului din experimentul 11.
Pasul 7: Cod
- Codul pentru casa inteligentă include mai multe interfețe utilizator care permit rezidentului să înțeleagă cu ușurință cum funcționează și să schimbe cu ușurință setările.
- Cu sistemul de acasă inteligent, rezidentul va primi și avertiza prin e-mail dacă senzorul de mișcare este activat în timp ce sunt plecați.
- Singura modificare care trebuie făcută este inserarea informațiilor pentru e-mailul expeditorului și adresa de e-mail a destinatarului.
clar a; clar s; clar m; clc; inchide tot; % Ștergeți variabilele arduino și servo, astfel încât să poată fi redefinite de fiecare dată, astfel încât codul să ruleze eficient ("clear m" este necesar pentru ca unul dintre buclele while să funcționeze corect) a = arduino (); % Setați variabila arduino
s = servo (a, 'D6'); % Setați variabila servo
% Inițializați variabilele de e-mail pentru e-mailul de avertizare al sistemului de securitate
e-mailuri = {'inserează adresa destinatarului'}; % Matrice de e-mailuri pentru a primi e-mailul de securitate
% Setări de preferință pentru e-mail necesare pentru utilizarea unui Gmail pentru a trimite e-mailuri de la
setpref („Internet”, „E-mail”, „adresa de e-mail a expeditorului”);
setpref ('Internet', 'SMTP_Username', 'numele de utilizator al expeditorului');
setpref ('Internet', 'SMTP_Password', 'parola expeditorului');
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');
% Subiect de e-mail și variabile text
subj = 'Alertă de intruși la tine acasă';
text = 'Bună ziua, acesta este sistemul dvs. de securitate Smart Home care vă informează că a fost detectată mișcare în afara casei dvs. Am luat măsurile necesare și am contactat autoritățile pentru dvs. Stai in siguranta.';
în timp ce este adevărat
prompt = {'Introduceți temperatura dorită de acasă (între 65F și 85F):'}; % Solicitați meniul de introducere a utilizatorului
dlgtitle = 'Selectare temperatură'; % Titlu pentru meniul de introducere a utilizatorului
dims = [1 30]; % Dimensiuni pentru meniul de introducere a utilizatorului
definput = {'72'}; % Intrare implicită care apare la deschiderea meniului
tempsel_array = inputdlg (prompt, dlgtitle, dims, definput); % Popup meniu de introducere a utilizatorului care va salva numărul introdus într-o matrice
if ~ isempty (tempsel_array)% Dacă matricea NU este goală
tempsel_char = cell2mat (tempsel_array); % Convertiți tabloul într-un șir de caractere
tempsel = str2double (tempsel_char); % Convertiți șirul de caractere în numere
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Scrieți temperatura selectată pe canalul dvs. ThingSpeak
break% Break din bucla while, astfel încât meniul să nu apară de mai multe ori
else% Dacă utilizatorul face clic pe anulează în loc să introducă o temperatură
msg1 = msgbox ('Fără temperatură selectată, implicit la 85F', 'Atenție!'); % Mesaj afișat utilizatorului după ce a făcut clic pe anulare
waitfor (msg1); % Așteptați ca caseta de mesaje să se închidă înainte de a continua
tempsel = 85; % Setați temperatura la ceea ce a fost menționat în caseta de mesaje
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Scrieți temperatura selectată pe canalul dvs. ThingSpeak
break% Break din bucla while, astfel încât meniul să nu apară de mai multe ori
Sfârșit
Sfârșit
în timp ce este adevărat
chID = 745517; % ID-ul canalului ThingSpeak
writeKey = 'G9XOQTP8KOVSCT0N'; % Cheie pentru acces la canalul ThingSpeak
% Inițializați senzorii pentru a prelua date
tempread = readVoltage (a, 'A3'); % Citiți tensiunea senzorului de temperatură
lightl1 = readVoltage (a, 'A2'); % Nivel de lumină pentru fotorezistor care merge la LED-ul roșu
lightl2 = readVoltage (a, 'A5'); % Nivel de lumină pentru fotorezistor care merge la sistemul de securitate
switchv = readVoltage (a, 'A0'); Valoare% pentru comutator
% Convertiți datele de temperatură de la tensiune la grade Fahrenheit
tempC = (tempread - 0,5) * 100; % Convertiți tensiunea în temperatură în grade Celsius
tempF = (tempC * 9/5) + 32; % Conversia temperaturii în grade Celsius la temperatura în grade Fahrenheit
% Inițializați numerele de pin pentru LED-ul multicolor
redp = 'D9'; % Pin pentru lumina roșie de la LED
greenp = 'D10'; % Pin pentru lumina verde de la LED
bluep = 'D11'; % Pin pentru lumina albastră de la LED
dacă tempsel <tempF% Dacă temperatura selectată este mai mare decât temperatura camerei
writePosition (s, 1); % Servo va începe să se miște
pauză (10)% Servo va continua să se rotească timp de 10 secunde pentru a indica faptul că AC-ul se va opri după o perioadă de timp specificată
writePosition (s, 0); % Opriți ventilatorul pentru a continua codul fără ventilator pornit
tempsel = 150; % Modificați valoarea temperaturii pentru a ieși din buclă după ce ventilatorul s-a oprit, din nou doar în scopul continuării codului
Sfârșit
dacă lightl1 <= 3% Dacă primul fotorezistor detectează un nivel scăzut de lumină
writeDigitalPin (a, 'A1', 1); % Porniți LED-ul roșu care reprezintă luminile exterioare
else% Dacă nivelul de lumină este din nou ridicat
writeDigitalPin (a, 'A1', 0); % Opriți LED-ul roșu când nivelul de lumină este din nou suficient de ridicat
Sfârșit
dacă comutatorulv> 3% Dacă comutatorul este pornit
A = exista ('m', 'var'); % Verificați existența variabilei „m”, aceasta se va inițializa pentru bucla while și va permite să fie întreruptă atunci când este selectat un element de meniu (acesta este motivul pentru care trebuie să ștergeți m la începutul codului)
în timp ce A == 0% Bucla se va executa până când variabila 'm' există
menutext = 'În ce mod de securitate doriți să intrați?'; % Text pentru meniul popup de securitate
choix = {'Acasă', 'În deplasare'}; % Alegeri pentru meniul pop-up de securitate
m = meniu (menutext, alegeri); % Meniu pop-up pentru modurile sistemului de securitate
break% Asigură că bucla while este ruptă, astfel încât meniul să nu apară de mai multe ori
Sfârșit
dacă m == 1% Dacă este selectat modul „Acasă”
writeDigitalPin (a, bluep, 1); % Porniți doar lumina albastră la LED-ul care schimbă culoarea
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
elseif m == 2% Dacă este selectat modul „Departe”
writeDigitalPin (a, bluep, 0);
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 1); % Porniți doar lumina verde în LED-ul care schimbă culoarea
dacă lightl2 <= 3% Dacă nivelul de lumină din al doilea fotorezistor este scăzut, reprezentând mișcarea detectată de sistemul de securitate
sendmail (e-mailuri, sub, text); % Trimiteți un e-mail cu proprietățile de e-mail definite anterior writeDigitalPin (a, greenp, 0); % Culoare roșie intermitentă activată și dezactivată de 2 ori
writeDigitalPin (a, redp, 1);
pauză (0,3)
writeDigitalPin (a, redp, 0);
pauză (0,3)
writeDigitalPin (a, redp, 1);
pauză (0,3)
writeDigitalPin (a, redp, 0);
pauză (0,3)
writeDigitalPin (a, redp, 1); % Terminați cu roșu continuu după ce clipiți pentru a arăta că există mișcare până când nivelul luminii revine
msg2 = msgbox („Intrus detectat de sistemul de securitate, a fost trimis un e-mail proprietarilor pentru a-i informa.”, „AVERTISMENT!”); % Casetă de mesaje pentru a informa utilizatorul despre mișcare și pentru a informa despre e-mailul trimis waitfor (msg2)% Așteptați ca caseta de mesaje să se închidă înainte de a continua
altceva
writeDigitalPin (a, greenp, 1); % Odată ce nivelul de lumină a crescut din nou, acesta va reveni la verde
Sfârșit
Sfârșit
elseif switchv <3,3% Dacă comutatorul este oprit
writeDigitalPin (a, bluep, 0); % Opriți complet LED-ul pentru a arăta că sistemul de securitate este oprit
writeDigitalPin (a, redp, 0);
writeDigitalPin (a, greenp, 0);
Sfârșit
Sfârșit
Recomandat:
LineFollower HoGent - Proiect sintetic: 8 pași
Linefollower HoGent - Syntheseproject: Voor het vak syntheseproject kregen we de opdracht een linefollower te maken. In deze instructable zal ik uitleggen hoe ik deze gemaakt heb, en tegen welke problemen ik o.a ben aangelopen
Proiect de stabilizare a cardanului: 9 pași (cu imagini)
Gimbal Stabilizer Project: How to Make a Gimbal Aflați cum să creați un gimbal pe 2 axe pentru camera dvs. de acțiune În cultura de astăzi ne place cu toții să înregistram videoclipuri și să capturăm momentele, mai ales când ești un creator de conținut ca mine, sigur te-ai confruntat cu problema un videoclip atât de șubred
ECG automatizat - BME 305 Proiect final Credit suplimentar: 7 pași
Automat ECG-BME 305 Proiect final Credit suplimentar: O electrocardiogramă (ECG sau EKG) este utilizată pentru a măsura semnalele electrice produse de o inimă care bate și joacă un rol important în diagnosticul și prognosticul bolilor cardiovasculare. Unele informații obținute dintr-un ECG includ ritmurile
Proiect automat Bol pentru animale de companie: 13 pași
Proiectul bolului automat pentru animale de companie: acest instructiv va descrie și explica cum să construiți un alimentator automat pentru animale de companie programabil, cu boluri de alimente atașate. Am atașat un videoclip aici care descrie modul în care funcționează produsele și cum arată
Proiect 2 Smart-Cască: 6 pași (cu imagini)
Proiectul 2 Smart-Helmet: Noi, Benoot Sven, Staelens Lennert și Dujardin Laurens, a trebuit să facem un proiect pentru școală. A trebuit să lucrăm împreună cu un student de la IPO (Industrial Product Design). El a venit cu ideea de a face o cască de motocicletă inteligentă. El a făcut designul