DHT11: vše o senzoru pro měření teploty a vlhkosti

DHT11

Měření teploty a vlhkosti je velmi běžné v mnoha projektech elektronických výrobců. V kutilství je běžné měřit tyto parametry pro ovládání určitých systémů. Například být schopen vytvořit chladicí systém, systém péče o rostliny nebo klimatizační systém, který se spustí, pokud teplota nebo vlhkost dosáhnou určité hodnoty. Aby to však bylo možné, potřebujete senzor, jako je DHT11.

Na trhu existuje mnoho senzorů velmi odlišné teplotní rozsahy, s podporovanými teplotními rozsahy nebo různými přesnostmi. Příkladem toho je LM35, jeden z nejpopulárnějších a nejpoužívanějších v elektronice. Existují také další snímače vlhkosti, které působí změnou vodivosti, například AD22103KTZ od Analog Devices. Ale pokud chcete měřit oba parametry, možná je mnohem zajímavější zařízení, o kterém dnes pojednáváme v tomto článku ...

Co je DHT11?

El DHT11 je jednoduchý senzor, který měří teplotu a vlhkost, vše v jednom. A) Ano nebudete muset kupovat dva senzory odděleně. Jeho cena je asi 2 €, takže je poměrně levná, i když ji také najdete namontovanou na modulu (pro snadnější použití namontovanou na PCB), jak je u tohoto typu elektronických součástek pro Arduino obvyklé. V případě desky obsahuje 5 kiloohmový pull-up rezistor a LED, která nás upozorňuje na provoz.

DHT11 má vysoká spolehlivost a stabilita díky kalibrovanému digitálnímu signálu. Pokud se podíváte na jeho datový list, uvidíte, že má zajímavé funkce, jak uvidíte v dalších částech.

Podobné produkty

DHT22

Mohl by vás zajímat produkt podobný DHT11. to je DHT22. Jedná se také o integrovaný snímač teploty a vlhkosti, ale v tomto případě je jeho cena o něco vyšší, přibližně 4 EUR. Přesnost měření teploty je 5% odchylka také jako DHT11, ale na rozdíl od ní měří mimo rozsah vlhkosti mezi 20 a 80%. Proto by vás mohl DHT22 zajímat pro projekty, kde potřebujete měřit vlhkost od 0 do 100%.

La frekvence sběru dat je to také dvakrát více než u DHT11, v DHT22 se odebírají 2 vzorky za sekundu namísto 1 vzorku za sekundu u DHT11. Pokud jde o teplotu, může měřit od -40 ° C do + 125 ° C s větší přesností, protože dokáže měřit zlomky stupňů, konkrétně dokáže ocenit odchylky plus / mínus 0,5 ° C.

Pinout, funkce a datový list

Pinout DHT11

Můžete najít spoustu technických informací o DHT11 ve vašich datových listech. Každý výrobce tohoto zařízení může uvést některé hodnoty, které se mohou lišit, proto vždy doporučuji přečíst PDF konkrétního výrobce zakoupeného zařízení. I když se vám většina hodnot může zdát stejná, mohou se mezi jednotlivými změnami mírně lišit. Jeho nejdůležitější technické vlastnosti jsou:

  • Napájení 3,5 V až 5 V
  • Odběr proudu 2,5 mA
  • Digitální výstupní signál
  • Teplotní rozsah od 0 ° C do 50 ° C
  • Přesnost měření teploty při 25 ° C s odchylkou asi 2 ° C
  • Rozlišení pro měření teploty je 8 bitů, 1 ° C
  • Vlhkost může měřit od 20% RH do 90% RH
  • Přesná vlhkost 5% RH pro teploty mezi 0-50 ° C
  • Rozlišení je 1% RH, pod tímto rozlišením nelze zachytit variace
  • Datový list společnosti Mouser

