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.
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


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.
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
#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");
}
/*
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("%");
}
Common Course Links
Common Course Files
Abin da zaka iya bukata
-
AmazonPurchase DHT11 from Amazonamzn.to
-
BanggoodPurchase DHT11 module from Banggoodbanggood.com
Albarkatun da kuma shafukan da za a duba
-
TakarduESP32 Tutorial 28/55 - SunFounder doc page for DHT temperature sensordocs.sunfounder.com
Fayiloli📁
Fayil Fritzing
-
DHT11 Humitidy and Temperature Sensor (3 pins)
DHT11 Humitidy and Temperature Sensor (3 pins).fzpz0.20 MB
Jagoran Mai Amfani
-
DHT11 Jagoran Mai Amfani
robojax-DHT11_manual.pdf0.82 MB