Search Code

ESP32 ቱቶሪያል 28/55 - DHT11 የሙቀት ዳሳሽ ከLCD ጋር | SunFounder የESP32 IoT መማሪያ ኪት

ESP32 ቱቶሪያል 28/55 - DHT11 የሙቀት ዳሳሽ ከLCD ጋር | SunFounder የESP32 IoT መማሪያ ኪት

በዚህ መማሪያ ውስጥ፣ የDHT11 የሙቀት እና የእርጥበት ዳሳሽ ከESP32 ማይክሮኮንትሮለር ጋር እንዴት እንደሚገናኝ እንመረምራለን። ይህን ውቅር በመጠቀም፣ የአካባቢውን የሙቀት መጠን እና እርጥበት እንለካለን፣ ውጤቶቹን በሁለቱም በተከታታይ መቆጣጠሪያ እና በኤልሲዲ ስክሪን ላይ እናሳያለን። በተጨማሪም፣ የሙቀት መጠኑ ከተወሰነ ገደብ በላይ ሲሄድ የሚንቀሳቀስ ባዘር እንተገብራለን።

ESP32-28_dht_temperature-sensor-main

ይህ ፕሮጀክት የDHT11 ዳሳሽ አጠቃቀምን ብቻ ሳይሆን የESP32ን ሁለገብነትም ያሳያል፣ ይህም አብሮ የተሰራ ዋይፋይ እና ብሉቱዝ አቅሞችን ያካትታል። በዚህ መማሪያ መጨረሻ ላይ፣ የአካባቢ ሁኔታዎችን በቀጣይነት የሚከታተል እና የእውነተኛ ጊዜ ግብረመልስ የሚሰጥ የሚሰራ ውቅር ይኖርዎታል።

ለእይታ መመሪያ፣ ከዚህ መማሪያ ጋር የተያያዘውን ቪዲዮ ይመልከቱ (በቪዲዮው በ00:00)። እንጀምር!

ሃርድዌር ተብራርቷል

በዚህ ፕሮጀክት ውስጥ ጥቅም ላይ የሚውሉት ዋና ዋና ክፍሎች የESP32 ማይክሮኮንትሮለር፣ የDHT11 ዳሳሽ እና የኤልሲዲ ማሳያ ናቸው። ESP32 የክዋኔው አእምሮ ሆኖ ያገለግላል፣ ከDHT11 ዳሳሽ የተገኘውን መረጃ በማስኬድ እና የኤልሲዲ ውፅዓትን ይቆጣጠራል።

የDHT11 ዳሳሽ እርጥበት እና የሙቀት መጠንን ይለካል፣ ንባቦችን በአንድ የውሂብ መስመር በኩል ያቀርባል። ከ3.3V እስከ 5.5V የኃይል አቅርቦት ይፈልጋል እና ዝቅተኛ የአሁኑ ፍጆታ አለው፣ ይህም በባትሪ ለሚሰሩ መተግበሪያዎች ተስማሚ ያደርገዋል። ኤልሲዲው የሙቀት እና የእርጥበት እሴቶችን በእውነተኛ ጊዜ ያሳያል።

የዳታሼት ዝርዝሮች

አምራች GROVE
የክፍል ቁጥር DHT11
የሎጂክ/IO ቮልቴጅ 3.3 – 5.5 ቮልት
የአቅርቦት ቮልቴጅ 3.3 ቮልት
የውፅዓት ጅረት (በአንድ ቻናል) 0.5 mA በተለምዶ
ከፍተኛ ጅረት (በአንድ ቻናል) 2.5 mA ከፍተኛ
የPWM ድግግሞሽ መመሪያ የለም
የግብዓት ሎጂክ ገደቦች 0.3 VCC (ዝቅተኛ)፣ 0.7 VCC (ከፍተኛ)
የቮልቴጅ ጠብታ / RDS(on) / ሙሌት አይተገበርም
የሙቀት ገደቦች 0°C እስከ 60°C
ፓኬጅ DIP-4
ማስታወሻዎች / ልዩነቶች ጥራት፡ 1°C / 1% RH

 

  • በውሂብ መስመሩ ላይ የመጎተቻ ተቃዋሚ (5 kΩ ይመከራል) ይጠቀሙ።
  • ትክክለኛ ንባቦችን ለማረጋገጥ የዳሳሽ ሽቦዎችን አጭር ያድርጉ (ከ20 ሜትር ያነሰ)።
  • ለተሻለ አፈጻጸም DHT11ን በ3.3V ያብሩ።
  • የናሙና ጊዜ ከ1 ሰከንድ ያነሰ መሆን የለበትም።
  • ንባቦች ካልተሳኩ የሽቦ ግንኙነቶችን ይፈትሹ (ለምሳሌ፣ አልተገናኘም፣ የተሳሳተ ፒን)።

የሽቦ መመሪያዎች

ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer

የDHT11 ዳሳሽን ከESP32 ጋር ለማገናኘት፣ የDHT11ን የVCC ፒን (በግራ በኩል ያለው ፒን) ከESP32 የ3.3V ውፅዓት ጋር በማገናኘት ይጀምሩ። በመቀጠል፣ የመሬት ፒን (አራተኛው ፒን) በESP32 ላይ ካለው የመሬት (GND) ፒን ጋር ያገናኙ። የውሂብ ፒን (ሁለተኛው ፒን) በESP32 ላይ ካለው GPIO ፒን 14 ጋር መገናኘት አለበት።

