Misurare la temperatura con Arduino

In questo articolo andremo a vedere come misurare la temperatura con Arduino, in particolare andremo ad utilizzare un sensore molto conosciuto e dal costo contenuto chiamato DHT11, che oltre alla lettura della temperatura ci permetterà di misurare anche l’umidità dell’ambiente. Quindi faremo in modo che temperatura e umidità vengano stampate sul monitor seriale.

Cos’è e come funziona il DTH11

Misurare temperatura e umidità con arduino-dht11

Il DHT11, come detto prima, è un sensore capace di misurare sia la temperatura sia l’umidità dell’ambiente che ci circonda. Questo sensore è caratterizzato da un’alta stabilità ed affidabilità, oltre ad essere molto facile da integrare con Arduino: dispone infatti non solo di un’interfaccia seriale a singolo filo ovvero ha bisogno di un solo filo per mandare i dati (oltre a quello dell’alimentazione e della massa), ma ci sono disponibili anche le librerie grazie alle quali la lettura e la successiva visualizzazione delle misurazioni diventa molto semplice.




Questo sensore presenta quindi 3 pin: alimentazione (+5V), GND e DATA che sono rispettivamente il pin dell’alimentazione, quello della massa e quello che manda il segnale alla scheda a cui lo colleghiamo.

NOTA: I PIN possono stare in un ordine diverso rispetto a quelli dell’immagine sotto, quindi è consigliato prima del collegamento controllare la loro disposizione.

Misurare temperatura e umidità con arduino-pin del dht11-2

Queste invece sono le specifiche elettriche del sensore:

Descrizione

Condizione

Minimo

Tipico

Massimo

Unità di misura

Alimentazione

DC

3

5

5,5

 V

Alimentazione di corrente

 Di misura

 0,5

 

2,5

mA

Stand-by

100

Null

 150

 

uA

Per quanto riguarda l’acquisto del sensore ci sono molti negozi di elettronica che lo vendono, sia fisici sia su internet. Noi comunque ci siamo affidati a Homotix, un negozio Italiano che vende moltissimi prodotti elettronici per creare progetti, incluso questo sensore che potete acquistare andando in questa pagina.

Componenti necessari

Per fare questo progetto e quindi per misurare la temperatura con Arduino correttamente, avremo bisogno dei seguenti componenti:

  • Sensore DHT11
  • Arduino (qualsiasi modello va bene, in questa guida utilizzeremo Arduino UNO)
  • Resistenza da 4,7 kΏ
  • Cavetti per i collegamenti
  • Libreria del DHT11 scaricabile da qui

Collegamenti

Il collegamento alla scheda è molto semplice : dobbiamo collegare il pin dell’alimentazione al +5V di Arduino, quello della massa al GND e quello dei dati ad una porta digitale qualunque, in questa guida io utilizzerò la numero 4. Adesso ti starai chiedendo a cosa serve la resistenza, quella è una resistenza di pull-up (qui la pagina di wikipedia). Sotto trovi l’immagine di come devono essere fatti i collegamenti.

Misurare temperatura e umidità con arduino-schema collegamento

In generale l’interfacciamento con i microprocessori è questo:

Misurare temperatura e umidità con arduino-pin del dht11

Programmazione della scheda

Adesso andiamo a vedere il programma che deve essere caricato su Arduino.

ATTENZIONE: ricordati di importare la libreria di cui ho messo il link sopra.

[code lang=”c”]
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4

void setup(){
Serial.begin(9600);
Serial.println(“DHT TEST PROGRAM “);
Serial.print(“LIBRARY VERSION: “);
Serial.println(DHT11LIB_VERSION);
Serial.println();
Serial.println(“Type,\tstatus,\tHumidity (%),\tTemperature (C)”);
}

void loop(){
int chk;
Serial.print(“DHT11, \t”);
chk = DHT.read(DHT11_PIN);
switch (chk){
case DHTLIB_OK:
Serial.print(“OK,\t”);
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print(“Checksum error,\t”);
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print(“Time out error,\t”);
break;
default:
Serial.print(“Unknown error,\t”);
break;
}

Serial.print(DHT.humidity,1);
Serial.print(“,\t”);
Serial.println(DHT.temperature,1);

delay(1000);
}
[/code]

Andiamo adesso ad analizzare il codice.

Riga 1: Includiamo la libreria precedentemente scaricata. Includere una libreria consiste praticamente nel fare un copia e incolla del codice scritto in quella libreria dentro quello nostro.

Riga 3: Chiamiamo il PIN 4 con un altro nome. Questo torna utile durante la programmazione sia per evitare errori sia per rendere più semplice la scrittura del programma.

Righe 6-11: In questo intervallo di righe andiamo ad impostare il canale di comunicazione seriale e scriviamo alcune informazioni che verranno mostrare sul monitor seriale.

 Riga 17: Assegniamo alla variabile “chk” l’output della funzione la quale ci ritorna lo stato del sensore.

Righe 18-31: Se la funzione prima menzionata ci da qualche errore stampa la relativa descrizione.

Riga 33: Legge dal sensore il valore dell’umidità e la stampiamo.

Riga 35: Legge dal sensore il valore della temperatura e la stampiamo.

Riga 37: Attende un secondo prima di ricominciare il ciclo.

La guida è finita qui! Se hai qualsiasi dubbio, o anche consiglio non esitare a commentare qui sotto. Saremo molto felici di darti una mano 🙂

Guarda anche: Led a ritmo di musica

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.