Come Collegare Il Sensore Di Temperatura E Umidità DHT11 Ad Arduino?

Sommario:

Come Collegare Il Sensore Di Temperatura E Umidità DHT11 Ad Arduino?
Come Collegare Il Sensore Di Temperatura E Umidità DHT11 Ad Arduino?

Video: Come Collegare Il Sensore Di Temperatura E Umidità DHT11 Ad Arduino?

Video: Come Collegare Il Sensore Di Temperatura E Umidità DHT11 Ad Arduino?
Video: Sensori con Arduino ITA: sensore di temperatura e umidità DHT11 2024, Maggio
Anonim

Il sensore di temperatura e umidità DHT17 è un sensore popolare ed economico che può essere utilizzato in un intervallo abbastanza ampio di temperature e umidità relativa. Vediamo come collegarlo ad Arduino e come leggere i dati da esso.

Sensore di temperatura e umidità DHT11
Sensore di temperatura e umidità DHT11

Necessario

  • -Arduino;
  • - Sensore di temperatura e umidità DHT17.

Istruzioni

Passo 1

Quindi, il sensore DHT11 ha le seguenti caratteristiche:

- intervallo di umidità relativa misurata - 20..90% con un errore fino al 5%, - intervallo di temperature misurate - 0..50 gradi Celsius con un errore fino a 2 gradi;

- tempo di risposta alle variazioni di umidità - fino a 15 secondi, temperatura - fino a 30 secondi;

- il periodo di polling minimo è di 1 secondo.

Come potete vedere, il sensore DHT11 non è molto preciso e l'intervallo di temperatura non copre valori negativi, il che difficilmente è adatto per misurazioni all'aperto nella stagione fredda del nostro clima. Tuttavia, il suo basso costo, le ridotte dimensioni e la facilità d'uso compensano parzialmente questi svantaggi.

La figura mostra l'aspetto del sensore e le sue dimensioni in millimetri.

Aspetto e dimensioni del sensore DHT11
Aspetto e dimensioni del sensore DHT11

Passo 2

Si consideri lo schema di collegamento del sensore di temperatura e umidità DHT11 al microcontrollore, in particolare, all'Arduino. Nell'immagine:

- MCU - microcontrollore (ad esempio Arduino o simili) o computer a scheda singola (Raspberry Pi o simili);

- DHT11 - sensore di temperatura e umidità;

- DATI - bus dati; se la lunghezza del cavo di collegamento dal sensore al microcontrollore non supera i 20 metri, si consiglia di collegare questo bus all'alimentazione con un resistore da 5, 1 kOhm; se più di 20 metri, allora un altro valore adatto (più piccolo).

- VDD - alimentazione del sensore; tensioni consentite da ~ 3,0 a ~ 5,5 volt CC; se viene utilizzata l'alimentazione ~ 3,3 V, è consigliabile utilizzare un cavo di alimentazione non più lungo di 20 cm.

Uno dei cavi del sensore - il terzo - non è collegato a nulla.

Il sensore DHT11 viene spesso venduto come assemblaggio completo con le tubazioni necessarie: resistenza di pull-up e condensatore di filtro.

Schema di collegamento del sensore DHT11 al microcontrollore
Schema di collegamento del sensore DHT11 al microcontrollore

Passaggio 3

Mettiamo insieme lo schema considerato. Collegherò anche un analizzatore di stati logici al circuito in modo da poter studiare il diagramma temporale della comunicazione con il sensore.

Sensore DHT11 e Arduino
Sensore DHT11 e Arduino

Passaggio 4

Andiamo nel modo più semplice: scarica la libreria per il sensore DHT11 (link nella sezione "Sorgenti"), installala nel modo standard (decomprimendola nella directory \librerie\dell'ambiente di sviluppo Arduino).

Scriviamo uno schizzo così semplice. Carichiamolo in Arduino. Questo sketch emetterà i messaggi RH e Temperature letti dal sensore DHT11 alla porta seriale del computer ogni 2 secondi.

Schizzo per lavorare con un sensore di temperatura-umidità DHT11
Schizzo per lavorare con un sensore di temperatura-umidità DHT11

Passaggio 5

Ora, utilizzando il diagramma temporale ottenuto dall'analizzatore logico, andiamo a capire come avviene lo scambio di informazioni.

Il sensore di temperatura e umidità DHT11 utilizza un'interfaccia seriale a filo singolo per comunicare con il microcontrollore. Uno scambio di dati dura circa 40 ms e contiene: 1 bit di richiesta dal microcontrollore, 1 bit di risposta del sensore e 40 bit di dati dal sensore. I dati includono: 16 bit di informazioni sull'umidità, 26 bit di informazioni sulla temperatura e 8 bit di controllo.

Diamo uno sguardo più da vicino al diagramma temporale della comunicazione Arduino con il sensore DHT11.

Si può vedere dalla figura che ci sono due tipi di impulsi: brevi e lunghi. Impulsi brevi in questo protocollo di scambio denotano zeri, impulsi lunghi - uno.

Quindi, i primi due impulsi sono la richiesta di Arduino a DHT11 e, di conseguenza, la risposta del sensore. Poi vengono 16 bit di umidità. Inoltre, sono divisi in byte, alto e basso, alto a sinistra. Cioè, nella nostra figura, i dati sull'umidità sono i seguenti:

000100000000000 = 00000000 00010000 = 0x10 = 16% UR.

Dati di temperatura simili a:

0001011100000000 = 00000000 00010111 = 0x17 = 23 gradi Celsius.

Bit di controllo: il checksum è solo la somma di 4 byte di dati ricevuti:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 in binario o 16 + 23 = 39 in decimale.

Consigliato: