ESP32 DHT11 Temperature and Humidity Readings sa OLED Display gamit ang Arduino IDE

Esp32 Dht11 Temperature And Humidity Readings Sa Oled Display Gamit Ang Arduino Ide



Ang ESP32 ay isang advanced na microcontroller board na maaaring magpatakbo ng maraming mga tagubilin upang makabuo ng mga output. Ang isang OLED screen ay ginagamit para sa pagpapakita ng iba't ibang uri ng data. Gamit ang ESP32 na may sensor ng DHT11 maaari tayong kumuha ng mga pagbabasa ng temperatura at halumigmig. Ang lahat ng data na ito ay maaaring katawanin sa isang OLED display. Sinasaklaw ng tutorial na ito ang lahat ng hakbang na kailangan para ma-interface ang mga sensor na ito sa ESP32.

Sinasaklaw ng tutorial na ito ang sumusunod na nilalaman:







1: Panimula sa DHT11 Sensor



2: DHT11 Sensor Pinout



2.1: 3 Pin DHT11 Sensor





2.2: 4 Pin DHT11 Sensor

3: OLED Display Module na may ESP32



4: Pag-install ng Mga Kinakailangang Aklatan

4.1: Arduino Library para sa DHT Sensor

4.2: Arduino Library para sa OLED Display

5: Interfacing ESP32 sa DHT11 Sensor

5.1: Eskematiko

5.2: Code

5.3: Output

1: Panimula sa DHT11 Sensor

Ang DHT11 ay isa sa mga karaniwang ginagamit na sensor ng pagsubaybay sa temperatura at halumigmig sa komunidad ng electronics. Ito ay mas tumpak sa pagbibigay ng temperatura at kamag-anak na kahalumigmigan. Naglalabas ito ng naka-calibrate na digital signal na dumura sa dalawang magkaibang pagbabasa ng temperatura at halumigmig.

Gumagamit ito ng digital-signal-acquisition technique na nagbibigay ng pagiging maaasahan at katatagan. Ang DHT11 sensor ay naglalaman ng isang resistive-type na humidity measuring component at nagtatampok ng NTC temperature measurement component. Ang parehong mga ito ay isinama sa isang 8-bit na napakahusay na microcontroller na nag-aalok ng mabilis na pagtugon, kakayahan laban sa panghihimasok at pagiging epektibo sa gastos.

Narito ang ilang pangunahing teknikal na pagtutukoy ng DHT11:

    • Ang DHT11 sensor ay gumagana sa boltahe na 5V hanggang 5.5V.
    • Ang kasalukuyang gumagana habang sumusukat ay 0.3mA at sa oras ng standby ay 60uA.
    • Naglalabas ito ng serial data sa digital signal.
    • Saklaw ng temperatura ng DHT11 sensor mula 0°C hanggang 50°C.
    • Hanay ng Halumigmig: 20% hanggang 90%.
    • Katumpakan ng ±1°C para sa pagsukat ng temperatura at ±1% para sa relatibong pagbabasa ng halumigmig.

Dahil nasasakupan natin ang isang pangunahing pagpapakilala sa DHT11 sensor ngayon ay lumipat tayo patungo sa pinout ng DHT11.

2: DHT11 Sensor Pinout

Kadalasan ang DHT11 sensor ay may dalawang magkaibang pin configuration. Ang DHT11 sensor na nasa 4 na pin na configuration ay may 3 pin na hindi gumagana o may label na walang koneksyon.

Ang 3 pin DHT11 sensor module ay may tatlong pin na kinabibilangan ng power, GND at data pin.

2.1: 3 Pin DHT11 Sensor

Ang ibinigay na larawan ay nagpapakita ng 3 pin configuration ng DHT11 sensor.


Ang tatlong pin na ito ay:

1. Data Output temperatura at halumigmig sa serial data
2. Vcc Input power 3.5V hanggang 5.5V
3. GND GND ng circuit

2.2: 4 Pin DHT11 Sensor

Ang sumusunod na larawan ay naglalarawan ng 4 pin DHT11 sensor module:


Kasama sa 4 na pin na ito ang:

