Cuprins:
Video: Termostat Smart Home: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Termostatul nostru Smart Home este un program care poate economisi automat o gospodărie de bani pe facturile de utilități pe baza preferințelor unei persoane.
Pasul 1: Prezentare generală
Termostatul Smart Home folosește un senzor de temperatură pentru a obține temperatura casei. Această citire a temperaturii este introdusă în program unde va decide dacă sistemul de aer condiționat trebuie să încălzească sau să răcească casa în funcție de temperatura dorită a proprietarului casei.
Există două moduri pentru termostat: manual și automat. Modul manual care va regla temperatura casei la orice temperatură dorită este setat de utilizator. Iar modul automat al termostatului va schimba automat temperatura casei la temperaturi prestabilite de utilizator. Vor exista două setări de temperatură pentru modul automat: temperatura la distanță și temperatura actuală. Temperatura la distanță este utilizată pentru a economisi energie prin schimbarea termostatului la o temperatură prestabilită de economisire a energiei ori de câte ori utilizatorul nu este acasă. Temperatura actuală va fi utilizată atunci când utilizatorul este acasă și dorește o temperatură confortabilă. Când se află în modul automat al termostatului, senzorii de mișcare caută activ mișcarea pentru a determina dacă cineva este sau nu acasă. Pe baza citirii lor, temperatura de acasă va fi setată fie la temperatura de deplasare, fie la temperatura actuală.
Pasul 2: Piese și materiale
(15) Jumper Wires
(4) Rezistențe de 220 ohmi
(1) Rezistor de 10K Ohm
(1) Senzor de temperatură
(1) Rezistor foto
(1) Cutie de viteze Mini DC DAGU
(1) Diodă
(1) Tranzistor
(1) Fotorezistor
(1) Pană de pâine
(1) Arduino MKR
Pasul 3: Circuit
Figura 1 = Imagine stângă mare
Figura 2 = Dreapta sus
Figura 3 = Dreapta mijlocie
Figura 4 = Jos dreapta
figura 1
Folosind diagrama de mai sus, am conectat fiecare dintre cele trei LED-uri. Am distanțat fiecare LED, deoarece lucram cu o placă mare. Pentru plăcile de pâine mai mici, poate fi necesar să apropiați LED-urile. De asemenea, nu este necesar să alimentați panoul de control, deoarece LED-urile consumă atât de puțină energie. Nu am folosit conexiunea de 5V de pe panou pentru LED-uri. Fiecare conexiune de la LED-uri la Arduino a fost făcută ca firul verde deasupra. LED-urile noastre roșii, albastre și verzi sunt conectate la pinul digital 8, 9 și respectiv 10, desemnate cu un fir roșu, albastru și verde în imaginea noastră.
Figura 2
Diagrama de mai sus a fost utilizată pentru a conecta fotorezistorul. Am făcut câteva corecții proprii; totuși conceptele sunt în continuare aceleași. Fotorezistorul trebuie să fie conectat la un pin analogic pe care îl avem în pinul A1. Asigurați-vă că utilizați un rezistor de 10K ohm pentru rezistorul cel mai apropiat de fotorezistor.
Figura 3
Aceasta este diagrama utilizată pentru conectarea senzorului de temperatură. Asigurați-vă că nu confundați tranzistorul utilizat aici cu senzorul de temperatură. Arată aproape identic. Senzorul de temperatură va avea probabil TMP sau un alt script scris pe partea plană a senzorului. Cablarea aici este foarte simplă senzorul nostru de temperatură este conectat la pinul analogic A0 cu un fir alb.
Figura 4
Imaginea de mai sus a fost utilizată pentru cablarea cutiei de viteze Mini DC DAGU. Firul verde atașat la Cutia de viteze este de fapt firul roșu conectat la acesta în imaginea noastră. Cutia de viteze este conectată la pinul digital 11 cu un fir portocaliu în modelul nostru. Asigurați-vă că nu confundați tranzistorul utilizat aici cu senzorul de temperatură. Arată aproape identic. Senzorul de temperatură va avea probabil TMP sau un alt script scris pe partea plană a senzorului. Trebuie să folosiți tranzistorul aici și nu senzorul de temperatură.
Pasul 4: Cod Arduino
Aici sunt explicate cele mai importante părți ale codului. Codul nu va funcționa doar cu ceea ce este dat aici. Pentru a obține codul complet de lucru, există un link în partea de jos a paginii.
Când creați codul termostatului programabil, unul dintre primele lucruri pe care le faceți este să configurați senzorii și să creați o buclă pentru care va obține în mod constant citiri ale temperaturii de la senzorul de temperatură.
Configurarea senzorului de temperatură și a LED-ului:
tempPin = 'A0';% definește funcția anonimă care convertește tensiunea în temperatură tempCfromVolts = @ (volți) (volți-0,5) * 100; samplingDuration = 5; % secunde. Cât vrem să prelevăm pentru samplingInterval = 1; % Câte secunde între citirile de temperatură% setează vectorul timpilor de eșantionare SamplingTimes = 0: samplingInterval: samplingDuration; % calculați numărul de probe pe baza duratei și intervalului numSamples = length (samplingTimes); % prealocați variabilele temp și variabila pentru numărul de citiri pe care le va stoca tempC = zerouri (numSamples, 1); tempF = tempC; De data aceasta vom folosi o buclă for pentru a lua un număr prestabilit de citiri de temperatură%
Bucla for:
pentru index = 1: numSamples% citește tensiunea la tempPin și stochează în volți variați volți = readVoltage (a, tempPin); tempC (index) = -1 * tempCfromVolts (volți + 0,3); tempF (index) = tempC (index) * (9/5) +32; % Afișați ieșirea formatată comunicând temperatura curentă citind fprintf („Temperatura la% d secunde este% 5.2f C sau% 5.2f F. / n”,… samplingTimes (index), tempC (index), tempF (index)); % rețineți că această ieșire a afișajului va deveni vizibilă simultan numai după ce codul este executat%, cu excepția cazului în care copiați / lipiți codul într-un fișier de script simplu. pauză (samplingInterval)% întârziere până la sfârșitul eșantionului următor
Apoi, creăm meniul nostru de utilizator pentru ca acesta să decidă dacă pune termostatul în modul manual sau automat. De asemenea, creăm un cod de eroare dacă utilizatorul nu selectează nici una dintre cele două opțiuni.
Meniul Mod manual cere utilizatorului să seteze un număr pentru temperatura termostatului, apoi fie va încălzi casa, va răci casa sau va rula în funcție de citiri. Pentru a configura această parte a codului, ați folosit citiri de temperatură de la senzorul de temperatură și ați creat cod care să răcească casa când citirea temperaturii este mai mare decât temperatura setată și să încălzească casa când citirea temperaturii este mai mică decât temperatura setată.
Odată ce ați citit temperatura, puteți crea codul care va spune termostatului să răcească casa atunci când citirea temperaturii este mai mare decât temperatura setată și să încălziți casa când citirea temperaturii este mai mică decât temperatura setată. Pentru prototip, lumina albastră se aprinde atunci când termostatul trebuie să se răcească, iar lumina roșie se aprinde atunci când termostatul trebuie să se încălzească.
Configurare meniu:
choix = {'Automat', 'Manual'}; imode = meniu ('Mod', alegeri) dacă imode> 0 h = msgbox (['Ați ales' alegeri {imode}]); else h = warndlg („Ați închis meniul fără a face o alegere”) terminați waitfor (h);
Modul manual cere utilizatorului să introducă o temperatură pentru termostat, apoi pe baza citirilor de la senzorul de temperatură, va începe fie răcirea casei de încălzire a casei. Dacă citirea senzorului de temperatură este mai mare decât temperatura setată, va începe răcirea locuinței. Dacă citirea senzorului de temperatură este mai mică decât temperatura setată, va încălzi casa.
Modul manual va porni:
if imode == 2 dlg_prompts = {'Ce temperatură ați prefera?'}; dlg_title = 'Temperatură'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Ați anulat comanda inputdlg'); else temp_manual = str2double (dlg_ans {1})% [Adăugați diapozitivul de configurare a reglării temperaturii de mai jos] end
În interiorul declarației if pentru modul manual, trebuie să scrieți interfața meniului pentru ca utilizatorul să aleagă temperatura dorită de acasă și apoi să implementați o declarație de timp care să regleze temperatura acasă.
Configurarea reglării temperaturii:
în timp ce temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); termină în timp ce temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); Sfârșit
Modul automat necesită mai multe intrări decât modul manual. După ce a intrat în modul automat, utilizatorul va seta o temperatură normală și o temperatură îndepărtată pentru termostatul lor. După selectarea acestora, în funcție de modul în care se află termostatul, acesta va reveni în modul de reglare a temperaturii.
Configurați modul automat:
elseif imode == 1 dlg_prompts = {'Normal', 'Plecat'}; dlg_title = 'Setări de temperatură'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Ați anulat comanda inputdlg'); else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) end waitfor (h); % [Adăugați Detector de mișcare Pasul de mai jos]
De asemenea, trebuie să configurăm senzorul de mișcare pentru setările modului automat. Când detectorul de mișcare preia mișcarea, acesta va menține temperatura la setarea actuală a temperaturii, în caz contrar se va seta la temperatura setată.
Run_Motion_Detector (a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a, 'D6', 1) orice lumină roșie a pinului este, de asemenea, motor pentru ventilatorul writeDigitalPin (a, 'D9', 1); end end while lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1)% change to any pin the normal light is in while temp tempF writeDigitalPin (a, 'D6', 1) whatever pin red light is in also motor pentru ventilator writeDigitalPin (a, 'D9', 1); sfârșit sfârșit
Codul complet poate fi găsit aici.
Recomandat:
Termostat Nest, urmărire ocupare: 12 pași
Nest Thermostat, Occupancy Tracking: automatizarea răcirii la domiciliu folosind Nest Thermostat a fost, până de curând, administrată de IFTTT folosind Life360 „primul care a ajuns acasă” și „ultimul care a plecat de acasă” declanșează. A fost minunat pentru că aș putea adăuga membri ai familiei în Li
Adăugați un monitor de utilizare la un termostat de acasă: 4 pași
Adăugați un monitor de utilizare la un termostat de acasă: cu mult timp în urmă, mult înainte de a exista un astfel de lucru ca „inteligent” termostat, aveam un termostat acasă care oferea un total zilnic (cred - poate săptămânal) de "la timp" pentru sistemul meu de încălzire și aer condiționat. Lucrurile s-au schimbat … Las
Asigurați-vă propriul termostat de încălzire conectat și faceți economii cu încălzirea: 53 de pași (cu imagini)
Asigurați-vă propriul termostat de încălzire conectat și faceți economii cu încălzirea: Care este scopul? Sporiți confortul încălzind casa exact așa cum doriți. Economisiți și reduceți emisiile de gaze cu efect de seră încălzind casa numai atunci când aveți nevoie Păstrați controlul asupra încălzirii oriunde vă aflați Fii mândru că ai făcut-o
Termostat de cameră - Arduino + Ethernet: 3 pași
Termostat de cameră - Arduino + Ethernet: În ceea ce privește hardware-ul, proiectul utilizează: Arduino Uno / Mega 2560 Ethernet shield Wiznet W5100 / Ethernet module Wiznet W5200-W5500 DS18B20 senzor de temperatură pe magistrala OneWire releu SRD-5VDC-SL-C utilizat pentru cazan comutare
Termostat inteligent ESP8266: 6 pași (cu imagini)
Smart Thermostat ESP8266: Bienvenue sur ce nouvel article. On se retrouve aujourd’hui pour un projet que j'ai réalisé pendant tout ce temps libre que m’a offert le confinement. Ce proiect m'a fost propus de mon père, în efect il vient de déménager dans une vieille maison et l