Il Kit di ESPertino: temperatura e umidità sotto controllo con il DHT11

Il kit di ESPertino prevede, tra gli altri, il sensore di umidità e di temperatura DHT11. Vediamo come utilizzarlo al meglio con la nostra scheda, ricordando che i dati da esso misurati e restituiti sono di tipo digitali e non è necessario alcun ingresso analogico. Utilizzando delle apposite librerie , la gestione del modulo è ancora più semplice.

Il sensore

Si tratta di un dispositivo per rilevare la temperatura e l'umidità (vedi figura 1). Può essere adottato in tanti ambiti diversi come, ad esempio, deumidificatori, controlli automatici, stazioni meteo, domotica, ecc. Le sue misure risultano molto ridotte e, non considerando i piedini di connessione, sono di 12mm. x 5.5mm. x 15.5mm. E' dotato di un sensore di umidità e di un termistore di tipo NTC. Come detto nell'introduzione, esso fornisce le elaborazioni tramite un segnale digitale e non analogico. E' necessario, pertanto, predisporre un adeguato algoritmo di acquisizione e decodifica. La lettura delle informazioni acquisite, per la sua conformazione elettronica, può essere effettuata, come affermato dal datasheet, almeno ogni sei secondi. Letture consecutive più ravvicinate potrebbero influire negativamente sulla bontà delle misurazioni. Al di la di tale aspetto esso può essere considerato un componente esente da interferenze, molto affidabile e preciso, anche a lungo termine. Il datasheet fornisce preziose informazioni in merito.

Figura 1: il sensore di temperatura e di umidità DHT11

Figura 1: il sensore di temperatura e di umidità DHT11

Ogni esemplare del sensore è stato accuratamente calibrato in laboratorio. I coefficienti della calibrazione eseguita vengono memorizzati nella sua memoria e utilizzati successivamente dal processo di misurazione delle due grandezze fisiche. Il componente riesce a trasmettere i dati fino a una distanza di 20 metri, con il cavo naturalmente. La sua piedinatura prevede il collegamento con quattro piedini, anche se il pin numero tre non deve essere collegato.

Caratteristiche tecniche

Il DHT11 misura l'umidità all'interno dell'intervallo 20-90%RH, con una precisione del +/-5%. La temperatura, invece, è rilevata in un range compreso tra 0°C e 50°C, con una accuratezza di +/-2°C. Il dispositivo è, dunque, adatto per la maggior parte delle applicazioni.

La comunicazione dei dati

Il DHT11 utilizza una semplificata comunicazione su un solo bus di dati. Essi transitano su una sequenza completa di 40 bit e precisamente:

  • 8 bit per la parte intera dell'umidità;
  • 8 bit per la parte decimale dell'umidità;
  • 8 bit per la parte intera della temperatura;
  • 8 bit per la parte frazionaria della temperatura;
  • 8 bit per il checksum.

Qualche esempio chiarirà meglio il concetto. Si supponga che il sensore spedisca la seguente sequenza di 40 bit:

00110101 00000000 00011000 00000000 01001101

Si può calcolare manualmente il checksum in maniera estremamente semplice, sommando i primi 4 bytes e confrontando la somma con il quinto byte:

00110101+
00000000+
00011000+
00000000=
---------
01001101

La somma è equivalente al checksum dell'esempio, pertanto il pacchetto è stato spedito correttamente. Se la somma risultasse differente dal quinto byte il dato finale non sarebbe attendibile. Sempre relativamente all'esempio di cui sopra, possiamo leggere le seguenti informazioni sulle due grandezze fisiche:

  • l'umidità è pari a (00110101)2=(53%RH)10
  • la temperatura è pari a (00011000)2=(24℃)10

Schema di principio

Lo schema di principio di collegamento è visibile in figura 2. La sua semplicità, come si può notare, è estrema. Le informazioni, circa le grandezze fisiche misurate, viaggiano su una sola linea di dati, bit dopo bit. La resistenza di pull-up da 5K sulla linea dei dati è consigliata se il cavo risulta più corto di 20 metri. Per lunghezze maggiori occorrerà scegliere valori differenti. Il modulo del sensore può essere alimentato con una tensione compresa tra 3.5V e 5.5V. Una raccomandazione per i programmatori è la seguente: dopo aver fornito tensione al DHT11 occorre aspettare almeno un secondo, prima d'inoltrare qualsiasi comando. In caso contrario si potrebbe verificare una instabilità di funzionamento del sistema. E' caldamente consigliato, altresì, l'adozione di un condensatore da 100nF collegato tra l'alimentazione del sensore e la massa, con funzione di filtro. Può essere montato vicino a esso. Inoltre se il sensore viene alimentato con una tensione di 3.5VDC, i relativi cavi di collegamento non dovrebbero superare la lunghezza di 20cm. In caso contrario, l'inevitabile caduta di tensione della linea abbasserà l'alimentazione del sensore causando, molto probabilmente, errori di misura. Il sensore dovrebbe essere anche montato distante da altri componenti elettronici "caldi" e non esposto a luce ultravioletta, pena il degrado delle prestazioni.

Figura 2: schema di principio

Figura 2: schema di principio

La libreria per la gestione del sensore DHT11

Sebbene la programmazione "grezza" e a basso livello, per la comunicazione di ESPertino con il sensore, possa essere effettuata con un po' di difficoltà, essa potrebbe costituire una sfida molto didattica e utile per il programmatore e lo sviluppatore. Ne verrebbe fuori, tuttavia, un codice un po' più lungo ma estremamente riutilizzabile. In ogni caso esistono tante librerie che gestiscono egregiamente il DHT11 e con un minimo sforzo e di tempo si possono scrivere programmi molto complessi, con poche righe di codice. Tutto il funzionamento del sensore si basa sulla sua restituzione delle informazioni in un pacchetto composto da 40 bit.
[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2116 parole ed è riservato agli abbonati MAKER. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e potrai fare il download (PDF) dell'EOS-Book del mese. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

Scrivi un commento

EOS-Academy