1. Vcc Input power 3.5V hanggang 5.5V
2. Data Output temperatura at halumigmig sa serial data
3. NC Walang koneksyon o hindi ginagamit
Apat. GND GND ng circuit

3: OLED Display Module na may ESP32

Ang OLED display ay pangunahing may kasamang dalawang magkaibang protocol ng komunikasyon. Ang dalawang protocol ay I2C at SPI. Ang serial peripheral interface (SPI) ay karaniwang mas mabilis kaysa sa I2C, ngunit mas gusto namin ang I2C kaysa sa SPI protocol dahil nangangailangan ito ng mas maliit na bilang ng mga pin.

Ang sumusunod na larawan ay naglalarawan ng ESP32 connection diagram na may 128×64 pixels (0.96’’) OLED display.


Nasa ibaba ang talahanayan ng koneksyon:


Kapag na-interface na ang ESP32 sa isang OLED display, ang susunod na hakbang sa listahan ay i-install ang lahat ng kinakailangang library para sa ESP32 programming gamit ang Arduino IDE.

4: Pag-install ng Mga Kinakailangang Aklatan

Dito kami ay mag-interface ng dalawang magkaibang sensor sa ESP32 kaya parehong nangangailangan ng magkahiwalay na mga aklatan upang gumana. Ngayon ay mag-i-install kami ng mga aklatan para sa DHT11 at OLED display.

4.1: Arduino Library para sa DHT Sensor

Buksan ang Arduino IDE, pumunta sa: Sketch>Isama ang Library>Pamahalaan ang Mga Aklatan

Bilang kahalili, maaari rin nating buksan ang manager ng library mula sa side button sa interface ng Arduino IDE.

Maghanap para sa DHT library at i-install ang pinakabagong na-update na bersyon. Ang DHT library ay makakatulong na basahin ang data ng sensor.


Pagkatapos i-install ang DHT library susunod na kailangan nating mag-install ng a pinag-isang library ng sensor ni Adafruit.

4.2: Arduino Library para sa OLED Display

Maramihang mga aklatan ang magagamit sa Arduino IDE upang i-program ang ESP32 na may OLED display. Dito ay gagamit tayo ng dalawang library mula sa Adafruit: SSD1306 at GFX library.

Buksan ang IDE at i-click ang Library Manager at hanapin ang OLED SSD1306 library. I-install ang SSD1306 library ng Adafruit mula sa search bar.

Bilang kahalili, maaari ding pumunta sa: Sketch>Isama ang Library>Pamahalaan ang Mga Aklatan


Ang susunod na library na kailangan nating i-install ay ang GFX aklatan ni Adafruit.


Nag-install kami ng mga library para sa OLED display at DHT11 sensor. Ngayon ay madali na nating ma-interface pareho sa ESP32.

5: Interfacing ESP32 sa DHT11 Sensor at OLED

Para sa interfacing ng ESP32 sa DHT11 sensor kailangan namin ng digital pin para sa pagbabasa ng data ng sensor at para paganahin ang DHT11 sensor maaari naming gamitin ang 3V3 pin o Vin pin ng ESP32.

Para sa OLED display, gagamitin ang mga I2C pin na SDA at SCL. Para sa powering maaari naming gamitin ang Vin o isang 3V3 pin ng ESP32.

5.1: Eskematiko

Sa ibinigay na imahe makikita natin ang schematic diagram ng ESP32 na may DHT11 at para sa output ay ginagamit ang isang OLED screen. Ang larawang ito ay kumakatawan sa 3-pin sensor module na nakikipag-ugnay sa ESP32. Tandaan na ikonekta ang isang pull up na risistor na 10kΩ.


Katulad nito, ang 4 pin DHT11 ay maaari ding konektado, ang pagkakaiba lang dito ay ang 3 pin na walang silbi o tinatawag na Walang koneksyon. Ang data pin ay nasa pin 2 ng sensor.

Ang OLED display ay konektado gamit ang I2C SDA at SCL pin sa D21 at D22 ayon sa pagkakabanggit.

5.2: Code

