Sommario:
- Passaggio 1: Panoramica
- Passaggio 2: parti e materiali
- Passaggio 3: circuito
- Passaggio 4: codice Arduino
Video: Termostato per casa intelligente: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Il nostro Smart Home Thermostat è un programma in grado di risparmiare automaticamente i soldi di una famiglia sulle bollette in base alle preferenze di una persona.
Passaggio 1: Panoramica
Il termostato Smart Home utilizza un sensore di temperatura per ottenere la temperatura della casa. Questa lettura della temperatura viene inserita nel programma dove deciderà se il sistema di condizionamento dell'aria deve riscaldare o raffreddare la casa in base alla temperatura desiderata del proprietario della casa.
Ci sono due modalità per il termostato: manuale e automatica. La modalità manuale che regolerà la temperatura della casa alla temperatura desiderata è impostata dall'utente. E la modalità automatica del termostato cambierà automaticamente la temperatura della casa alle temperature preimpostate dall'utente. Ci saranno due impostazioni di temperatura per la modalità automatica: temperatura assente e temperatura attuale. La temperatura di assenza viene utilizzata per risparmiare energia impostando il termostato su una temperatura di risparmio energetico preimpostata ogni volta che l'utente non è in casa. La temperatura attuale verrà utilizzata quando l'utente è a casa e desidera una temperatura confortevole. Quando si è in modalità automatica del termostato, i sensori di movimento cercano attivamente il movimento per determinare se qualcuno è in casa o meno. In base alla loro lettura, la temperatura di casa sarà impostata sulla temperatura in trasferta o sulla temperatura attuale.
Passaggio 2: parti e materiali
(15) Cavi dei ponticelli
(4) Resistori da 220 Ohm
(1) Resistenza da 10K Ohm
(1) Sensore di temperatura
(1) Fotoresistenza
(1) Mini cambio DC DAGU
(1) Diodo
(1) Transistor
(1) Fotoresistenza
(1) tagliere
(1) Arduino MKR
Passaggio 3: circuito
Figura 1 = Immagine grande a sinistra
Figura 2 = In alto a destra
Figura 3 = Al centro a destra
Figura 4 = In basso a destra
Figura 1
Utilizzando lo schema sopra, abbiamo cablato ciascuno dei nostri tre LED. Abbiamo distanziato ogni LED poiché stavamo lavorando con una grande breadboard. Per breadboard più piccoli, potrebbe essere necessario avvicinare i LED. Inoltre, non è necessario alimentare la breadboard poiché i LED assorbono così poca energia. Non abbiamo utilizzato la connessione 5V sulla breadboard per i LED. Ogni connessione dai LED al nostro Arduino è stata realizzata come il filo verde è sopra. I nostri LED rosso, blu e verde sono collegati rispettivamente ai pin digitali 8, 9 e 10, designati con un filo rosso, blu e verde nella nostra immagine.
figura 2
Lo schema sopra è stato utilizzato per cablare la fotoresistenza. Abbiamo apportato alcune nostre correzioni; comunque i concetti sono sempre gli stessi. La fotoresistenza va collegata al pin analogico che abbiamo nel pin A1. Assicurati di utilizzare una resistenza da 10K ohm per la resistenza più vicina alla fotoresistenza.
Figura 3
Questo è lo schema utilizzato per cablare il sensore di temperatura. Assicurati di non confondere il transistor utilizzato qui con il sensore di temperatura. Sembrano quasi identici. Il sensore di temperatura avrà probabilmente TMP o qualche altro script scritto sul lato piatto del sensore. Il cablaggio qui è molto semplice, il nostro sensore di temperatura è collegato al pin analogico A0 con un filo bianco.
Figura 4
L'immagine sopra è stata utilizzata per cablare il cambio DAGU Mini DC. Il filo verde attaccato al Gearbox è in realtà il filo rosso ad esso collegato nella nostra foto. Il Gearbox è collegato al pin digitale 11 con un filo arancione nel nostro modello. Assicurati di non confondere il transistor utilizzato qui con il sensore di temperatura. Sembrano quasi identici. Il sensore di temperatura avrà probabilmente TMP o qualche altro script scritto sul lato piatto del sensore. È necessario utilizzare il transistor qui e non il sensore di temperatura.
Passaggio 4: codice Arduino
Qui vengono spiegate le parti più importanti del codice. Il codice non funzionerà solo con ciò che viene fornito qui. Per ottenere il codice funzionante completo, c'è un link in fondo alla pagina.
Quando si crea il codice del cronotermostato, una delle prime cose da fare è impostare i sensori e creare un ciclo for che otterrà costantemente le letture delle temperature dal sensore di temperatura.
Impostazione sensore di temperatura e LED:
tempPin = 'A0';%define funzione anonima che converte la tensione in temperatura tempCfromVolts = @(volts) (volts-0.5)*100; campionamentoDurata = 5; %secondi. Per quanto tempo vogliamo campionare per samplingInterval = 1; %Quanti secondi tra le letture della temperatura %imposta il vettore dei tempi di campionamento samplingTimes = 0:samplingInterval:samplingDuration; %calcola il numero di campioni in base alla durata e all'intervallo numSamples = length(samplingTimes); %preallocare le variabili temporanee e la variabile per il numero di letture che memorizzerà tempC = zeros(numSamples, 1); tempF = tempC; %Utilizzeremo un ciclo for questa volta per eseguire un numero predeterminato di %lettura della temperatura
Il ciclo for:
for index = 1:numSamples %legge la tensione su tempPin e memorizza in volt variabili volts = readVoltage(a, tempPin); tempC(indice) = -1*tempCfromVolts(volt+0.3); tempF(indice) = tempC(indice)*(9/5)+32; %Visualizza l'output formattato che comunica la lettura della temperatura corrente fprintf('La temperatura a %d secondi è %5.2f C o %5.2f F.\n', … samplingTimes(indice), tempC(indice), tempF(indice)); %nota che questo output di visualizzazione diventerà visibile tutto in una volta solo al termine dell'esecuzione del codice, a meno che tu non copi/incolli il codice in un semplice mfile di script. pause(samplingInterval) %ritardo fino alla prossima fine del campione
Successivamente, creiamo il nostro menu utente per consentire all'utente di decidere se mettere il termostato in modalità manuale o automatica. Creiamo anche un codice di errore se l'utente non seleziona nessuna delle due opzioni.
Il menu della modalità manuale richiede all'utente di impostare un numero per la temperatura del termostato, quindi riscalderà la casa, raffredderà la casa o resterà inattivo in base alle letture. Per impostare questa parte del codice, hai utilizzato le letture della temperatura dal sensore di temperatura e hai creato un codice che raffredderà la casa quando la lettura della temperatura è superiore alla temperatura impostata e riscalderà la casa quando la lettura della temperatura è inferiore alla temperatura impostata.
Una volta ottenute le letture della temperatura, è possibile creare il codice che dirà al termostato di raffreddare la casa quando la lettura della temperatura è superiore alla temperatura impostata e riscaldare la casa quando la lettura della temperatura è inferiore alla temperatura impostata. Per il prototipo, la luce blu si accende quando il termostato dovrebbe raffreddarsi e la luce rossa si accende quando il termostato dovrebbe riscaldarsi.
Configurazione del menù:
scelte = {'Automatico', 'Manuale'};imode = menu('Modo', scelte) if imode>0 h=msgbox(['Hai scelto ' scelte{imode}]); else h=warndlg('Hai chiuso il menu senza fare una scelta') end waitfor(h);
La modalità Manuale richiede all'utente di inserire una temperatura per il termostato, quindi in base alle letture del sensore di temperatura, inizierà sia il raffreddamento della casa che il riscaldamento della casa. Se la lettura del sensore di temperatura è superiore alla temperatura impostata, inizierà a raffreddare la casa. Se la lettura del sensore di temperatura è inferiore alla temperatura impostata, riscalderà la casa.
La modalità Manuale si avvierà:
if imode == 2 dlg_prompts = {'Quale temperatura preferisci?'}; dlg_title = 'Temperatura'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg(dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty(dlg_ans) h=warndlg('Hai annullato il comando inputdlg'); else temp_manual = str2double(dlg_ans{1}) %[Aggiungi diapositiva di impostazione della regolazione della temperatura in basso] end
All'interno dell'istruzione if per la modalità manuale, è necessario scrivere l'interfaccia del menu per consentire all'utente di scegliere la temperatura domestica desiderata, quindi implementare un'istruzione while che regolerà la temperatura domestica.
Impostazione della regolazione della temperatura:
while temp_manual < tempF writeDigitalPin(a, 'D9', 1) writeDigitalPin(a, 'D11', 1); end while temp_manual > tempF writeDigitalPin(a, 'D8', 1) writeDigitalPin(a, 'D11', 1); fine
La modalità automatica richiede più input rispetto alla modalità manuale. Dopo essere entrati nella modalità Automatica, l'utente imposterà una temperatura Normale e una Assenza per il proprio termostato. Dopo averle selezionate, in base alla modalità in cui si trova il termostato, tornerà alla modalità di regolazione della temperatura
Imposta la modalità automatica:
elseif imode == 1 dlg_prompts = {'Normale', 'Assente'}; dlg_title = 'Impostazioni temperatura'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg(dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty(dlg_ans) h=warndlg('Hai annullato il comando inputdlg'); else temp_normal = str2double(dlg_ans{1}) temp_away = str2double(dlg_ans{2}) end waitfor(h); %[Aggiungi rilevatore di movimento passaggio sotto]
Dobbiamo anche configurare il sensore di movimento per le impostazioni della modalità automatica. Quando il rilevatore di movimento rileva il movimento, manterrà la temperatura sull'impostazione della temperatura attuale, altrimenti verrà impostata sull'impostazione della temperatura di distanza.
Run_Motion_Detector(a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin(a, 'D6', 1) qualunque sia il pin rosso presente anche nel motore della ventola writeDigitalPin(a, 'D9', 1); end end while lightStr == 1 temp = temp_normal writeDigitalPin(a, 'D6', 1) %change a qualunque pin si trovi la luce normale while temp tempF writeDigitalPin(a, 'D6', 1) qualunque pin sia anche la luce rossa motore per ventola writeDigitalPin(a, 'D9', 1); fine fine
Il codice completo lo trovate qui.
Consigliato:
Termostato intelligente ESP8266: 6 passaggi (con immagini)
Termostato Intelligente ESP8266: Bienvenue sur ce nouvel articolo. On se retrouve aujourd'hui pour un projet que j'ai réalisé durant tout ce temps libre que m'a offert le confinament. Ce projet m'a été proposé par mon père, en effet il vient de déménager dans une vieille maison et l
Custodia per termostato intelligente HestiaPi FR4: 3 passaggi
Custodia per termostato intelligente HestiaPi FR4: HestiaPi è un termostato intelligente aperto per la tua casa.Esegue openHAB su un Raspberry Pi Zero W e include un touchscreen, un sensore di temperatura/umidità e relè che vengono alimentati direttamente dal cablaggio esistente della tua casa.Il nostro progetto è stato eseguito
HestiaPi Touch - Apri Termostato Intelligente: 9 Passaggi (con Immagini)
HestiaPi Touch - Termostato intelligente aperto: Informazioni su HestiaPi TouchHestiaPi Touch è un termostato intelligente completamente open source per la tua casa. Tutti i file digitali e le informazioni sono disponibili di seguito e sul nostro sito Web principale. Con esso, puoi monitorare la temperatura, l'umidità relativa e l'atmosfera della tua casa
Proteggi in modo intelligente la tua casa intelligente: 14 passaggi
Proteggi in modo intelligente la tua casa intelligente: sto partecipando al concorso sicuro e protetto. Se ti piace il mio tutorial, per favore votalo! Ti mostrerò come proteggere in modo semplice ed economico la tua casa e il suo ambiente. Contiene dei segmenti in cui imparerai come: 1. Configura y
Termostato fatto in casa: 6 passaggi
Termostato fatto in casa: Ciao a tutti, sono i miei primi istruttori, il primo obiettivo sarà quello di rendere un controller e un termoregolatore sicuri, semplici, efficienti e affidabili. Per cominciare, sono un dilettante che fa il formaggio in casa, dovevo controllare la temperatura e eh