Termostato con Arduino e DHT11

DSC01021

 

Dopo qualche realizzazione pratica con Raspberry Pi, iniziamo a “smanettare” con Arduino.

Il progetto che andiamo a trattare riguarda un semplice termostato “di fortuna” realizzato in non più di 20 minuti utilizzando un Arduino, un display (compatibile HD44780) e un sensore di temperatura/umidità DHT11.

Avevo l’esigenza di accendere e spegnere una caldaia quando la temperatura ambientale scendeva sotto i 17 gradi…non volendo comprare un termostato nuovo…ho recuperato un display e ho cercato di visualizzare sopra tutti i dati rilevati.

Iniziamo con i collegamenti ….

Il display si collega così …

Connessione display LCD - arduino.cc

Connessione display LCD – arduino.cc

Il sensore si collega così …

Connessione sensore DHT11

Connessione sensore DHT11

 

Il relè per l’attivazione della caldaia va al pin 13….in questo progetto non e’ connesso perché e’ parte integrante dell’impianto di riscaldamento preesistente….testeremo il funzionamento con il led presente sulla scheda Arduino.

Prima di iniziare a scrivere il codice vi rimando a due pagine dove troverete le librerie per LCD e DHT11

Ecco il codice….realizzato scopiazzando tra i vari esempi già presenti nell’IDE di Arduino:

 

 

Tutto ciò che trovate dopo le // lo potete eliminare…sono solo commenti per farvi capire cosa succede in quel punto preciso del programma….

Una volta caricato il tutto….compariranno sul display temperatura e umidità dell’ambiente. Se la temperatura e’ inferiore o uguale a 17°C si accenderà il led…e quindi il relè ad esso connesso (tramite un transistor di potenza). Su display comparirà la scritta “Acc” che sta per Acceso.

Superati i 17°C il led si spegne e sul display compare la scritta “Spe”… che sta per spento!

Ecco un video…

Termostato con Arduino e DHT11 from danilo larizza on Vimeo.

Se volete aumentare o diminuire la temperatura di intervento basta modificare il valore nella riga :

Buon lavoro….

15 thoughts on “Termostato con Arduino e DHT11

  1. ciao , ho provato a fare il tutto ma compare un errore nella compilazione, potresti ricontrollarlo ?
    grazie

  2. Non ho mai programmato (ancora) arduino, ma mi sembra che “lcd.begin(16, 2);” dovrebbe essere “lcd.begin(20, 2);” in quanto il display è da 20 colonne ;)

    Ciao

  3. Hai ragione, infatti ho appena modificato.
    Ma alla fine come puoi notare funziona lo stesso. Infatti il codice e’ copiato direttamente dal programma Arduino.
    Grazie per aver notato l’errore…e per essere stato sul blog :)

  4. ciao,
    uso il dht-11 non su arduino, ma su un altra schedina….
    ho rilevato che la temperatura segna giusto, ma l’umidità sta sempre sui 37 38%, il dato che mi da il dht è giusto perchè il crc coincide…..
    a voi come funziona il sensore?? si muove l’umidità??

    grazie

  5. Ciao luca,
    Ne ho un paio e funzionano egregiamente…sia per temperatura che per umiditá…
    La tensione che lo alimenta é stabilizzata??
    Lasci passare qualche secondo per farlo stabilizzare?

  6. da copia incolla in fase di compilazione mi da errore in : DHT dht(DHTPIN, DHTTYPE); riga 8
    error: ‘DHT’ does not name a type

  7. Giacomo devi installare le librerie per il dht.
    Cercale su google e segui le istruzioni per installarle

  8. le librerie sono copiate nella cartella ma non c’e verso. puoi indicarmi una guida?

  9. Per vedere se le librerie sono installate bene dovresti avere nella sezione esempi del programma arduino una sezione dhttest con dei programmini per testare il sensore

  10. probabilmente ho la libreria sbagliata!! hai un link da dove scaricarla?
    grazie infinite

  11. Ciao,
    innanzitutto complimenti per l’ottimo lavoro =), sto facendo un progetto in cui uso un pic 18f4550 e vorrei acquisire i dati dal dht. Menre in arduino è già più o meno tutto pronto con il pic il lavoro è un pò diverso. Le mia domanda è: sul datasheet c’è scritto che il dht comunica in modo seriale- quindi non devo usare una porta analogica sul pic giusto? ; il mio dht è solo il pezzo blu di plastica con i 4 piedini non ha la schedina- cambia qualcosa?

  12. Ciao Alessandro,
    si … come dici tu puoi connettere il tutto via digitale (non proprio seriale)…più precisamente Single-Wire Two-Way. Niente uscite analogiche. Se vuoi usare una porta analogica dovresti usare l’LM35 ma ti da solamente la temperatura. Per quanto riguarda la piedinatura….no problem…forse nella schedina c’e’ solo una resistenza…mi sembra tra i pin 1 e 2. magari fai una piccola ricerca e troverai tutto.
    Ci sono molti progetti basati su pic…..buona Gooogleata e Buon lavoro :)

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *


− sette = 0

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">