Search Code

Tutorial ESP32 28/55 - Sensor Heerkul DHT11 oo leh LCD | Qalabka Barashada ESP32 IoT ee SunFounder

Tutorial ESP32 28/55 - Sensor Heerkul DHT11 oo leh LCD | Qalabka Barashada ESP32 IoT ee SunFounder

Cashigarkani, waxaan ku saabsan doonaa sida loo isku xiro dareemaha heerkulka iyo qoyaanka DHT11 ee kontoroolka ESP32. Iyadoo la adeegsanayo qaabkan, waxaan cabbiri doonnaa heerkulka iyo qoyaanka hawada, waxaanna ku muujin doonnaa natiijooyinka shaashadda serial-ka iyo shaashadda LCD-ga labadaba. Intaa waxaa dheer, waxaan hirgelin doonnaa qalabka buunka (buzzer) kaas oo shaqeeya marka heerkulku ka sarreeyo heer go'an.

ESP32-28_dht_temperature-sensor-main

Mashruucani ma muujinayo oo kaliya isticmaalka dareemaha DHT11, laakiin wuxuu kaloo muujinayaa kartida badan ee ESP32, kaas oo ay ku jiraan awoodaha Wi-Fi iyo Bluetooth-ka ee ku dhex jira. Markaad dhammaystirto cashar-kan, waxaad yeelan doontaa qaab shaqeeya oo si joogto ah ula socda xaaladaha deegaanka oo bixiya jawaab celin waqti-ku-ool ah.

Haddii aad rabto hagitaan muuqaal ah, fiiri fiidiyowga la socda cashar-kan (fiidiyowga 00:00). Aan dhex galno!

Qalabka La Sharaxay

Qaybaha ugu muhiimsan ee loo adeegsaday mashruucan waa kontoroolka ESP32, dareemaha DHT11, iyo shaashadda LCD-ga. ESP32 wuxuu u adeegi doonaa sida maskaxda hawlgalka, isagoo farsameynaya xogta ka timaadda dareemaha DHT11 oo xakameynaya wax soo saarka LCD-ga.

Dareemaha DHT11 wuxuu cabbiraa qoyaanka iyo heerkulka, isagoo bixinaya akhrin hal xariiq oo xog ah. Wuxuu u baahan yahay koronto 3.3V ilaa 5.5V wuxuuna leeyahay isticmaalka hadda hooseeya, taasoo ka dhigaysa mid ku habboon codsiyada ku shaqeeya baytariyada. LCD-ga wuxuu ku muujin doonaa qiimaha heerkulka iyo qoyaanka waqti-gaab ah.

Faahfaahinta Xaashida Xogta

Soo saaraha GROVE
Nambarka qaybta DHT11
Danabka Logic/IO 3.3 – 5.5 V
Danabka sahayda 3.3 V
Hadda soo saarista (kanal kasta) 0.5 mA typ.
Hadda ugu sarreysa (kanal kasta) 2.5 mA max.
Hagaha soo noqnoqoshada PWM N/A
Heerarka xadka logic-ga 0.3 VCC (hoose), 0.7 VCC (sare)
Hoos u dhaca danabka / RDS(on) / saturation Ma khuseeyo
Xadka kulaylka 0°C ilaa 60°C
Baakad DIP-4
Qoraalo / noocyo Xallinta: 1°C / 1% RH

 

  • Isticmaal resistor-ka kor u qaada (5 kΩ lagu taliyay) ee xariiqda xogta.
  • Ka ilaali fiilooyinka dareemaha inay gaaban yihiin (ka yar 20 m) si loo hubiyo akhrin sax ah.
  • Ku shub DHT11 3.3V si waxqabadka ugu fiican.
  • Muddada muunadayntu waa inaysan ka yarayn 1 ilbiriqsi.
  • Hubi isku xirnaanta fiilooyinka haddii akhrintu fashilanto (tusaale, aan ku xirnayn, pin khaldan).

Tilmaamaha Fiilooyinka

ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer

Si aad ugu xirto dareemaha DHT11 ee ESP32, ku bilow adigoo ku xira pin-ka VCC ee DHT11 (pin-ka ugu bidix) ee soo saarista 3.3V ee ESP32. Marka xigta, ku xir pin-ka dhulka (pin-ka afraad) ee pin-ka dhulka (GND) ee ESP32. Pin-ka xogta (pin-ka labaad) waa in lagu xiraa GPIO pin 14 ee ESP32.

