DHT11: wszystko o czujniku do pomiaru temperatury i wilgotności

DHT11

Pomiar temperatury i wilgotności jest bardzo powszechny w wielu projektach elektronicznych. W przypadku majsterkowania często trzeba mierzyć te parametry, aby sterować niektórymi systemami. Na przykład, aby móc stworzyć system chłodniczy, pielęgnacyjny lub klimatyzacyjny, który uruchamia się, gdy temperatura lub wilgotność osiągnie określoną wartość. Ale żeby to było możliwe, potrzebujesz czujnika takiego jak DHT11.

Na rynku istnieje wiele czujników bardzo różne zakresy temperatur, z obsługiwanymi zakresami temperatur lub różnymi dokładnościami. Przykładem tego jest LM35, jeden z najpopularniejszych i stosowanych w elektronice. Istnieją również inne czujniki wilgotności, które działają na zmianę przewodnictwa, takie jak AD22103KTZ firmy Analog Devices. Ale jeśli chcesz zmierzyć oba parametry, być może urządzenie, które omawiamy dzisiaj w tym artykule, jest znacznie bardziej interesujące ...

Co to jest DHT11?

El DHT11 to prosty czujnik mierzący temperaturę i wilgotność, wszystko w jednym. A) Tak nie będziesz musiał kupować dwóch czujników osobno. Jego cena to około 2 €, więc jest dość tania, chociaż można ją również znaleźć zamontowaną na module (zamontowanym na płytce drukowanej dla ułatwienia użytkowania), jak zwykle w tego typu elementach elektronicznych dla Arduino. W przypadku płytki zawiera rezystor podciągający 5 kiloomów oraz diodę LED, która ostrzega nas o pracy.

DHT11 ma wysoka niezawodność i stabilność dzięki skalibrowanemu sygnałowi cyfrowemu. Ponadto, jeśli spojrzysz na jego arkusz danych, zobaczysz, że ma interesujące funkcje, jak zobaczysz w przyszłych sekcjach.

Podobne produkty

DHT22

Istnieje produkt podobny do DHT11, który może Cię zainteresować. To jest DHT22. Jest to również zintegrowany czujnik temperatury i wilgotności, ale w tym przypadku jego cena jest nieco wyższa, około 4 euro. Dokładność pomiaru temperatury wynosi 5%, podobnie jak w przypadku DHT11, ale w przeciwieństwie do niego, mierzy poza zakresem wilgotności od 20 do 80%. Dlatego możesz być zainteresowany DHT22 do projektów, w których musisz mierzyć wilgotność od 0 do 100%.

La częstotliwość zbierania danych jest to również dwa razy więcej niż w przypadku DHT11, w DHT22 pobierane są 2 próbki na sekundę zamiast 1 próbki na sekundę w przypadku DHT11. Jeśli chodzi o temperaturę, to może mierzyć od -40ºC do + 125ºC z większą precyzją, ponieważ może mierzyć ułamki stopni, a konkretnie może mierzyć wahania plus / minus 0,5ºC.

Pinout, funkcje i arkusz danych

Pinout DHT11

Możesz znaleźć sporo informacji technicznych na temat DHT11 w arkuszach danych. Każdy producent tego urządzenia może podać pewne wartości, które mogą się różnić, dlatego zawsze zalecam przeczytanie pliku PDF konkretnego producenta zakupionego urządzenia. Chociaż większość wartości może wyglądać tak samo, między nimi mogą występować niewielkie różnice. Jego najważniejsze cechy techniczne to:

  • Zasilanie od 3,5 V do 5 V.
  • Pobór prądu 2,5 mA
  • Cyfrowy sygnał wyjściowy
  • Zakres temperatur od 0ºC do 50ºC
  • Dokładność pomiaru temperatury przy 25ºC przy wahaniach około 2ºC
  • Rozdzielczość pomiaru temperatury to 8 bitów, 1ºC
  • Wilgotność może mierzyć od 20% do 90% wilgotności względnej
  • Dokładna wilgotność 5% RH dla temperatur pomiędzy 0-50ºC
  • Rozdzielczość wynosi 1% RH, nie może uchwycić odchyleń poniżej tej
  • Arkusz danych Mouser

