El sensor de temperatura i humitat DHT17 és un sensor popular i barat que es pot utilitzar en una gamma de temperatures i humitat relativa bastant àmplia. Vegem com connectar-lo a l'Arduino i com llegir-ne les dades.
Necessari
- - Arduino;
- - Sensor de temperatura i humitat DHT17.
Instruccions
Pas 1
Per tant, el sensor DHT11 té les característiques següents:
- rang d'humitat relativa mesurada: 20,90% amb un error de fins al 5%, - rang de temperatures mesurades - 0..50 graus centígrads amb un error de fins a 2 graus;
- temps de resposta als canvis d'humitat: fins a 15 segons, temperatura: fins a 30 segons;
- el període mínim de votació és d'1 segon.
Com podeu veure, el sensor DHT11 no és molt precís i el rang de temperatura no cobreix els valors negatius, cosa que difícilment és adequada per a mesures a l’aire lliure durant la temporada de fred al nostre clima. No obstant això, el seu baix cost, la seva petita mida i la facilitat d'ús compensen parcialment aquests desavantatges.
La figura mostra l’aspecte del sensor i les seves dimensions en mil·límetres.
Pas 2
Penseu en el diagrama de connexió del sensor de temperatura i humitat DHT11 al microcontrolador, en particular a l'Arduino. A la imatge:
- MCU: microcontrolador (per exemple, Arduino o similar) o ordinador de placa única (Raspberry Pi o similar);
- DHT11: sensor de temperatura i humitat;
- DATA - bus de dades; si la longitud del cable de connexió des del sensor fins al microcontrolador no supera els 20 metres, es recomana tirar aquest bus cap a la font d'alimentació amb una resistència de 5, 1 kOhm; si supera els 20 metres, un altre valor adequat (més petit).
- VDD: font d'alimentació del sensor; tensions admissibles de ~ 3,0 a ~ 5,5 volts CC; si s'utilitza una font d'alimentació ~ 3,3 V, és recomanable utilitzar un cable d'alimentació que no superi els 20 cm.
Un dels cables del sensor, el tercer, no està connectat a res.
El sensor DHT11 es ven sovint com un conjunt complet amb la canonada necessària: resistència de tracció i condensador de filtre.
Pas 3
Reunim l'esquema considerat. També connectaré un analitzador lògic al circuit perquè pugui estudiar el diagrama de temps de la comunicació amb el sensor.
Pas 4
Anem pel camí senzill: descarregueu la biblioteca del sensor DHT11 (enllaç a la secció "Fonts"), instal·leu-la de manera estàndard (desempaqueteu-la al directori / libraries / de l'entorn de desenvolupament Arduino).
Escrivim un esbós tan senzill. Carregem-lo a Arduino. Aquest esbós enviarà els missatges RH i Temperature llegits des del sensor DHT11 al port sèrie de l'ordinador cada 2 segons.
Pas 5
Ara, utilitzant el diagrama de temps obtingut de l’analitzador lògic, esbrinem com es realitza l’intercanvi d’informació.
El sensor de temperatura i humitat DHT11 utilitza una interfície sèrie d’un sol fil per comunicar-se amb el microcontrolador. Un intercanvi de dades dura aproximadament 40 ms i conté: 1 bit de sol·licitud del microcontrolador, 1 bit de resposta del sensor i 40 bits de dades del sensor. Les dades inclouen: 16 bits d'informació d'humitat, 26 bits d'informació de temperatura i 8 bits de comprovació.
Vegem de prop el diagrama de temps de la comunicació Arduino amb el sensor DHT11.
Es pot observar per la figura que hi ha dos tipus d’impulsos: curts i llargs. Els polsos curts d’aquest protocol d’intercanvi denoten zeros, els polsos llargs - uns.
Per tant, els dos primers impulsos són la sol·licitud d’Arduino a DHT11 i, en conseqüència, la resposta del sensor. A continuació, arriben 16 bits d'humitat. A més, es divideixen en bytes, alt i baix, alt a l'esquerra. És a dir, a la nostra figura, les dades d’humitat són les següents:
0001000000000000 = 00000000 00010000 = 0x10 = 16% HR.
Dades de temperatura similars a:
0001011100000000 = 00000000 00010111 = 0x17 = 23 graus centígrads.
Bits de comprovació: la suma de comprovació és només la suma de 4 bytes de dades rebuts:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 en binari o 16 + 23 = 39 en decimal.