ለኤልሲዲው፣ የVCC ፒንን ከESP32 የ5V ውፅዓት ጋር ያገናኙ። የመሬት ፒን በESP32 ላይ ካለው የመሬት ፒን ጋር መገናኘት አለበት። የኤልሲዲው SDA እና SCL ፒኖች ከGPIO ፒኖች 21 እና 22 ጋር በቅደም ተከተል መገናኘት አለባቸው። ውሂብ በሚያነቡበት ጊዜ ችግሮችን ለማስወገድ ሁሉም ግንኙነቶች ደህንነታቸው የተጠበቀ መሆናቸውን ያረጋግጡ።

የኮድ ምሳሌዎች እና ማብራሪያ

በኮዱ የመጀመሪያ ክፍል ውስጥ፣ የDHT ዳሳሹን እናስነሳለን እና የፒን ቁጥሩን በ#define DHTPIN 14 እናዘጋጃለን። ይህ መለያ በኮዱ ውስጥ ሁሉ ከDHT11 የውሂብ መስመር ጋር የተገናኘውን ፒን በቀላሉ ለማመልከት ያስችለናል።

#include "DHT.h"

#define DHTPIN 14  // ከDHT11 የውሂብ ፒን ጋር የተገናኘውን ፒን ያዘጋጁ
#define DHTTYPE DHT11 // DHT 11 
DHT dht(DHTPIN, DHTTYPE);

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

setup() ተግባር ውስጥ፣ ለማረም የተከታታይ ግንኙነትን እናስነሳለን እና የDHT ዳሳሹን እንጀምራለን። ዋናው ሉፕ ዳሳሹን ከመጠን በላይ እንዳንጭነው ለማረጋገጥ የ2 ሰከንድ መዘግየትን ያካትታል።

በመቀጠል፣ የእርጥበት እና የሙቀት እሴቶችን float humidity = dht.readHumidity(); እና float temperature = dht.readTemperature(); በመጠቀም እናነባለን። እነዚህ መለያዎች የተለኩትን እሴቶች ለቀጣይ አጠቃቀም ያከማቻሉ።

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

በመጨረሻም፣ ለማንበብ ስህተቶች እንፈትሻለን እና እሴቶቹን Serial.print() በመጠቀም በተከታታይ መቆጣጠሪያው ላይ እናተምታለን። ይህ ንባቦቹን በእውነተኛ ጊዜ እንድንመለከት ያስችለናል።

if (isnan(humidity) || isnan(temperature)) {
  Serial.println("ከDHT ዳሳሽ ማንበብ አልተሳካም!");
  return;
}
Serial.print("እርጥበት፡ "); 
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("የሙቀት መጠን፡ "); 
Serial.print(temperature);
Serial.println(" *C");

በኤልሲዲ ኮዱ ውስጥ፣ ኤልሲዲውን እናስነሳለን እና የሙቀት እና የእርጥበት መጠንን lcd.print() ተግባር በመጠቀም በስክሪኑ ላይ እናሳያለን። ይህ በDHT11 ዳሳሽ የተሰበሰበውን ውሂብ ምስላዊ መግለጫ ይሰጣል።

ማሳያ / ምን እንደሚጠበቅ

ሁሉም ነገር በትክክል ከተገናኘ እና ኮዱ ወደ ESP32 ከተጫነ፣ የሙቀት እና የእርጥበት ንባቦች በተከታታይ መቆጣጠሪያው እና በኤልሲዲ ስክሪኑ ላይ ሲታዩ ማየት አለብዎት። የሙቀት መጠኑ ከ30°C በላይ ከሆነ፣ ባዘሩ ይንቀሳቀሳል፣ የሚሰማ ማንቂያ ይሰጣል።

የተገላቢጦሽ ግንኙነቶችን ተጠንቀቅ እና ዳሳሹ ለከፍተኛ ሁኔታዎች እንዳይጋለጥ አረጋግጥ፣ ምክንያቱም ይህ በንባቦቹ ላይ ተጽዕኖ ሊያሳድር ይችላል። እንደ ፍላጎትህ የቡዘርን ገደብ ማስተካከል ሊኖርብህ ይችላል (በቪዲዮው 15:30 ላይ)።

የቪዲዮ የጊዜ ምልክቶች

  • 00:00 መጀመሪያ
  • 1:57 የDHT11 መግቢያ
  • 6:18 DHT11ን ከESP32 ጋር ማገናኘት
  • 7:67 የአርዱኖ ኮድ ተብራርቷል
  • 11:49 በአርዱኖ IDE ውስጥ የESP32 ቦርድ እና COM ወደብ መምረጥ
  • 13:30 የፕሮጀክት ማሳያ
  • 15:32 ፋረንሃይት ማግኘት
  • 16:04 ESP32ን በመጠቀም የሙቀት መጠንን በLCD ላይ ማሳየት
  • 17:20 DHT11 እና LCD ከESP32 ኮድ ጋር
  • 19:49 DHT11 LCD ማሳያ ከESP32 ጋር
  • 21:33 በሙቀት መጠን እሴት ላይ እርምጃ መውሰድ

ምስሎች

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

እንደሚያስፈልግዎት ይችላል

ምንጮች እና ምንጮች

ፋይሎች📁

ፍሪትዚንግ ፋይል

ተጠቃሚ መመሪያ