Pokud jde o údaje, digitální vysílání. Proto není nutné přecházet z analogového na digitální jako u jiných senzorů. To komplikovalo zápis kódu do Arduino IDE, ale v tomto případě to není nutné a je to mnohem jednodušší. Samotný senzor je sice analogový, ale obsahuje systém provádějící převod a lze jej připojit přímo k digitálnímu vstupu Arduina.

Analogový signál, který je změnou napětí, ze snímače je převeden do digitálního formátu a odeslán do mikrokontroléru Arduino. Přenáší se dovnitř 40bitový rámec které odpovídají informacím o vlhkosti a teplotě zachyceným DHT11. První dvě skupiny 8 bitů jsou pro vlhkost, to znamená nejvýznamnějších 16 bitů tohoto rámce. Pak další 2 zbývající 8bitové skupiny pro teplotu. To znamená, že má dva bajty pro vlhkost a dva bajty pro teplotu. Například:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

V tomto případě je 0011 0101 0000 0010 hodnota vlhkosti a 0001 1000 0000 0000 je teplota. První část je pro celočíselnou část a druhá část pro desetinná místa. Pokud jde o 0011 1001, tj poslední 8bitové jsou parita vyhnout se chybám. Tímto způsobem můžete během přenosu zkontrolovat, zda je vše v pořádku. Odpovídá součtu předchozích bitů, takže pokud se součet rovná paritě, bude to správné. V příkladu, který jsem uvedl, by to nebylo, protože, jak vidíte, to neodpovídá ... To by znamenalo selhání.

Jakmile je to známo, další věcí na technické úrovni DHT11, kterou je třeba si všimnout, jsou kolíky. The kontakty nebo pinout tohoto zařízení je jednoduché, protože má pouze 4 z nich. Jeden z pinů je pro napájení nebo Vcc, druhý pro I / O pro přenos dat, NC pin, který se nepřipojuje, a GND pro zemní spojení.

Integrace s Arduino

Připojení DHT11 k Arduinu

Jakmile znáte pinout DHT11 a také na desce Arduino je připojení velmi jednoduché. Nezapomeňte, že pokud jste si vybrali modul DHT11 integrovaný do desky plošných spojů, budou kolíky tři, protože NC je odstraněno, aby to bylo jednodušší. Jediné, co musíte udělat, je připojit uzemňovací kolík k jednomu z GND připojení Arduina, jak je znázorněno na schématu na předchozím obrázku.

Na druhou stranu by měl být připojen napájecí kolík 5V připojení od Arduina, tímto způsobem bude snímač plně napájen GND a Vcc, ale nyní chybí data. K přenosu dat ze snímače DHT11 na desku Arduino můžete použít kterýkoli z digitálních vstupů, například 7, které se objeví na obrázku ... Nyní máte vše připraveno k použití, jakmile vytvoříte potřebný kód v Arduino IDE ...

Pokud je senzor ve vašem projektu daleko a hodláte použít kabel delší než 20 metrů, použijte 5k pull-up rezistor, u větších kabelů by to mělo být úměrně větší. Pamatujte, že pokud místo 3,5V použijete napájení 5 V, pak by kabel neměl být kvůli poklesům napětí delší než 20 cm.

Pamatujte, že to, co doporučují, je provádět měření každých 5 sekund, vzorkovací frekvence, při které může DHT11 pracovat, je sice vyšší, ale pokud se provádí častěji, nemusí být tak přesná.

Kód v Arduino IDE

Jděte rovnou ke kódu, řekněte to v Arduino ide můžete použít řadu existujících knihoven s funkcemi, které vám s DHT11 usnadní život. Například jeden z nich je ten, který poskytuje Adafruit. Nezapomeňte, že máme průvodce pro začátečníky, který začíná Arduino v PDF, které můžete stáhněte si zdarma zde a to vám může pomoci.

Jakmile budete mít odpovídající knihovnu nainstalovanou, můžete k ní přidávat komentáře zadejte kód k ovládání snímače teploty a vlhkosti DHT11 pro váš projekt pomocí Arduina. Například:

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


Buďte první komentář

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.