Ikonekta ang ESP32 sa PC at buksan ang Arduino IDE. I-upload ang ibinigay na code sa ESP32 board.

#include             /*Isama ang wire communication library*/
#include
#include /*OLED display library*/
#include
#include             /*Temperature and humidity sensor library*/
#define SCREEN_WIDTH 128    /*OLED screen width 128 pixels*/
#define SCREEN_HEIGHT 64   /*OLED screen height 64 pixels*/
Display ng Adafruit_SSD1306 ( SCREEN_WIDTH, SCREEN_HEIGHT, at Kawad, - 1 ) ; /* SSD1306 I2C Display initialization */
#define DHTPIN 4          /*Signal pin para sa DHT11 Sensor*/
#define DHTTYPE    DHT11
DHT dht ( DHTPIN, DHTTYPE ) ;
walang bisang setup ( ) {
Serial.magsimula ( 115200 ) ;
dht.magsimula ( ) ;
kung ( ! pagpapakita.simulan ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* I2C Address sa alin Nakakonekta ang OLED */
Serial.println ( F ( 'Nabigo ang paglalaan ng SSD1306' ) ) ;
para sa ( ;; ) ;
}
pagkaantala ( 2000 ) ;
display.clearDisplay ( ) ;
display.setTextColor ( PUTI ) ; /* Puti ang kulay ng output ng text */
}
walang laman na loop ( ) {
pagkaantala ( 5000 ) ;
lumutang t = dht.readTemperature ( ) ; /* basahin temperatura */
lumutang h = dht.readHumidity ( ) ; /* basahin kahalumigmigan */
kung ( isnan ( h ) || isnan ( t ) ) {
Serial.println ( 'Nabigong magbasa mula sa DHT sensor!' ) ;
}
display.clearDisplay ( ) ; /* malinaw OLED display bago ipakita ang pagbabasa */
display.setTextSize ( 1 ) ; /* Font ng teksto ng OLED laki */
display.setCursor ( 0 , 0 ) ;
display.print ( 'Temperatura:' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
display.print ( t ) ; /* temperatura ng pag-print sa Celsius */
display.print ( '' ) ;
display.setTextSize ( 1 ) ;
display.cp437 ( totoo ) ;
pagpapakita.sumulat ( 167 ) ;
display.setTextSize ( 2 ) ;
display.print ( 'C' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
display.print ( 'Humidity:' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , Apat. Lima ) ;
display.print ( h ) ; /* nagpi-print ng porsyento ng kahalumigmigan */
display.print ( '%' ) ;
display.display ( ) ;
}


Nagsimula ang code sa pamamagitan ng pagsasama ng mga kinakailangang library para sa OLED at DHT11 sensor. Pagkatapos nito, tinukoy ang mga sukat ng display ng OLED. Susunod ang uri ng sensor ng DHT ay tinukoy kung sakaling palitan ito nang naaayon kung gumagamit ka ng DHT22.

Sa bahagi ng pag-setup, sinisimulan ang DHT sensor at OLED display. Ang OLED screen ay konektado sa isang I2C address na 0x3C. Kung sakaling may gustong suriin ang I2C address, i-upload ang code na ibinigay dito artikulo .

Ang mga halaga ng temperatura at halumigmig ay nakaimbak sa loob ng float variable t at h ayon sa pagkakabanggit. Pagkatapos nito, ang parehong mga halaga ay naka-print sa isang OLED display.

5.3: Output

Sa output makikita natin ang real time na sinusukat na temperatura at halumigmig na ipinapakita sa OLED screen.




Matagumpay naming nakumpleto ang interfacing ng ESP32 gamit ang DHT11 sensor at OLED screen.

Konklusyon

Ang mga OLED na display na may ESP32 ay maaaring magpakita ng maraming data na binabasa gamit ang mga panlabas na sensor. Narito ang artikulong ito ay sumasaklaw sa lahat ng mga hakbang sa pag-interface ng ESP32 sa DHT11 sensor upang masukat ang temperatura at halumigmig ng isang silid. Pagkatapos nito, ang lahat ng nabasang data ay ipinapakita sa I2C OLED display module.