Search Code

ESP32 பயிற்சி 28/55 - DHT11 வெப்பநிலை சென்சார் LCD உடன் | SunFounder இன் ESP32 IoT கற்றல் கிட்

ESP32 பயிற்சி 28/55 - DHT11 வெப்பநிலை சென்சார் LCD உடன் | SunFounder இன் ESP32 IoT கற்றல் கிட்

இந்த டுடோரியலில், ESP32 மைக்ரோகண்ட்ரோலருடன் DHT11 வெப்பநிலை மற்றும் ஈரப்பதம் சென்சாரை இணைப்பது எப்படி என்பதை ஆராய்வோம். இந்த அமைப்பைப் பயன்படுத்தி, சுற்றுப்புற வெப்பநிலை மற்றும் ஈரப்பதத்தை அளந்து, முடிவுகளை சீரியல் மானிட்டர் மற்றும் LCD திரையில் காண்பிப்போம். கூடுதலாக, வெப்பநிலை ஒரு குறிப்பிட்ட வரம்பை மீறும்போது செயல்படும் ஒரு பஸரை செயல்படுத்துவோம்.

ESP32-28_dht_temperature-sensor-main

இந்த திட்டம் DHT11 சென்சாரின் பயன்பாட்டை நிரூபிப்பது மட்டுமல்லாமல், உள்ளமைக்கப்பட்ட Wi-Fi மற்றும் புளூடூத் திறன்களைக் கொண்ட ESP32 இன் பன்முகத்தன்மையையும் காட்டுகிறது. இந்த டுடோரியலின் முடிவில், சுற்றுச்சூழல் நிலைமைகளை தொடர்ந்து கண்காணித்து நிகழ்நேர பின்னூட்டத்தை வழங்கும் ஒரு வேலை செய்யும் அமைப்பு உங்களுக்கு இருக்கும்.

காட்சி வழிகாட்டிக்கு, இந்த டுடோரியலுடன் இணைந்த வீடியோவைப் பார்க்கவும் (வீடியோவில் 00:00 இல்). தொடங்குவோம்!

வன்பொருள் விளக்கம்

இந்த திட்டத்தில் பயன்படுத்தப்படும் முக்கிய கூறுகள் ESP32 மைக்ரோகண்ட்ரோலர், DHT11 சென்சார் மற்றும் LCD காட்சி. ESP32 செயல்பாட்டின் மூளையாக செயல்பட்டு, DHT11 சென்சாரிலிருந்து தரவை செயலாக்கி LCD வெளியீட்டை கட்டுப்படுத்தும்.

DHT11 சென்சார் ஈரப்பதம் மற்றும் வெப்பநிலையை அளந்து, ஒரு தரவு வரி மூலம் அளவீடுகளை வழங்குகிறது. இதற்கு 3.3V முதல் 5.5V வரை மின்சாரம் தேவைப்படுகிறது மற்றும் குறைந்த மின்னோட்ட நுகர்வு கொண்டது, இது பேட்டரி மூலம் இயங்கும் பயன்பாடுகளுக்கு ஏற்றதாக அமைகிறது. LCD வெப்பநிலை மற்றும் ஈரப்பத மதிப்புகளை நிகழ்நேரத்தில் காண்பிக்கும்.

டேட்டாஷீட் விவரங்கள்

உற்பத்தியாளர் GROVE
பகுதி எண் DHT11
லாஜிக்/IO மின்னழுத்தம் 3.3 – 5.5 V
வழங்கல் மின்னழுத்தம் 3.3 V
வெளியீட்டு மின்னோட்டம் (ஒரு சேனலுக்கு) 0.5 mA typ.
உச்ச மின்னோட்டம் (ஒரு சேனலுக்கு) 2.5 mA max.
PWM அதிர்வெண் வழிகாட்டுதல் N/A
உள்ளீட்டு லாஜிக் வரம்புகள் 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 உடன் இணைக்கப்பட வேண்டும்.

LCD க்கு, VCC பின்னை ESP32 இன் 5V வெளியீட்டுடன் இணைக்கவும். தரை பின்னை ESP32 இல் உள்ள ஒரு தரை பின்னுடன் இணைக்க வேண்டும். LCD இன் 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 குறியீட்டில், LCD ஐ துவக்கி, lcd.print() செயல்பாட்டைப் பயன்படுத்தி வெப்பநிலை மற்றும் ஈரப்பதத்தை திரையில் காண்பிக்கிறோம். இது DHT11 சென்சார் சேகரித்த தரவின் காட்சி பிரதிநிதித்துவத்தை வழங்குகிறது.

செயல்விளக்கம் / என்ன எதிர்பார்க்கலாம்

எல்லாம் சரியாக இணைக்கப்பட்டு குறியீடு ESP32 க்கு பதிவேற்றப்பட்டவுடன், வெப்பநிலை மற்றும் ஈரப்பத அளவீடுகள் சீரியல் மானிட்டர் மற்றும் LCD திரையில் காண்பிக்கப்படுவதை நீங்கள் பார்க்க வேண்டும். வெப்பநிலை 30°C ஐ மீறினால், பஸர் செயல்பட்டு, கேட்கக்கூடிய எச்சரிக்கையை வழங்கும்.

தலைகீழான இணைப்புகள் குறித்து எச்சரிக்கையாக இருங்கள், மேலும் சென்சார் தீவிர நிலைமைகளுக்கு வெளிப்படுத்தப்படாமல் இருப்பதை உறுதிசெய்யுங்கள், ஏனெனில் இது அளவீடுகளை பாதிக்கலாம். உங்கள் தேவைகளைப் பொறுத்து பஸருக்கான வரம்பை சரிசெய்ய வேண்டியிருக்கலாம் (வீடியோவில் 15:30 இல்).

வீடியோ நேரக்குறியீடுகள்

  • 00:00 தொடக்கம்
  • 1:57 DHT11 அறிமுகம்
  • 6:18 ESP32 உடன் DHT11 இணைப்பு
  • 7:67 Arduino குறியீடு விளக்கம்
  • 11:49 Arduino IDE இல் ESP32 போர்டு மற்றும் COM போர்ட்டை தேர்ந்தெடுத்தல்
  • 13:30 திட்ட செயல்விளக்கம்
  • 15:32 பாரன்ஹீட் பெறுதல்
  • 16:04 ESP32 ஐப் பயன்படுத்தி LCD இல் வெப்பநிலையை காண்பித்தல்
  • 17:20 ESP32 உடன் DHT11 மற்றும் LCD குறியீடு
  • 19:49 ESP32 உடன் DHT11 LCD செயல்விளக்கம்
  • 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("%");
}

நீங்கள் தேவைப்படும் எண்ணங்கள்

வளங்கள் மற்றும் மேற்கோள்கள்

கோப்புகள்📁

பிரிட்சிங் கோப்பு

பயனர் கையேடு