Home

Czujniki temperatury DHT 11, DHT 12


Jednym z najpopularniejszych elementów wykorzystywanych w platformie „Arduino i nie tylko są czujniki temperatury. Do najczęściej wykorzystywanych należą „DHT11 oraz „DHT22.
Są bliźniaczo do siebie podobne, różnią się głównie parametrami.

Wybrane dane:

 
DHT 11
DHT 12
Parametr
Temperatura
Wilgotność
Temperatura
Wilgotność

Napięcie zasilania

3 - 5 V

 

3,3 - 6 V

 

Pobór prądu

0,2 mA

0,2 mA

Zakres pomiarowy

0 - 50 °C

20 - 90 %

- 40 do 80 °C

0 - 100 %

Rozdzielczość

1 °C

1 %

0,1 °C

0,10 %

Dokładność

1 °C

4 %

0,5 °C

2,0 %

Czas odpowiedzi

10 s

6 - 30 s

2 s

2 s

 

DHT11

DHT22

  • Do budowy układu testowego użyje znanego już wam układu „WeMos D1 mini z dwóch powodów. Jeden że akurat taki mam w mojej płytce stykowej, drugi że w późniejszym czasie użyję zdobyte doświadczenie do rozbudowy sterownika oświetlenia.
    Czujnik temperatury jaki użyłem to DHT 11.

    Układ połączeń:

    DHT12Jak widać na załączonym schemacie układ połączeń jest banalnie prosty. Rezystor który jest wpięty pomiędzy VCC a pin DATA dobieramy doświadczalnie żeby uzyskać temperaturę zbliżoną do żeczywistej.
     Żeby urozmaicić ten układ w kodzie programu dołożyłem kilka instrukcji które powodują że oprócz tego
    że można odczytać temperaturę na serial monitorze
    to poza tym po zarejestrowaniu się w serwisie http://thingspeak.com możemy na bieżąco
    mieć podgląd bieżącej temperatury z każdego miejsca na ziemi pod warunkiem że będziemy mieli dostęp do sieci internet.
    Oczywiście w miejsca listingu programu które wyróżniłem na czerwono musicie wstawić swoje dane.
    Jak zwykle program dla modułu „WeMos został napisany i wgrany przy pomocy
    programu „Arduino w wersji 1.65.

    Kod programu:


    #include <DHT.h>
    #include <ESP8266WiFi.h>
     
    // replace with your channel's thingspeak API key,
    String apiKey = "5S3AXS1234567890"; // numer apikey który uzyskacie w serwisie Thingspeak
    const char* ssid = "BlaBla"; // nazwa sieci WiFi
    const char* password = "1234567890"; // hasło do waszej sieci WiFi.
     
    const char* server = "api.thingspeak.com";
    #define DHTPIN 0 // what pin we're connected to
     
    DHT dht(DHTPIN, DHT11, 15);
    WiFiClient client;
      
     void setup() {
         
      Serial.begin(115200);
      delay(10);
      dht.begin();
     
      WiFi.begin(ssid, password);
     
      Serial.println();
      Serial.println();
      Serial.print("Connecting to ");
      Serial.println(ssid);
      
      WiFi.begin(ssid, password);
      
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi connected");
     
      }
     
    void loop() {
     
      float h = dht.readHumidity();
      float t = dht.readTemperature();
      if (isnan(h) || isnan(t)) {
        Serial.println("Failed to read from DHT sensor!");
        return;
      }
     
      if (client.connect(server,80)) {  //   "184.106.153.149" or api.thingspeak.com
        String postStr = apiKey;
               postStr +="&field1=";
               postStr += String(t);
               postStr +="&field2=";
               postStr += String(h);
               postStr += "\r\n\r\n";
     
         client.print("POST /update HTTP/1.1\n");
         client.print("Host: api.thingspeak.com\n");
         client.print("Connection: close\n");
         client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
         client.print("Content-Type: application/x-www-form-urlencoded\n");
         client.print("Content-Length: ");
         client.print(postStr.length());
         client.print("\n\n");
         client.print(postStr);
      
         Serial.print("Temperature: ");
         Serial.print(t);
         Serial.print(" degrees Celcius Humidity: ");
         Serial.print(h);
         Serial.println("% send to Thingspeak");   
      }
      client.stop();
      
      Serial.println("Waiting...");   
      // thingspeak needs minimum 15 sec delay between updates
      delay(2000); 
      }
     



    Zrzut ekranu z serwisu  http://thingspeak.com

TS