ESP32 DHT11 Temperatur- og fuktighetsavlesninger i OLED-skjerm ved bruk av Arduino IDE

Esp32 Dht11 Temperatur Og Fuktighetsavlesninger I Oled Skjerm Ved Bruk Av Arduino Ide



ESP32 er et avansert mikrokontrollerkort som kan kjøre flere instruksjoner for å generere utganger. En OLED-skjerm brukes til å vise forskjellige typer data. Ved å bruke ESP32 med DHT11-sensor kan vi ta temperatur- og fuktighetsavlesninger. Alle disse dataene kan representeres over en OLED-skjerm. Denne opplæringen dekker alle trinnene som trengs for å koble disse sensorene til ESP32.

Denne opplæringen dekker følgende innhold:







1: Introduksjon til DHT11-sensor



2: DHT11 Sensor Pinout



2.1: 3 Pins DHT11-sensor





2.2: 4-pinners DHT11-sensor

3: OLED-skjermmodul med ESP32



4: Installere de nødvendige bibliotekene

4.1: Arduino-bibliotek for DHT-sensor

4.2: Arduino-bibliotek for OLED-skjerm

5: Grensesnitt ESP32 med DHT11-sensor

5.1: Skjematisk

5.2: Kode

5.3: Utgang

1: Introduksjon til DHT11-sensor

DHT11 er en av de mest brukte temperatur- og fuktighetsovervåkingssensorene i elektronikkmiljøet. Det er mer presist når det gjelder å gi temperatur og relativ fuktighet. Den sender ut et kalibrert digitalt signal som spytter ut i to forskjellige avlesninger av temperatur og fuktighet.

Den bruker digital-signal-innsamlingsteknikken som gir pålitelighet og stabilitet. DHT11-sensoren inneholder en fuktighetsmålende komponent av resistiv type og har en NTC-temperaturmålingskomponent. Begge disse er integrert i en 8-bits svært effektiv mikrokontroller som tilbyr rask respons, anti-interferensevne og kostnadseffektivitet.

Her er noen av de viktigste tekniske spesifikasjonene til DHT11:

    • DHT11-sensoren fungerer med en spenning på 5V til 5,5V.
    • Driftsstrømmen under måling er 0,3mA og i standby-tiden er 60uA.
    • Den sender ut seriedata i digitalt signal.
    • Temperaturen til DHT11-sensoren varierer fra 0 °C til 50 °C.
    • Fuktighetsområde: 20 % til 90 %.
    • Nøyaktighet på ±1°C for temperaturmåling og ±1% for avlesninger av relativ fuktighet.

Ettersom vi har dekket en grunnleggende introduksjon til DHT11-sensor, la oss nå gå mot pinouten til DHT11.

2: DHT11 Sensor Pinout

Mesteparten av tiden kommer DHT11-sensoren i to forskjellige pin-konfigurasjoner. DHT11-sensoren som kommer i 4-pinners konfigurasjon har 3 pinner som ikke fungerer eller er merket som ingen tilkobling.

Den 3-pinners DHT11-sensormodulen kommer i tre pinner som inkluderer strøm, GND og datapin.

2.1: 3 Pins DHT11-sensor

Det gitte bildet viser 3 pin-konfigurasjoner av DHT11-sensoren.


Disse tre pinnene er:

1. Data Utgangstemperatur og fuktighet i seriedata
2. Vcc Inngangseffekt 3,5V til 5,5V
3. GND GND av kretsen

2.2: 4-pinners DHT11-sensor

Følgende bilde illustrerer 4 pins DHT11 sensormodul:


Disse 4 pinnene inkluderer:

1. Vcc Inngangseffekt 3,5V til 5,5V
2. Data Utgangstemperatur og fuktighet i seriedata
3. NC Ingen tilkobling eller ikke brukt
Fire. GND GND av kretsen

3: OLED-skjermmodul med ESP32

OLED-skjermen kommer hovedsakelig med to forskjellige kommunikasjonsprotokoller. De to protokollene er I2C og SPI. Det serielle perifere grensesnittet (SPI) er generelt raskere enn I2C, men vi foretrakk I2C fremfor SPI-protokollen da den krevde et mindre antall pinner.

Følgende bilde illustrerer ESP32-koblingsskjema med 128×64 piksler (0,96 tommer) OLED-skjerm.


Nedenfor er tilkoblingstabellen:


Når ESP32 er koblet til en OLED-skjerm, er neste trinn på listen å installere alle nødvendige biblioteker for ESP32-programmering ved hjelp av Arduino IDE.

4: Installere de nødvendige bibliotekene

Her skal vi koble to forskjellige sensorer med ESP32, så begge krever separate biblioteker for å fungere. Nå skal vi installere biblioteker for DHT11 og OLED-skjerm.

4.1: Arduino-bibliotek for DHT-sensor

Åpne Arduino IDE, gå til: Skisse>Inkluder bibliotek>Administrer biblioteker

Alternativt kan vi også åpne biblioteksjefen fra sideknappen på Arduino IDE-grensesnittet.

Søk etter DHT-biblioteket og installer den siste oppdaterte versjonen. DHT-biblioteket hjelper deg med å lese sensordata.


Etter å ha installert DHT-biblioteket, må vi installere en enhetlig sensorbibliotek av Adafruit.

4.2: Arduino-bibliotek for OLED-skjerm

Flere biblioteker er tilgjengelige i Arduino IDE for å programmere ESP32 med en OLED-skjerm. Her skal vi bruke to biblioteker fra Adafruit: SSD1306 og GFX-bibliotek.

