Bincika Lambar

Koyarwar ESP32 28/55 - Na'urar Zazzabi DHT11 tare da LCD | Kayan Koyon ESP32 IoT na SunFounder

Koyarwar ESP32 28/55 - Na'urar Zazzabi DHT11 tare da LCD | Kayan Koyon ESP32 IoT na SunFounder

A cikin wannan koyawa, za mu bincika yadda ake haɗa na'urar DHT11 mai auna zafin jiki da danshi da microcontroller na ESP32. Ta amfani da wannan saitin, za mu auna zafin yanayi da danshi, muna nuna sakamakon a duka serial monitor da kuma allon LCD. Bugu da ƙari, za mu aiwatar da buzzer wanda ke kunna lokacin da zafin ya wuce wani matsayi.

ESP32-28_dht_temperature-sensor-main

Wannan aikin ba kawai yana nuna amfani da na'urar DHT11 ba, har ma yana nuna iyawar ESP32, wanda ya haɗa da Wi-Fi da Bluetooth na ciki. A ƙarshen wannan koyawa, za ku sami saitin aiki wanda ke ci gaba da lura da yanayin muhalli kuma yana ba da amsa na ainihin lokaci.

Don jagorar gani, duba bidiyon da ke tare da wannan koyawa (a cikin bidiyo a 00:00). Mu shiga!

Kayan Aikin da Aka Yi Bayani

Babban kayan da aka yi amfani da su a wannan aikin sune microcontroller na ESP32, na'urar DHT11, da allon LCD. ESP32 zai zama kwakwalwar aikin, yana sarrafa bayanai daga na'urar DHT11 kuma yana sarrafa fitarwar LCD.

Na'urar DHT11 tana auna danshi da zafin jiki, tana ba da karatu ta hanyar layin bayanai guda ɗaya. Yana buƙatar wutar lantarki na 3.3V zuwa 5.5V kuma yana da ƙarancin amfani da wutar lantarki, yana sa ya dace da aikace-aikacen da ke amfani da baturi. LCD zai nuna ƙimar zafin jiki da danshi a ainihin lokaci.

Cikakkun Bayanai na Datasheet

Mai ƙera GROVE
Lambar sashi DHT11
Wutar Logic/IO 3.3 – 5.5 V
Wutar samarwa 3.3 V
Fitarwar wutar (kowane tashar) 0.5 mA typ.
Kololuwar wutar (kowane tashar) 2.5 mA max.
Jagorar mitar PWM N/A
Matsakaicin ƙofofin logic 0.3 VCC (low), 0.7 VCC (high)
Ragewar wutar / RDS(on) / saturation Ba ya aiki
Iyakokin zafin jiki 0°C zuwa 60°C
Kunshin DIP-4
Bayanan kula / bambance-bambance Ƙaddara: 1°C / 1% RH

 

  • Yi amfani da resistor mai ɗagawa (5 kΩ da aka ba da shawarar) akan layin bayanai.
  • Ka gajarta wayoyin na'urar (ƙasa da 20 m) don tabbatar da ingantaccen karatu.
  • Ka ba da wutar DHT11 da 3.3V don ingantaccen aiki.
  • Lokacin samfur bai kamata ya zama ƙasa da daƙiƙa 1 ba.
  • Duba haɗin wayoyi idan karatu ya gaza (misali, ba a haɗa ba, fil ɗin da bai dace ba).

Umarnin Haɗin Waya

ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer

Don haɗa na'urar DHT11 zuwa ESP32, fara da haɗa fil ɗin VCC na DHT11 (fil ɗin mafi hagu) zuwa fitarwar 3.3V na ESP32. Na gaba, haɗa fil ɗin ƙasa (fil na huɗu) zuwa fil ɗin ƙasa (GND) akan ESP32. Fil ɗin bayanai (fil na biyu) ya kamata a haɗa shi zuwa GPIO pin 14 akan ESP32.

Don LCD, haɗa fil ɗin VCC zuwa fitarwar 5V na ESP32. Fil ɗin ƙasa ya kamata a haɗa shi zuwa fil ɗin ƙasa akan ESP32. Fil ɗin SDA da SCL na LCD ya kamata a haɗa su zuwa GPIO pins 21 da 22, bi da bi. Tabbatar cewa duk haɗin suna da aminci don guje wa kowane matsala yayin karanta bayanai.

Misalan Code & Jagorar Tafiya

A cikin ɓangaren farko na code, muna fara na'urar DHT kuma muna saita lambar fil ɗin tare da #define DHTPIN 14. Wannan mai ganowa yana ba mu damar yin nuni cikin sauƙi ga fil ɗin da aka haɗa zuwa layin bayanai na DHT11 a cikin dukan code.

#include "DHT.h"

#define DHTPIN 14  // Saita fil ɗin da aka haɗa zuwa fil ɗin bayanai na DHT11
#define DHTTYPE DHT11 // DHT 11 
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  dht.begin();
}

A cikin aikin setup(), muna fara sadarwar serial don gyara kurakurai kuma muna fara na'urar DHT. Babban madauki ya haɗa da jinkiri na daƙiƙa 2 don tabbatar da cewa ba mu mamaye na'urar da buƙatu ba.

Na gaba, muna karanta ƙimar danshi da zafin jiki ta amfani da float humidity = dht.readHumidity(); da float temperature = dht.readTemperature();. Waɗannan masu ganowa suna adana ƙimar da aka auna don amfani daga baya.

void loop() {
  delay(2000);
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
}

A ƙarshe, muna duba duk wani kurakurai na karatu kuma muna buga ƙimar zuwa serial monitor ta amfani da Serial.print(). Wannan yana ba mu damar lura da karatun a ainihin lokaci.