Odnośnie danych, nadawane w formacie cyfrowym. Dlatego nie ma potrzeby przechodzenia od analogowego do cyfrowego, jak w innych czujnikach. To skomplikowało kod do napisania w Arduino IDE, ale w tym przypadku nie jest to potrzebne i jest o wiele łatwiejsze. Wprawdzie sam czujnik jest analogowy, ale zawiera układ do wykonywania konwersji i można go podłączyć bezpośrednio do wejścia cyfrowego Arduino.

Sygnał analogowy będący zmianą napięcia z czujnika jest konwertowany na format cyfrowy i przesyłany do mikrokontrolera Arduino. Jest przesyłany w formacie ramka 40-bitowa które odpowiadają informacjom o wilgotności i temperaturze przechwyconym przez DHT11. Dwie pierwsze grupy 8-bitów dotyczą wilgotności, czyli 16 najbardziej znaczących bitów tej ramki. Następnie pozostałe 2 grupy 8-bitowe dla temperatury. Oznacza to, że ma dwa bajty na wilgotność i dwa bajty na temperaturę. Na przykład:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

W tym przypadku 0011 0101 0000 0010 to wartość wilgotności, a 0001 1000 0000 0000 to temperatura. Pierwsza część to część całkowita, a druga część to ułamki dziesiętne. Jeśli chodzi o numer 0011 1001, to znaczy, że ostatnie 8 bitów to parzystość aby uniknąć błędów. W ten sposób możesz sprawdzić, czy wszystko jest w porządku podczas transmisji. Odpowiada sumie poprzednich bitów, dlatego jeśli suma jest równa parzystości, będzie poprawna. W podanym przeze mnie przykładzie nie byłoby, bo jak widać nie odpowiada ... To by wskazywało na awarię.

Gdy już to wiadomo, następną rzeczą na poziomie technicznym DHT11, na którą należy zwrócić uwagę, są piny. Plik kontakty lub pinout tego urządzenia jest proste, ponieważ ma tylko 4 z nich. Jeden z pinów służy do zasilania lub Vcc, drugi do I / O do przesyłania danych, pin NC, który nie łączy się, a GND do połączenia uziemienia.

Integracja z Arduino

Połączenie DHT11 z Arduino

Kiedy już znasz pinout DHT11, a także na płytce Arduino połączenie jest bardzo proste. Pamiętaj, że jeśli wybrałeś moduł DHT11 zintegrowany z płytką drukowaną, pinów będą trzy, ponieważ NC jest usuwane dla ułatwienia. Wszystko, co musisz zrobić, to podłączyć pin uziemienia do jednego z połączeń GND Arduino, jak widać na schemacie na poprzednim obrazku.

Z drugiej strony pin zasilania powinien być podłączony do połączenie 5v z Arduino, w ten sposób czujnik będzie w pełni zasilany GND i Vcc, ale teraz brakuje danych. Aby przesłać dane z czujnika DHT11 na płytkę Arduino, możesz użyć dowolnego z wejść cyfrowych, takich jak 7, które pojawia się na obrazku ... Teraz masz wszystko gotowe do użycia po utworzeniu niezbędnego kodu w Arduino IDE ...

Jeśli czujnik jest daleko w projekcie i zamierzasz użyć kabla dłuższego niż 20 metrów, użyj rezystora podciągającego 5k, dla większych kabli powinien być proporcjonalnie większy. Zwróć uwagę, że jeśli używasz zasilania 3,5 V zamiast 5 V, kabel nie powinien być dłuższy niż 20 cm ze względu na spadki napięcia.

Pamiętaj, że to, co zalecają, to dokonywać pomiarów co 5 sekund, chociaż częstotliwość próbkowania, z jaką może pracować DHT11, jest wyższa, ale jeśli jest wykonywana częściej, może nie być tak dokładna.

Kod w Arduino IDE

Przechodząc bezpośrednio do kodu, powiedz to w formacie IDE Arduino możesz korzystać z wielu istniejących bibliotek z funkcjami, które ułatwią Ci życie z DHT11. Na przykład jednym z nich jest ten zapewnia Adafruit. Pamiętaj, że mamy przewodnik dla początkujących, który zaczyna się od Arduino w formacie PDF, który możesz pobrać bezpłatnie stąd i może ci pomóc.

Po zainstalowaniu odpowiedniej biblioteki możesz komentować Wpisz kod do sterowania czujnikiem temperatury i wilgotności DHT11 dla twojego projektu za pomocą Arduino. Na przykład:

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


Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.