Åpne IDE og klikk på Library Manager og søk etter OLED SSD1306-biblioteket. Installer SSD1306-biblioteket av Adafruit fra søkefeltet.

Alternativt kan man også gå til: Skisse>Inkluder bibliotek>Administrer biblioteker


Det neste biblioteket vi må installere er GFX bibliotek av Adafruit.


Vi har installert biblioteker for både OLED-skjermen og DHT11-sensoren. Nå kan vi enkelt koble begge med ESP32.

5: Grensesnitt ESP32 med DHT11-sensor og OLED

For å koble ESP32 med DHT11-sensor trenger vi en digital pin for å lese sensordata, og for å drive DHT11-sensor kan vi enten bruke 3V3-pinnen eller Vin-pinnen til ESP32.

For OLED-skjermer vil I2C-pinner SDA og SCL bli brukt. For strømforsyning kan vi bruke Vin eller en 3V3-pinne på ESP32.

5.1: Skjematisk

I det gitte bildet kan vi se det skjematiske diagrammet av ESP32 med DHT11 og for utgang brukes en OLED-skjerm. Dette bildet representerer den 3-pinners sensormodulen som har grensesnitt med ESP32. Husk å koble til en pull up-motstand på 10kΩ.


På samme måte kan 4-pinners DHT11 også kobles til, den eneste forskjellen her er 3-pinners som ikke er til nytte eller betegnes som Ingen tilkobling. Datapinnen er ved pinne 2 på sensoren.

OLED-skjermen kobles til ved hjelp av I2C SDA- og SCL-pinnene på henholdsvis D21 og D22.

5.2: Kode

Koble ESP32 til PC og åpne Arduino IDE. Last opp den gitte koden til ESP32-kortet.

#include             /*Inkluder ledningskommunikasjonsbibliotek*/
#include
#include /*OLED-skjermbibliotek*/
#include
#include             /*Temperatur- og fuktighetssensorbibliotek*/
#define SCREEN_WIDTH 128    /*OLED-skjermbredde 128 piksler*/
#define SCREEN_HEIGHT 64   /*OLED-skjermhøyde 64 piksler*/
Adafruit_SSD1306-skjerm ( SCREEN_WIDTH, SCREEN_HEIGHT, & ledning, - 1 ) ; /* SSD1306 I2C Displayinitialisering */
#define DHTPIN 4          /*Signalpinne for DHT11-sensor*/
#define DHTTYPE    DHT11
DHT dht ( DHTPIN, DHTTYPE ) ;
ugyldig oppsett ( ) {
Serial.begin ( 115200 ) ;
dht.begynn ( ) ;
hvis ( ! display.begin ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* I2C Adresse kl hvilken OLED er tilkoblet */
Serial.println ( F ( 'SSD1306-tildeling mislyktes' ) ) ;
til ( ;; ) ;
}
forsinkelse ( 2000 ) ;
display.clearDisplay ( ) ;
display.setTextColor ( HVIT ) ; /* Utgangstekstfarge hvit */
}
ugyldig sløyfe ( ) {
forsinkelse ( 5000 ) ;
float t = dht.readTemperature ( ) ; /* lese temperatur */
float h = dht.readFuktighet ( ) ; /* lese luftfuktighet */
hvis ( er en ( h ) || er en ( t ) ) {
Serial.println ( 'Kunne ikke lese fra DHT-sensor!' ) ;
}
display.clearDisplay ( ) ; /* klar OLED-skjerm før visning av lesing */
display.setTextSize ( 1 ) ; /* OLED-tekstfont størrelse */
display.setCursor ( 0 , 0 ) ;
display.print ( 'Temperatur:' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
display.print ( t ) ; /* utskriftstemperatur i Celsius */
display.print ( ' ' ) ;
display.setTextSize ( 1 ) ;
display.cp437 ( ekte ) ;
display.write ( 167 ) ;
display.setTextSize ( 2 ) ;
display.print ( 'C' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
display.print ( 'Luftfuktighet: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , Fire fem ) ;
display.print ( h ) ; /* skriver ut fuktighetsprosent */
display.print ( '%' ) ;
display.display ( ) ;
}


Koden startet med å inkludere de nødvendige bibliotekene for OLED- og DHT11-sensorer. Etter det defineres OLED-skjermdimensjonene. Deretter defineres DHT-sensortypen hvis du bruker DHT22, bytt den ut tilsvarende.

I oppsettsdelen er DHT-sensor og OLED-skjerm initialisert. OLED-skjermen er koblet til en I2C-adresse på 0x3C. I tilfelle man ønsker å sjekke I2C-adressen last opp koden gitt i denne artikkel .

Temperatur- og fuktighetsverdiene lagres inne i flytevariabelen t og h hhv. Deretter skrives begge disse verdiene ut på en OLED-skjerm.

5.3: Utgang

I utgangen kan vi se sanntidsmålt temperatur og fuktighet vist på OLED-skjermen.




Vi har fullført grensesnittet til ESP32 med DHT11-sensor og OLED-skjerm.

Konklusjon

OLED-skjermer med ESP32 kan vise flere data som leses ved hjelp av de eksterne sensorene. Her dekker denne artikkelen alle trinn for å koble ESP32 med DHT11-sensor for å måle temperaturen og fuktigheten i et rom. Etter det vises alle lesedata på I2C OLED-skjermmodulen.