Jak Podłączyć Czujnik Temperatury I Wilgotności DHT11 Do Arduino?

Spisu treści:

Jak Podłączyć Czujnik Temperatury I Wilgotności DHT11 Do Arduino?
Jak Podłączyć Czujnik Temperatury I Wilgotności DHT11 Do Arduino?

Wideo: Jak Podłączyć Czujnik Temperatury I Wilgotności DHT11 Do Arduino?

Wideo: Jak Podłączyć Czujnik Temperatury I Wilgotności DHT11 Do Arduino?
Wideo: Kurs Arduino #4: DHT11/DHT22 - Czujnik temperatury i wilgotności + Stacja pogodowa 2024, Może
Anonim

Czujnik temperatury i wilgotności DHT17 to popularny i tani czujnik, który może pracować w dość szerokim zakresie temperatur i wilgotności względnej. Zobaczmy, jak podłączyć go do Arduino i jak odczytać z niego dane.

Czujnik temperatury i wilgotności DHT11
Czujnik temperatury i wilgotności DHT11

Niezbędny

  • - Arduino;
  • - Czujnik temperatury i wilgotności DHT17.

Instrukcje

Krok 1

Tak więc czujnik DHT11 ma następujące cechy:

- zakres mierzonej wilgotności względnej - 20..90% z błędem do 5%, - zakres mierzonych temperatur - 0..50 stopni Celsjusza z błędem do 2 stopni;

- czas reakcji na zmiany wilgotności - do 15 sekund, temperatury - do 30 sekund;

- minimalny czas odpytywania to 1 sekunda.

Jak widać, czujnik DHT11 nie jest zbyt dokładny, a zakres temperatur nie obejmuje wartości ujemnych, co raczej nie nadaje się do pomiarów na zewnątrz w zimnych porach roku w naszym klimacie. Jednak jego niski koszt, mały rozmiar i łatwość użytkowania częściowo niwelują te wady.

Rysunek przedstawia wygląd czujnika i jego wymiary w milimetrach.

Wygląd i wymiary czujnika DHT11
Wygląd i wymiary czujnika DHT11

Krok 2

Rozważ schemat podłączenia czujnika temperatury i wilgotności DHT11 do mikrokontrolera, w szczególności do Arduino. Na zdjęciu:

- MCU - mikrokontroler (np. Arduino lub podobny) lub komputer jednopłytkowy (Raspberry Pi lub podobny);

- DHT11 - czujnik temperatury i wilgotności;

- DATA - magistrala danych; jeżeli długość przewodu łączącego czujnik z mikrokontrolerem nie przekracza 20 metrów, to zaleca się podciągnąć tę magistralę do zasilania rezystorem 5,1 kOhm; jeśli więcej niż 20 metrów, to inna odpowiednia wartość (mniejsza).

- VDD - zasilanie czujnika; dopuszczalne napięcia od ~ 3,0 do ~ 5,5 V DC; w przypadku zasilania ~3,3 V zaleca się stosowanie przewodu zasilającego nie dłuższego niż 20 cm.

Jeden z wyprowadzeń czujnika - trzeci - nie jest do niczego podłączony.

Czujnik DHT11 jest często sprzedawany jako kompletny zestaw z niezbędnym orurowaniem - rezystor podciągający i kondensator filtrujący.

Schemat podłączenia czujnika DHT11 do mikrokontrolera
Schemat podłączenia czujnika DHT11 do mikrokontrolera

Krok 3

Zbierzmy rozważany schemat. Podłączę też do układu analizator stanów logicznych, abym mógł przestudiować schemat czasowy komunikacji z czujnikiem.

Czujnik DHT11 i Arduino
Czujnik DHT11 i Arduino

Krok 4

Chodźmy prostą drogą: pobierz bibliotekę dla czujnika DHT11 (link w sekcji „Źródła”), zainstaluj ją w standardowy sposób (rozpakuj do katalogu / library\ środowiska programistycznego Arduino).

Napiszmy taki prosty szkic. Załadujmy go do Arduino. Ten szkic będzie wysyłał komunikaty dotyczące wilgotności względnej i temperatury odczytywane z czujnika DHT11 do portu szeregowego komputera co 2 sekundy.

Szkic do pracy z czujnikiem temperatury i wilgotności DHT11
Szkic do pracy z czujnikiem temperatury i wilgotności DHT11

Krok 5

Teraz, korzystając z wykresu czasowego uzyskanego z analizatora stanów logicznych, zastanówmy się, jak przebiega wymiana informacji.

Czujnik temperatury i wilgotności DHT11 wykorzystuje jednoprzewodowy interfejs szeregowy do komunikacji z mikrokontrolerem. Jedna wymiana danych trwa około 40 ms i zawiera: 1 bit żądania z mikrokontrolera, 1 bit odpowiedzi czujnika i 40 bitów danych z czujnika. Dane obejmują: 16 bitów informacji o wilgotności, 26 bitów informacji o temperaturze i 8 bitów kontrolnych.

Przyjrzyjmy się bliżej schematowi taktowania komunikacji Arduino z czujnikiem DHT11.

Z rysunku widać, że istnieją dwa rodzaje impulsów: krótkie i długie. Krótkie impulsy w tym protokole wymiany oznaczają zera, długie impulsy - jedynki.

Tak więc pierwsze dwa impulsy to żądanie Arduino do DHT11 i odpowiednio odpowiedź czujnika. Następnie pojawia się 16 bitów wilgotności. Ponadto są podzielone na bajty, wysokie i niskie, wysokie po lewej stronie. Oznacza to, że na naszym rysunku dane dotyczące wilgotności są następujące:

0001000000000000 = 00000000 00010000 = 0x10 = 16% wilgotności względnej.

Dane temperaturowe podobne do:

0001011100000000 = 00000000 00010111 = 0x17 = 23 stopnie Celsjusza.

Bity kontrolne - suma kontrolna to tylko suma 4 odebranych bajtów danych:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 binarnie lub 16 + 23 = 39 dziesiętnie.

Zalecana: