Search Code

Èkọ́ ESP32 28/55 - DHT11 Sensọ Ìwọ̀n-otútù pẹ̀lú LCD | SunFounder's ESP32 IoT Learning kit

Èkọ́ ESP32 28/55 - DHT11 Sensọ Ìwọ̀n-otútù pẹ̀lú LCD | SunFounder's ESP32 IoT Learning kit

Nínú ẹ̀kọ́ yìí, a óò ṣàwárí bí a ṣe le ṣe àjọpọ̀ pẹ̀lú ẹ̀rọ ìwọ̀n ìgbóná àti ọ̀rinrin DHT11 pẹ̀lú microcontroller ESP32. Ní lílo ètò yìí, a óò wọn ìgbóná àti ọ̀rinrin ayika, tí a óò fi àbájáde rẹ̀ hàn lórí àtẹ̀jáde serial àti lórí iboju LCD. Ní àfikún, a óò ṣe ìmúṣẹ buzzer tí yóò máa ṣiṣẹ́ nígbà tí ìgbóná bá ju ààyè kan lọ.

ESP32-28_dht_temperature-sensor-main

Ìṣẹ̀mí yìí kì í ṣe àṣefihàn lílo ẹ̀rọ ìwọ̀n DHT11 nìkan, ṣùgbọ́n ó tún fi agbára ESP32 hàn, tí ó ní Wi-Fi àti Bluetooth tí a kọ́ sínú rẹ̀. Ní ìparí ẹ̀kọ́ yìí, o óò ní ètò tí ń ṣiṣẹ́ tí yóò máa ṣe àkọsílẹ̀ àwọn ipò ayika nígbà gbogbo àti pèsè ìdáhùn ní àkókò gidi.

Fún ìtọ́sọ́nà ojú, wo fídíò tí ó bá ẹ̀kọ́ yìí lọ (nínú fídíò ní 00:00). Ẹ jẹ́ kí a bẹ̀rẹ̀!

Àlàyé Ohun Èlò

Àwọn èròjà pàtàkì tí a lò nínú ìṣẹ̀mí yìí ni microcontroller ESP32, ẹ̀rọ ìwọ̀n DHT11, àti iboju LCD. ESP32 yóò ṣiṣẹ́ gẹ́gẹ́ bí ọpọlọ iṣẹ́ náà, tí yóò ṣe àkóónú data láti ẹ̀rọ ìwọ̀n DHT11 àti ṣàkóso àbájáde LCD.

Ẹ̀rọ ìwọ̀n DHT11 ń wọn ọ̀rinrin àti ìgbóná, tí ó ń pèsè àwọn ìwọ̀n nípasẹ̀ laini data kan ṣoṣo. Ó nílò agbára 3.3V sí 5.5V àti ó ní àgbára iná kekere, tí ó mú un dára fún àwọn ohun èlò tí ń lo batiri. LCD yóò fi àwọn iye ìgbóná àti ọ̀rinrin hàn ní àkókò gidi.

Àwọn Àlàyé Datasheet

Olùṣe GROVE
Nọ́mbà apá DHT11
Foltage Logic/IO 3.3 – 5.5 V
Foltage ìpèsè 3.3 V
Ìwọ̀n iná jáde (fún ikanni kọ̀ọ̀kan) 0.5 mA typ.
Ìwọ̀n iná tó pọ̀jù (fún ikanni kọ̀ọ̀kan) 2.5 mA max.
Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM N/A
Àwọn ìpele ìwọ̀n ìkóṣe 0.3 VCC (kekere), 0.7 VCC (ga)
Ìdìndì foltage / RDS(on) / saturation Kò wúlò
Àwọn ààlà ìgbóná 0°C sí 60°C
Àkójọpọ̀ DIP-4
Àwọn àkíyèsí / àwọn oríṣi Ìpinnu: 1°C / 1% RH

 

  • Lo resistor ìfà (5 kΩ tí a dábàá) lórí laini data.
  • Jẹ́ kí àwọn okun ẹ̀rọ ìwọ̀n kúrú (kéré sí 20 m) láti ri i pé àwọn ìwọ̀n péye.
  • Fi agbára 3.3V fún DHT11 fún iṣẹ́ tó dára jùlọ.
  • Àkókò ìṣàpẹẹrẹ kò gbọ́dọ̀ kéré ju 1 ìṣẹ́jú àáyá.
  • Ṣàyẹ̀wò àwọn ìsopọ̀ okun bí àwọn ìwọ̀n bá kùnà (bíi, kò ní ìsopọ̀, pin tí kò tọ́).

Àwọn Ìtọ́sọ́nà Ìsopọ̀ Okun

ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer

Láti sopọ̀ ẹ̀rọ ìwọ̀n DHT11 sí ESP32, bẹ̀rẹ̀ nípa sísopọ̀ pin VCC ti DHT11 (pin tó wà ní òsì jùlọ) sí ìwọ̀n jáde 3.3V ti ESP32. Nígbà tí ó bá yẹ, sopọ̀ pin ilẹ̀ (pin kẹrin) sí pin ilẹ̀ (GND) kan lórí ESP32. Pin data (pin kejì) yẹ kí ó sopọ̀ sí GPIO pin 14 lórí ESP32.

