Merjenje temperature in vlage je zelo pogosto v številnih projektih elektronskih izdelovalcev. V DIY je običajno, da je treba te parametre meriti za nadzor nekaterih sistemov. Na primer, da lahko ustvarite hladilni sistem, sistem za nego rastlin ali klimatsko napravo, ki se zažene, če temperatura ali vlažnost dosežeta določeno vrednost. Da pa je to mogoče, potrebujete senzor, kot je DHT11.
Na trgu senzorjev je veliko zelo različna temperaturna območja, s podprtimi temperaturnimi območji ali različnimi natančnostmi. Primer tega je LM35, eden najbolj priljubljenih in uporabljenih v elektroniki. Obstajajo tudi drugi senzorji vlažnosti, ki delujejo s spreminjanjem prevodnosti, kot je AD22103KTZ podjetja Analog Devices. Če pa želite izmeriti oba parametra, je morda naprava, o kateri danes razpravljamo v tem članku, veliko bolj zanimiva ...
Kaj je DHT11?
El DHT11 je preprost senzor, ki meri temperaturo in vlago, vse v enem. A) Da vam ne bo treba kupiti dveh senzorjev ločeno. Njegova cena je približno 2 evra, zato je precej poceni, čeprav ga lahko najdete tudi nameščenega na modulu (nameščenega na PCB zaradi lažje uporabe), kot je to običajno pri tovrstnih elektronskih komponentah za Arduino. V primeru plošče vključuje 5 kilo ohmski vlečni upor in LED, ki nas opozori na delovanje.
DHT11 ima visoka zanesljivost in stabilnost zaradi kalibriranega digitalnega signala. Če pogledate tudi njegov podatkovni list, boste videli, da ima zanimive lastnosti, kot boste videli v prihodnjih oddelkih.
Podobni izdelki
Obstaja izdelek, podoben DHT11, ki bi vas morda zanimal. je DHT22. Je tudi integriran senzor temperature in vlage, vendar je v tem primeru njegova cena nekoliko višja, približno 4 €. Natančnost merjenja temperature je 5-odstotna variacija, tako kot DHT11, vendar za razliko od nje meri zunaj območja vlažnosti med 20 in 80%. Zato vas bo DHT22 morda zanimal za projekte, pri katerih morate izmeriti vlažnost od 0 do 100%.
La pogostost zbiranja podatkov prav tako je dvakrat večji od DHT11, pri DHT22 se vzameta 2 vzorca na sekundo namesto 1 vzorca na sekundo DHT11. Kar zadeva temperaturo, lahko z večjo natančnostjo meri od -40 ° C do + 125 ° C, saj lahko meri delce stopinj, natančneje zna upoštevati razlike v plus / minus 0,5 ° C.
Izrez, funkcije in podatkovni list
Lahko najdete kar nekaj tehničnih informacij o DHT11 v vaših obrazcih. Vsak proizvajalec te naprave lahko navede nekatere vrednosti, ki se lahko razlikujejo, zato vedno priporočam, da preberete PDF določenega proizvajalca naprave, ki ste jo kupili. Čeprav se vam večina vrednosti morda zdi enaka, lahko pride do rahlega odstopanja od ene do druge. Njegove najpomembnejše tehnične značilnosti so:
- 3,5v do 5v napajalnik
- Trenutna poraba 2,5 mA
- Digitalni izhodni signal
- Temperaturno območje od 0 ° C do 50 ° C
- Natančnost merjenja temperature pri 25 ° C približno 2 ° C
- Ločljivost za merjenje temperature je 8-bitna, 1 ° C
- Vlažnost lahko meri od 20% RH do 90% RH
- Natančno za vlažnost 5% RH pri temperaturah med 0-50 ° C
- Ločljivost je 1% relativne vlažnosti, zato ne more sprejeti različic pod tem
- Mouserjev podatkovni list
Glede podatkov oddaja v digitalni obliki. Zato ni treba preiti z analognega na digitalni kot pri drugih senzorjih. To je zapletlo kodo za pisanje v Arduino IDE, vendar v tem primeru ni potrebna in je veliko lažje. Čeprav je sam senzor analogen, vendar vključuje sistem za izvedbo pretvorbe in ga je mogoče neposredno povezati z digitalnim vhodom Arduina.
Analogni signal, ki je sprememba napetosti, s senzorja se pretvori v digitalni format, ki ga pošlje mikrokrmilniku Arduino. Prenese se v 40-bitni okvir ki ustrezajo podatkom o vlažnosti in temperaturi, ki jih zajema DHT11. Prvi dve skupini 8-bitov sta za vlažnost, to je najpomembnejših 16 bitov tega okvirja. Nato preostali 2 preostali 8-bitni skupini za temperaturo. To pomeni, da ima dva bajta za vlažnost in dva bajta za temperaturo. Na primer:
0011 0101 0000 0010 0001 1000 0000 0000 0011 1001
V tem primeru je 0011 0101 0000 0010 vrednost vlažnosti in 0001 1000 0000 0000 temperatura. Prvi del je za celoštevilski del, drugi del pa za decimalna števila. Kar zadeva 0011 1001, to je zadnji 8-bitni so paritetni da se izognemo napakam. Tako lahko preverite, ali je med oddajami vse pravilno. Ustreza vsoti prejšnjih bitov, zato bo, če je vsota enaka pariteti, pravilna. V primeru, ki sem ga dal, ne bi bilo, ker, kot vidite, ne ustreza ... To bi pomenilo napako.
Ko je to znano, je naslednja stvar na tehnični ravni DHT11, ki jo je treba opozoriti, zatiči. The stiki ali pinout te naprave je preprost, saj jih ima le 4. Eden od zatičev je za napajanje ali Vcc, drugi za I / O za prenos podatkov, NC zatič, ki se ne poveže, in GND za ozemljitveno povezavo.
Integracija z Arduinom
Ko poznate pinout DHT11 in tudi plošča Arduino je povezava zelo preprosta. Ne pozabite, da če ste izbrali modul DHT11, integriran v tiskano vezje, bodo zatiči trije, saj je NC odstranjen za lažje delo. Edino, kar morate storiti, je, da ozemljitveni zatič povežete z eno od povezav GND Arduino, kot je prikazano na diagramu na prejšnji sliki.
Po drugi strani pa je treba priključiti napajalni zatič 5v povezava iz Arduina, na ta način bo senzor v celoti napajan z GND in Vcc, zdaj pa podatki manjkajo. Za prenos podatkov s senzorja DHT11 na ploščo Arduino lahko uporabite katerega koli digitalnega vhoda, na primer 7, ki se prikaže na sliki ... Zdaj imate vse pripravljeno za uporabo, ko ustvarite potrebno kodo v Arduino IDE ...
Če je senzor v vašem projektu daleč in boste uporabili kabel, daljši od 20 metrov, potem uporabite 5k vlečni upor, za večje kable pa mora biti sorazmerno večji. Upoštevajte, da če namesto 3,5v uporabljate moč 5 v, potem kabel zaradi padcev napetosti ne sme biti daljši od 20 cm.
Ne pozabite, da je tisto, kar priporočajo merite vsakih 5 sekund, čeprav je frekvenca vzorčenja, pri kateri lahko deluje DHT11, večja, vendar če je pogostejša, morda ne bo tako natančna.
Koda v Arduino IDE
Če greste naravnost k kodi, recite to v Arduino IDE lahko uporabite številne obstoječe knjižnice s funkcijami, ki vam bodo olajšale življenje z DHT11. Na primer, eden izmed njih je tisti, ki zagotavlja Adafruit. Ne pozabite, da imamo priročnik za začetnike, ki se začne z Arduino v PDF-ju, ki ga lahko Prenesite brezplačno od tukaj in vam lahko pomaga.
Ko namestite ustrezno knjižnico, lahko komentirate vnesite kodo za nadzor senzorja temperature in vlažnosti DHT11 za vaš projekt z Arduino. Na primer:
#include "DHT.h" const int DHTPin = 7; DHT dht(DHTPin, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("Midiendo..."); dht.begin(); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("Fallo en la lectura del sensor DHT11"); return; } Serial.print("Humedad relativa: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperatura: "); Serial.print(t); Serial.print(" ºC "); }