if (isnan(humidity) || isnan(temperature)) {
  Serial.println("An kasa karantawa daga na'urar DHT!");
  return;
}
Serial.print("Danshi: "); 
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Zafin jiki: "); 
Serial.print(temperature);
Serial.println(" *C");

A cikin code na LCD, muna fara LCD kuma muna nuna zafin jiki da danshi akan allo ta amfani da aikin lcd.print(). Wannan yana ba da wakilcin gani na bayanan da na'urar DHT11 ta tattara.

Nuni / Abin da Za Ka Yi Tsammani

Da zarar an haɗa komai daidai kuma an ɗora code ɗin zuwa ESP32, ya kamata ku ga karatun zafin jiki da danshi da aka nuna akan serial monitor da allon LCD. Idan zafin ya wuce 30°C, buzzer zai kunna, yana ba da faɗakarwa mai ji.

  • A kula da juyar da haɗin kai kuma ka tabbatar da ba a fallasa na'urar ga matsanancin yanayi ba, domin yana iya shafar karatun. Kana iya buƙatar daidaita ƙofar don buzzer gwargwadon bu�katunka (a cikin bidiyo a 15:30).
  • Lokutan Bidiyo

    • 00:00 Fara
    • 1:57 Gabatarwa ga DHT11
    • 6:18 Haɗa DHT11 da ESP32
    • 7:67 Bayanin lambar Arduino
    • 11:49 Zaɓin allo na ESP32 da tashar COM a cikin Arduino IDE
    • 13:30 Nunin aikin
    • 15:32 Samun Fahrenheit
    • 16:04 Nuna zafin jiki akan LCD ta amfani da ESP32
    • 17:20 Lambar DHT11 da LCD tare da ESP32
    • 19:49 Nunin DHT11 LCD tare da ESP32
    • 21:33 Ɗaukar mataki akan ƙimar zafin jiki

    Hotuna

    ESP32-28_dht_temperature-sensor-library
    ESP32-28_dht_temperature-sensor-library
    ESP32-28_dht_temperature-sensor-schematic
    ESP32-28_dht_temperature-sensor-schematic
    ESP32-28_dht_temperature-sensor-wiring
    ESP32-28_dht_temperature-sensor-wiring
    DHT11_with_buzzer
    DHT11_with_buzzer
    ESP32-28_dht_temperature-sensor-main
    ESP32-28_dht_temperature-sensor-main
    828-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor
    Harshe: C++
    #include "DHT.h"
    
    #define DHTPIN 14  // Set the pin connected to the DHT11 data pin
    #define DHTTYPE DHT11 // DHT 11 
    
    DHT dht(DHTPIN, DHTTYPE);
    
    void setup() {
      Serial.begin(115200);
      Serial.println("DHT11 test!");
      dht.begin();
    }
    
    void loop() {
      // Wait a few seconds between measurements.
      delay(2000);
    
      // Reading temperature or humidity takes about 250 milliseconds!
      // Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
      float humidity = dht.readHumidity();
      // Read temperature as Celsius (the default)
      float temperature = dht.readTemperature();
    
      // Check if any reads failed and exit early (to try again).
      if (isnan(humidity) || isnan(temperature)) {
        Serial.println("Failed to read from DHT sensor!");
        return;
      }
      // Print the humidity and temperature
      Serial.print("Humidity: "); 
      Serial.print(humidity);
      Serial.print(" %\t");
      Serial.print("Temperature: "); 
      Serial.print(temperature);
      Serial.println(" *C");
    }
    
    829-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor with LCD
    Harshe: C++
    /*
    This is Arduino code to measure temperature and humidity using DHT11/DHT22 and displays it on LCD screen
    written by Ahmad Shamshiri for SunFounder's ESP32 IoT learning kit
    watch full video https://youtu.be/qRUFZX4eDJg
    Full code, wiring diagram and other resources for this tutorial is at https://robojax.com/RJT711
    */
    #include "DHT.h"
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    
    #define DHTPIN 14      // Set the pin connected to the DHT11 data pin
    #define DHTTYPE DHT11  // DHT 11
    
    DHT dht(DHTPIN, DHTTYPE);
    
    // Initialize the LCD object with I2C address 0x27, 16 columns, and 2 rows
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    
    void setup() {
    
      // Begin serial communication at 115200 baud
      Serial.begin(115200);
    
      // Initialize the dht11
      dht.begin();
    
      // Initialize the LCD
      lcd.init();
      lcd.backlight();
    
      // Clear the LCD
      lcd.clear();
    }
    
    void loop() {
      // Wait a few seconds between measurements.
      delay(2000);
    
      // Reading temperature or humidity takes about 250 milliseconds!
      // Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
      float humidity = dht.readHumidity();
      // Read temperature as Celsius (the default)
      float temperature = dht.readTemperature();
    
      // Check if any reads failed and exit early (to try again).
      if (isnan(humidity) || isnan(temperature)) {
        Serial.println("Failed to read from DHT sensor!");
        return;
      }
    
      // Display temperature and humidity on the LCD
      lcd.setCursor(0, 0);
      lcd.print("Temp: ");
      lcd.print(temperature);
      lcd.write(223);  // Degree symbol
      lcd.print("C");
    
      lcd.setCursor(0, 1);
      lcd.print("Humi: ");
      lcd.print(humidity);
      lcd.print("%");
    }
    

    Abin da zaka iya bukata

    Albarkatun da kuma shafukan da za a duba

    Fayiloli📁

    Fayil Fritzing

    Jagoran Mai Amfani