LCD-ga, ku xir pin-ka VCC ee soo saarista 5V ee ESP32. Pin-ka dhulka waa in lagu xiraa pin-ka dhulka ee ESP32. Pin-yada SDA iyo SCL ee LCD-ga waa in lagu xiraa GPIO pin-yada 21 iyo 22, siday u kala horreeyaan. Hubi in dhammaan isku xirnaantu ay adag yihiin si looga fogaado dhibaatooyinka marka la akhrinayo xogta.

Tusaalooyinka Koodhka & Sharaxaad

Qaybta koowaad ee koodhka, waxaan bilaabaynaa dareemaha DHT oo waxaan dejinaynaa nambarka pin-ka iyadoo la adeegsanayo #define DHTPIN 14. Aqoonsigani wuxuu noo ogolaanayaa inaan si fudud u tixraacno pin-ka ku xiran xariiqda xogta DHT11 inta koodhka oo dhan.

#include "DHT.h"

#define DHTPIN 14  // Deji pin-ka ku xiran pin-ka xogta DHT11
#define DHTTYPE DHT11 // DHT 11 
DHT dht(DHTPIN, DHTTYPE);

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

Hawlaha setup(), waxaan bilaabaynaa isgaarsiinta serial-ka si loo ogaado khaladaadka waxaana bilaabaynaa dareemaha DHT. Loop-ka ugu weyn wuxuu ku darayaa dib u dhac 2 ilbiriqsi ah si loo hubiyo inaanaan ku cuslaanin dareemaha codsiyo badan.

Marka xigta, waxaan akhrinaynaa qiimaha qoyaanka iyo heerkulka iyadoo la adeegsanayo float humidity = dht.readHumidity(); iyo float temperature = dht.readTemperature();. Aqoonsiyadani waxay kaydiyaan qiimaha la cabbiray si loo isticmaalo markii dambe.

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

Ugu dambeyntii, waxaan hubinaynaa khaladaadka akhrinta oo waxaan daabacaynaa qiimaha shaashadda serial-ka iyadoo la adeegsanayo Serial.print(). Tani waxay noo ogolaanaysaa inaan ku fiirino akhrinta waqti-gaab ah.

if (isnan(humidity) || isnan(temperature)) {
  Serial.println("Failed to read from DHT sensor!");
  return;
}
Serial.print("Humidity: "); 
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: "); 
Serial.print(temperature);
Serial.println(" *C");

Koodhka LCD-ga, waxaan bilaabaynaa LCD-ga oo waxaan ku muujinaynaa heerkulka iyo qoyaanka shaashadda iyadoo la adeegsanayo hawsha lcd.print(). Tani waxay bixisaa matalaad muuqaal ah oo xogta ay soo ururisay DHT11.

Muuujin / Waxa Laga Filan Karo

Marka dhammaan si sax ah loo xiro oo koodhka lagu shubo ESP32, waxaad arki doontaa akhrinta heerkulka iyo qoyaanka oo lagu muujiyay shaashadda serial-ka iyo shaashadda LCD-ga. Haddii heerkulku ka sarreeyo 30°C, buunku wuxuu shaqeyn doonaa, isagoo bixinaya digniin maqal ah.

Ka digtoonaanso isku xirnaanshaha rogaal ah oo hubi in dareenka (sensor) aan loo bandhigin xaalado aad u daran, sababtoo ah waxay saameyn karaan akhrinta. Waxaa laga yaabaa inaad u baahato inaad hagaajiso heerka (threshold) ee qalabka dhawaqa (buzzer) iyadoo ku xiran shuruudahaaga (fiidiyowga 15:30).

Waqtiyada Fiidiyowga

  • 00:00 Bilow
  • 1:57 Hordhac ku saabsan DHT11
  • 6:18 Ku xirista DHT11 ee ESP32
  • 7:67 Sharaxaada koodka Arduino
  • 11:49 Doorashada guddiga ESP32 iyo COM port ee Arduino IDE
  • 13:30 Bandejiga mashruuca
  • 15:32 Helista Fahrenheit
  • 16:04 Muujinta heerkulka ee LCD iyadoo la isticmaalayo ESP32
  • 17:20 Koodka DHT11 iyo LCD ee ESP32
  • 19:49 Bandejiga DHT11 LCD ee ESP32
  • 21:33 Qaadashada tallaabo ku saabsan qiimaha heerkulka

Sawirro

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
Luqadda: 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
Luqadda: 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("%");
}

Waad u baahan tahay

Kheyraadka & Tixraacyada

Faylasha📁

Faylka Fritzing

Buugga Isticmaalaha