Ciao a tutti!
Il progetto che realizzeremo oggi è un termostato wifi controllabile con una applicazione per smartphone.
In pratica da dovunque voi siate potrete controllare un dispostivo tramite la chiusura di un contatto di un relè (una caldaia, un ventilatore, una scaldiglia,etc)
I componenti di cui avremo bisogno sono:
Ecco il video del primo prototipo, in cui potete vedere il funzionamento del sistema:
Schematizzando il principio di funzionamento di questo sistema è il seguente:
A questo punto siamo pronti a realizzare lo schema elettrico:
A questo punto abbiamo quasi finito, sarà sufficiente caricare il seguente sketch per iniziare ad utilizzare il nostro sistema.
Assicuratevi di avere la libreria DHT11 per il sensore di temperatura e ricordatevi di scollegare il cavetto dal pin 0 di Arduino durante il caricamento!
In pratica tutto quello che vedete sul pannello è contenuto nelle righe inviate dall'Arduino al miuPanel via seriale (quindi sulle righe 22,23 - 50,51 e 55,56)
Questi sono gli screenshot del pannello che apparira sull'app se tutto sarà andato a buon fine:
Il funzionamento è molto intuitivo, nella "modalità manuale" (primo screenshot) controllerete lo stato del relè manualmente agendo sullo switch, mentre nella "modalità automatica" (secondo e terzo screen) andrete ad inserire la temperatura che vorrete raggiungere nel campo "ins_t", se la temperatura impostata è più alta di quella attuale il relè si attiverà, quando la temperatura attuale raggiungerà quella impostata il rele si spegnerà.
Finito!
e ricordate che potete personalizzare il pannello come vorrete,
tutte le info necessarie su www.miupanel.com
Per qualsiasi info su questo progetto lasciate pure un commento qui sotto,
ciao!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
Il progetto che realizzeremo oggi è un termostato wifi controllabile con una applicazione per smartphone.
In pratica da dovunque voi siate potrete controllare un dispostivo tramite la chiusura di un contatto di un relè (una caldaia, un ventilatore, una scaldiglia,etc)
I componenti di cui avremo bisogno sono:
- una scheda Arduino
- un modulo wifi miuPanel SCF-01 (acquistabile qui)
- un sensore di temperatura DHT11
- un modulo relè
- breadboard e cavetteria varia.
Ecco il video del primo prototipo, in cui potete vedere il funzionamento del sistema:
Schematizzando il principio di funzionamento di questo sistema è il seguente:
- la scheda wifi miuPanel si collega alla vostra rete wifi di casa
- la scheda Arduino invia, via seriale, le informazioni al modulo miuPanel per generare il pannello grafico che vedrete sul vostro smartphone.
- scaricate poi l'app miuPanel sul vostro smartphone e riconoscete il pannello (se non sapete come si fa o se volete muovere i primi passi con questo fantastico dispositivo leggete qui)
- agendo sull'app generata sul vostro smartphone il modulo wifi restituirà all'Arduino delle stringhe di testo in base a ciò che avete fatto (ad esempio attivato o disattivato uno switch).
- leggendo queste informazioni poi, l'Arduino, comanderà ciò che è collegato alle porte di uscita.
A questo punto siamo pronti a realizzare lo schema elettrico:
A questo punto abbiamo quasi finito, sarà sufficiente caricare il seguente sketch per iniziare ad utilizzare il nostro sistema.
Assicuratevi di avere la libreria DHT11 per il sensore di temperatura e ricordatevi di scollegare il cavetto dal pin 0 di Arduino durante il caricamento!
In pratica tutto quello che vedete sul pannello è contenuto nelle righe inviate dall'Arduino al miuPanel via seriale (quindi sulle righe 22,23 - 50,51 e 55,56)
Questi sono gli screenshot del pannello che apparira sull'app se tutto sarà andato a buon fine:
Il funzionamento è molto intuitivo, nella "modalità manuale" (primo screenshot) controllerete lo stato del relè manualmente agendo sullo switch, mentre nella "modalità automatica" (secondo e terzo screen) andrete ad inserire la temperatura che vorrete raggiungere nel campo "ins_t", se la temperatura impostata è più alta di quella attuale il relè si attiverà, quando la temperatura attuale raggiungerà quella impostata il rele si spegnerà.
Finito!
e ricordate che potete personalizzare il pannello come vorrete,
tutte le info necessarie su www.miupanel.com
Per qualsiasi info su questo progetto lasciate pure un commento qui sotto,
ciao!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
Ciao come hai fatto ad inserire il codice in maniera cosi corretta a con la grafica di arduino? Grazie
RispondiEliminaciao, cosa intendi? per la grafica del pannello trovi un simulatore sul sito di miuPanel dal quale puoi fare tutte le prove che vuoi,
RispondiEliminaspero intendessi questo, ciao!
Ciao, sono Angelo e non ci capisco più nulla.
RispondiEliminaVorrei alienare il cavo USB che ora collega il mio PC con Arduino Uno, con una connessione wifi.
Ho acquistato il relativo modulo ed il suo adattatore di tensione, dato che i comandi ad Arduino vengono passati da basic col PC, è necessario l'uso di miupanel??? Grazie
Il cavo USB è necessario per programmare l'arduino UNO, l'uso di miuPanel è vincolato al modulo WiFi miuPanel
EliminaScusa ma il quesito è un altro ovvero : per far vedere Arduino al PC l'uso di miuPanel è vincolante o ci si riesce in altro modo.
RispondiEliminaGrazie
Il collegamento tra Arduino e PC lo fai tramite USB. Il collegamento tra smartphone e Arduino lo fai con miuPanel
EliminaIl collegamento tra Arduino e PC lo fai tramite USB. Il collegamento tra smartphone e Arduino lo fai con miuPanel
EliminaScusa ma non capisco, per impartire comandi ad Arduino Uno dal PC in modo wireless cosa devo praticamente fare?????
RispondiEliminaCiao io uso un arduino mega 2560 rev3 quando uso i pin tx0 e rx0 funziona tutto bene ma quando cambio questi pin e uso tx2 e rx2 non funziona più nulla perchè?
RispondiEliminaCiao Luca,
Eliminahai modificato anche lo sketch per la seriale 2?
se non sbaglio sulla mega per usare la seriale 2 devi sostituire tutti i "Serial" con "Serial2". Prova così, fammi sapere, ciao!
Si adesso funziona. peró ho notato che nello schema di collegamento il pin tx del modulo va al pin rx di arduino e il pin rx del modulo va al pin tx di arduino, perchè di solito il pin tx va al tx e l'rx va all'rx perchè qua è il contrario?
Eliminaio di solito vedo il pin tx che entra nell'rx, perchè uno trasmette e l'altro riceve. Non saprei, magari in alcune schede sono state invertite le scritte per facilitare l'utente. Comunque in questo caso il collegamento corretto è TX con RX e viceversa. Ciao
Eliminaciao,volevo sapere nella riga 84 cosa significa il (0,4);
RispondiEliminapoi anche questa non riesco a capire :
temperatura_impostata = Msg.substring(4, 6).toInt();
Ciao Alex,
Eliminala funzione "substring" serve a dividere la stringa. in pratica scrivendo "Msg.substring(4,6).toInt();" sto andando a leggere solo i caratteri 4 e 5 di quella stringa, e poi li trasformo in un unico numero.
ciao!
scusa una cosa non riesco a capire come funziona l applicazione uPanel o meglio come faccio a portare i pulsanti bottoni sull applicazione calcola che ho gia l applicazione sul mio iphone e ho gia configurato il wifi sotto il mio router ... ed ora non riesco ad andare avanti cioecosa devo fare per fare un pannello e portarlo sul pc
RispondiEliminaCiao, Miupanel è un pannello "vuoto", per aggiungere dei bottoni sull'app devi dare dei comandi via seriale dall'arduino al modulo miupanel.
EliminaTrovi un esempio qui:
http://www.danielealberti.it/2015/10/panel-linterfaccia-wifi-semplice-per-i.html
Ciao!
scusa e portarlo sul iphone
RispondiEliminao meglio una volta inserito lo sketcksu arduino che bisogna fare
RispondiEliminaho ricopiato lo sketch emandato su arduino nano ma se apro l applicazioene e connetto wifi mi appare una schermata tutta nera perche dove sbaglio
RispondiEliminasalve volevoun indicazione
RispondiEliminaho acquistato un modulo miupanel
configurato con il mio modem econ l applicazione sulmio iphone che riesco a vedere e comunicare.....
ora io ho fattouno sketch che piosso vedere online i risultati delsensore dh11 siatemperatura umidita e dowe point ...ora vilascio di seguito lo sketch...
perche volevo sapere se era possibile comunicarecon l applicazione facendo un pannello con grafici e valori di temperatura e umidita' e dowe point aggiornabili con allerta (notifica) se supera o scende determinati valori.....volevo sapere comepoter fare un grafico e se era possibile realizzarlo con upanel.. o come poterlo fare grazie
#include
RispondiElimina#include
#include
/*-----( Declare Constants and Pin Numbers )-----*/
#define DHT11PIN 2 // The Temperature/Humidity sensor
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
/*-----( Declare objects )-----*/
IPAddress ip(192,168,1, 22);
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
dht11 DHT11; //The Sensor Object
/*-----( Declare Variables )-----*/
void setup() /****** SETUP: RUNS ONCE ******/
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}//--(end setup )---
void loop() /*----( LOOP: RUNS OVER AND OVER AGAIN )----*/
RispondiElimina{
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("Content-Type: text/html");
RispondiEliminaclient.println("Connnection: close");
se mi mandi una email ti mando lo sketch
RispondiEliminaBUONGIORNO, MI CHIAMO ANTONIO E DA POCO MI SONO AVVICINATO AD ARDUINO, COMPLIMENTI PER IL TUO PROGETTO, VORREI REALIZZARE IL TUO STESSO TERMOSTATO MA MI CHIEDEVO SE SI POTESSE CAMBIARE IL SENSORE DI TEMPERATURA, MI SPIEGO:
RispondiEliminaDEVO REALIZZARE UN TERMOSTATO CON WIFI PER CONTROLLARE LA TEMPERATURA DI UNA PENTOLA ELETTRICA, QUINDI IL SENSORE ANDREBBE MESSO ALL'INTERNO DI UN PORTASONDA MONTATO SULLA PENTOLA..
PENSAVO A UN SENSORE TIPO QUESTO:
http://www.ebay.it/itm/SONDA-DS18B20-SENSORE-DI-TEMPERATURA-da-55-a-125-C-ARDUINO-ART-CD06-/261141793540?hash=item3ccd438b04:g:F9YAAOSw9NdXqd9G
SE FOSSE POSSIBILE POTRESTI CAMBIARE IL CODICE PER ADATTARLO A QUESTO TIPO DI TERMOSTATO?
GRAZIE IN ANTICIPO!
buon pomeriggio alberto e complimenti per il progetto. posso comandare questo termostato anvhe se sono fuori casa?
RispondiEliminaCiao, si, in base anche alla configurazione del tuo router.
EliminaDaniele
Salve, vorrei realizzare il progetto ma avrei la necessità di controllare 2 zone diverse (2 sensori e due relè) è fattibile con un solo arduino?
RispondiEliminaGrazie
tecnicamente sì, basta che i fili riescano ad arrivare alla scheda Arduino e implementare un poco di codice extra per gestire i compoenti in più. Se no per iniziare si può valutare un progetto su Cayenne Mydevices che è molto più intuitivo. Per il riscaldamento esistono termostati che imparano i tempi di riscaldamento e raffreddamento della casa (tipo netatmo)e adattano l'accensione/spegnimento della caldaia in modo da stabilizzare la temperatura (isteresi o PID) senza avere sbalzi termici che sono tipici dei sistemi on/off basati sulle sole soglie di temperatura.
EliminaOk. Grazie mille. Seguiro i suoi consigli.
EliminaBuongiorno.
RispondiEliminaHo realizzato il progetto e grazie alla tua guida è andato tutto bene.
L'unico problema che ho riscontrato, è che svincolando arduino dal pc e alimentato da fonte esterna si disconnette il modulo wi fi.
è normale o ho sbagliato qualcosa... Grazie
In che senso si sconnette? Verifica la fonte di alimentazione
EliminaGrazie della info.
EliminaInfatti fonte di alimentazione non adeguata. Risolto il problema con alimentatore più potente
Ciao Sandro,
EliminaMi sono da poco affacciato ha questo mondo di arduino.Ho seguito questo progetto di Daniele Alberti seguendo tutto alla lettera scaricando e inviando lo sketch ma quando apro l'app sul telefono non accade nulla solo il led da verde diventa giallo ma sul display non appare nulla.
Dove sbaglio?
Ti ringrazio per la cortese attenzione.
Questo commento è stato eliminato dall'autore.
RispondiEliminaGrazie Daniele.Ti seguo da tempo ed ho letto molto attentamente i tuoi progetti. Complimenti per il tempo che ci dedichi. Volevo approfittare del tuo know how semplicemente chiedendoti la cortesia di includere nello sketch le stringhe relative all' umidità relativa rilevata....in sintesi, come cavolo si fa ad avere il dato sul modulo del phone?
RispondiEliminaGrazie infinite!
Questo commento è stato eliminato dall'autore.
RispondiEliminaCiao,
RispondiEliminaho utilizzato il tuo progetto, ma noto una differenza di temperature tra la lettura da monitor seriale e uPanel.
E' possibile risolvere questo problema?
Grazie in anticipo e grazie mille per il progetto.
Ciao Daniele, ho iniziato da poco a usare arduino che trovo molto ma molto interessante. Ho usato la prima guida per accendere il led e funziona. Ho provato questa guida per termostato seguendo il tutto alla lettera con collegamenti ecc.ma sul telefono non appare nulla. Dove sbaglio? Chiedo aiuto anche agli altri utenti piu esperti di me!! Grazie a tutti!!
RispondiEliminaCiao Daniele,
RispondiEliminaho realizzato il tuo progetto del termostato che funziona alla perfezione.
Vorrei chiederti di aiutarmi a capire come configurare miupanel e router fastweb per controllare il sistema quando non sono in casa.
Ti ringrazio immensamente in anticipo.
Sei un grande.
Chiedo aiuto anche agli altri utenti
Grazie a tutti
Saluti
Ciao! intanto grazie per il lavoro che fai!
RispondiEliminaho un problema con la libreria DHT. L'ho scaricata e messa nella cartella libraries dii Arduino ma quando vado a compilare mi da:
In file included from C:\Users\xxx\Documents\Arduino\libraries\DHT_sensor_library-1.3.0\DHT_U.cpp:22:0:
C:\Users\xxx\Documents\Arduino\libraries\DHT_sensor_library-1.3.0\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory
#include
^
compilation terminated.
Errore durante la compilazione
Come mai? grazie!
Ciao e grazie!
EliminaNon capisco perché ti dice "Adafruit_Sensor.h" non ci dovrebbe essere nulla dell'adafruit nello sketch, lo hai modificato o è come nell'esempio?
non ho modificato nulla. ho provato a compilarlo anche da un'altro pc ma mi da sempre lo stesso errore.
EliminaSe vai tra gli esempi (nel menu) vedi quelli della libreria DHT?
EliminaRisolto! direttamente da "gestisci librerie" ho installato una versione precedente della libreria e va!
EliminaOra però quando connetto il telefono via Wi-Fi al uPanel si interrompe la connessione wi-fi (solo con questo progetto).
Grazie per le risposte!
è possibile avere il fritzing sorgente please?
RispondiEliminaBuongiorno a tutti,
RispondiEliminaSto procedendo con la realizzazione del progetto...
volevo sapere se si può aggiungere un interruttore per un azionandnto manuale nel caso cadesse la rete e uno schermo ... oppure in generale qualcosa per il controllo in locale ...
Buongiorno. Ho realizzato qualcosa di molto simile al tuo progetto ma volendo fare un passo in più mi sono arenato.
RispondiEliminaIn pratica il termostato è installato vicino ai sensori di temperatura (uno in ambiente e uno all'esterno) ma lontano dalla caldaia; quindi per collegarlo dovrei stendere 10 metri di filo e temo non passi nelle canalette.
Allora ho comprato un modulo ESP8266 RELAY con l'idea di posizionarlo vicino alla caldaia e farlo dialogare col termostato attraverso in router di casa.
I problemi sono:
- programmazione del modulo per l'accesso alla rete di casa;
- invio del comando on/off dal termostato al relè, ossia su un indirizzo IP specifico.
Puoi darmi qualche suggerimento?
interessante se fosse completo con orari on off riscaldamento e impostazione minima e massima. Meglio sfruttando sensore umidità che attiva deumidificatore (quindi aggiungendo un uscita...
RispondiEliminaCiao Daniele,
RispondiEliminaho comprato il modulo e dovrei realizzare questo progetto. Ti volevo chiedere se e' possibile inserire nello Sketch anche un Timer settimanale in modo da poter gestire la Caldaia in modo automatico.
Grazie e buona giornata,
Massimiliano
Ciao Daniele,bel progetto, volevo chiederti un aiuto, ho realizzato un progetto di domotica con arduino mega e una ethernet shield,quindi non utilizzo il modulo wifi ma una connessione fisica alla rete,oltre ai comandi per le accensioni ho impostato nello sketch 4 sensori di temperatura mpc9700 , uno legge la temperatura del sistema , due leggono le temperature dei due piani e l'ultimo la temperatura esterna.Il mio problema è che non riesco a far funzionare i comandi riferiti ai tre sensori , cioè quando le temperature impostate sono maggiori o minori arduino deve accendere o spegnere i relè dedicati. Sbaglio sicuramente qualcosa nello sketch, ci sto diventando pazzo. Ovviamente se puoi aiutarmi ti posto lo sketch completo. Scusami se sono stato lungo nella descrizione e se magari ìl mio argomento non è proprio inerente a quello trattato qui.Chiedo aiuto a te e a tutti coloro che leggeranno questo messaggio. Ti ringrazio e ringrazio tutti. Ciao
RispondiEliminaRoberto
Ciao, prova a postare sketch e problema nella sezione "chiedi e rispondi"
EliminaCiao Daniele, grazie della risposta, ho appena inserito su " chiedi e rispondi " il mio quesito e lo sketch completo.
EliminaGrazie
Ciao
Ciao Daniele,
RispondiEliminaho comprato il modulo e dovrei realizzare questo progetto. Ti volevo chiedere se e' possibile inserire nello Sketch anche un Timer settimanale in modo da poter gestire la Caldaia in modo automatico.
Grazie e buona giornata,
Massimiliano
Ciao ho notato una cosa e vorrei chiederti un'altra indicazione:
RispondiEliminaif (tempo > (temporefresh + 1000)) // ogni secondo aggiorno le altre informazioni sul pannello
{
Serial.print("#A1:");
Serial.println(temperatura_impostata);
if ((automatico == 1) && (t < temperatura_impostata))
{
digitalWrite (relais, HIGH);
Serial.println("#L21");
}
if ((automatico == 1) && (t > temperatura_impostata))
{
digitalWrite (relais, LOW);
Serial.println("#L20");
}
temporefresh = tempo;
}
}
ho notato che dopo "automatico" il codice rimane uguale sia in acceso che spento, infatti se inserisco una temperatura più alta non stacca.
Altra domanda: se volessi mettere un dht22 invece che un dht11 cosa devo variare?
Grazie
Per farlo staccare devi inserire una temperatura più bassa, attacca per "scaldare" l'ambiente.
EliminaIl dht 22 non l'ho mai usato, ma probabilmente ti basta modificare la riga in alto dove si definisce il tipo di dht
Il sensore mi segna sempre 60°. Se imposto la temperatura a 65° non stacca. Proverò a cambiare ma il dht11 con dht22 ma le librerie?
EliminaGrazie
La libreria dovrebbe supportare entrambi, però va approfondita la cosa
EliminaCiao , se al posto del DHT11 usassi una sonda? Come sarebbe lo sketch? Non sono molto pratico di Arduino e vorrei controllare da remoto la resistenza di un solare termico. Grazie
RispondiElimina