Misurare Temperatura e Umidità 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. Quindi faremo in modo che temperatura e umidità vengano stampate sul monitor seriale.

cos’è e come funziona il dht11

Misurare temperatura e umidità con arduino-dht11

Un sensore 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 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.

 

#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);
}

 

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 🙂

 

 

I commenti sono chiusi.