Fún LCD, sopọ̀ pin VCC sí ìwọ̀n jáde 5V ti ESP32. Pin ilẹ̀ yẹ kí ó sopọ̀ sí pin ilẹ̀ kan lórí ESP32. Àwọn pin SDA àti SCL ti LCD yẹ kí ó sopọ̀ sí GPIO pins 21 àti 22, ní àtòlẹ́sẹ̀. Rí i pé gbogbo àwọn ìsopọ̀ ṣe dáradára láti yẹ̀rá àwọn ìṣòro nígbà tí a ń ka data.

Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà

Nínú apá àkọ́kọ́ ti kóòdù náà, a ṣe ìbẹ̀rẹ̀ ẹ̀rọ ìwọ̀n DHT àti ṣètò nọ́mbà pin pẹ̀lú #define DHTPIN 14. Àmì ìdánimọ̀ yìí jẹ́ kí a rọrùn láti tọ́ka sí pin tí a sopọ̀ sí laini data DHT11 jálẹ̀ kóòdù náà.

#include "DHT.h"

#define DHTPIN 14  // Ṣètò pin tí a sopọ̀ sí pin data DHT11
#define DHTTYPE DHT11 // DHT 11 
DHT dht(DHTPIN, DHTTYPE);

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

Nínú iṣẹ́ setup(), a ṣe ìbẹ̀rẹ̀ ìbánisọ̀rọ̀ serial fún ṣíṣàtúnṣe àṣìṣe àti bẹ̀rẹ̀ ẹ̀rọ ìwọ̀n DHT. Lúùpù àkọ́kọ́ ní ìdádúró 2 ìṣẹ́jú àáyá láti ri i pé a kò bá ẹ̀rọ ìwọ̀n náà pàdé púpọ̀.

Nígbà tí ó bá yẹ, a ka àwọn iye ọ̀rinrin àti ìgbóná ní lílo float humidity = dht.readHumidity(); àti float temperature = dht.readTemperature();. Àwọn àmì ìdánimọ̀ wọ̀nyí tọ́jú àwọn iye tí a wọ̀n fún lílo nígbà mìíràn.

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

Ní ìparí, a ṣàyẹ̀wò fún àwọn àṣìṣe kíkà àti tẹ̀ àwọn iye náà jáde sí àtẹ̀jáde serial ní lílo Serial.print(). Èyí jẹ́ kí a lè kíyèsi àwọn ìwọ̀n náà ní àkókò gidi.

if (isnan(humidity) || isnan(temperature)) {
  Serial.println("Kò ṣeé ṣe láti ka láti ẹ̀rọ ìwọ̀n DHT!");
  return;
}
Serial.print("Ọ̀rinrin: "); 
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Ìgbóná: "); 
Serial.print(temperature);
Serial.println(" *C");

Nínú kóòdù LCD, a ṣe ìbẹ̀rẹ̀ LCD àti fi ìgbóná àti ọ̀rinrin hàn lórí iboju ní lílo iṣẹ́ lcd.print(). Èyí pèsè ìṣàfihàn ojú tí data tí ẹ̀rọ ìwọ̀n DHT11 gbà.

Ìṣàfihàn / Ohun Tí O Ó Rí

Nígbà tí gbogbo nǹkan bá ti sopọ̀ dáradára àti tí a ti gbé kóòdù náà sí ESP32, o yẹ kí o rí àwọn ìwọ̀n ìgbóná àti ọ̀rinrin tí a fi hàn lórí àtẹ̀jáde serial àti lórí iboju LCD. Bí ìgbóná bá ju 30°C lọ, buzzer yóò ṣiṣẹ́, tí yóò pèsè ìkìlọ̀ tí a lè gbọ́.

Ṣọ́ra fún àwọn ìsopọ̀ tí ó yípadà kí o sì rí i dájú pé a kò fi sẹ́nsọ̀ náà sí àwọn ipò tí ó le koko, nítorí pé ó lè ní ipa lórí àwọn ìwọ̀n tí ó ń gbé jáde. O lè ní láti ṣàtúnṣe ìwọ̀n ààlà fún buzzer náà dá lórí ohun tí o fẹ́ (nínú fídíò ní 15:30).

Àwọn Àkókò Nínú Fídíò

  • 00:00 Ìbẹ̀rẹ̀
  • 1:57 Ìfihàn DHT11
  • 6:18 Ìsopọ̀ DHT11 pẹ̀lú ESP32
  • 7:67 Àlàyé kóòdù Arduino
  • 11:49 Yíyàn bọ́ọ̀dì ESP32 àti COM port nínú Arduino IDE
  • 13:30 Ìfihàn iṣẹ́-ọwọ́
  • 15:32 Gbígba Fahrenheit
  • 16:04 Fífi ìwọ̀n-otútù hàn lórí LCD pẹ̀lú ESP32
  • 17:20 Kóòdù DHT11 àti LCD pẹ̀lú ESP32
  • 19:49 Ìfihàn DHT11 LCD pẹ̀lú ESP32
  • 21:33 Ṣíṣe ìgbésẹ̀ lórí iye ìwọ̀n-otútù

Aworan

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

Ohun ti o le nilo

Orisun & itọkasi

Fáìlìs📁

Fayile Fritzing

Iwe Itọsọna Olumulo