sobota, 21 kwietnia 2018

Lazy Robot V1 - Część 2/8 - Czujnik temperatury i wilgotności DHT-11


Posiada 16-bitową rozdzielczość, zalecany zakres temperatur od 10°C do 40°C oraz wigotność poniżej 60% RH. Wymaga napięcia zasilania 3,5~5,5 V. Czujnik posiada cztery wyprowadzenia, lecz wykorzystujemy tylko trzy, końcówka NC zostaje niepodłączona. W celach testowych do zasilania czujnika wystarczy zasilanie z portu USB, choć można korzystać także z baterii. Do podłączenia czujnika wymagany jest rezystor 10 kΩ (kOhm).
Zdjęcia czujnika:





Podłączenie do modułu:

























Kod źródłowy:
/*                      Download from Lazy Admin Blog                        */
/* Blog URL:     https://lazyadminblog.blogspot.com                          */
/* Mail:         lazychannelandblog@gmail.com                                */
/* YouTube:      https://www.youtube.com/channel/UC8DB_NVekpEIuG-SAvpXOWQ    */
/* GitHub:       https://github.com/LazyAdminBlog                            */

#include "DHT.h" /*Include (add to sketch) DHT.h library for DHT sensor*/

#define DTH_SENSOR_PIN 9  /*Set witch pin connect to DHT11 sensor*/
#define DHTTYPE DHT11     /*Set sensor type (model): DHT11*/

DHT dht(DTH_SENSOR_PIN, DHTTYPE);

void setup()
{
  Serial.begin(9600);                /*Initial serio port (COM) for arduino.*/
  Serial.println("DHT11 test!");     /*Write initial success test/*/
  dht.begin();                       /*Initial dht sensor.*/
}

void loop()
{
  delay(2000); /*Wait a few seconds between measurements.*/
  
  float h = dht.readHumidity();         /*Read humidity from sensor*/
  float t = dht.readTemperature();      /*Read temperature as Celsius (the default)*/
  float f = dht.readTemperature(true);  /*Read temperature as Fahrenheit (isFahrenheit = true)*/
  
  /* Check if any reads failed and exit early (to try again).*/
  if (isnan(h) || isnan(t) || isnan(f))
  {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  
  float hif = dht.computeHeatIndex(f, h);         /* Compute heat index in Fahrenheit (the default)*/
  float hic = dht.computeHeatIndex(t, h, false);  /* Compute heat index in Celsius (isFahreheit = false) */

  /*Start show read value on serial port.*/
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" °C ");
  Serial.print(f);
  Serial.print(" °F\t");
  Serial.print("Heat index: ");
  Serial.print(hic);
  Serial.print(" °C ");
  Serial.print(hif);
  Serial.println(" °F");
  /*End of show data.*/
}


Na porcie szeregowym arduino otrzymujemy odczyt temperatury i wilgotności jeżeli wszystko zostało podłączone poprawnie.
(aby uruchomić naciśnij CTRL + SHIFT + M w środowisku arduino)
















Kod na GitHub'ie:
https://github.com/LazyAdminBlog/LazyRobotV1/tree/master/Part%202%20-%20DHT-11%20temperature%20and%20humidity%20sensor

Dodatkowo potrzebna jest biblioteka AdaFruit. Znajduje się ona na moim GitHubie lecz kod źródłowy podchodzi z:
https://github.com/adafruit/DHT-sensor-library
Specyfikacja techniczna (DataSheet):
https://akizukidenshi.com/download/ds/aosong/DHT11.pdf

Brak komentarzy:

Prześlij komentarz