Esptop 10 dhttop 10 Temperatur- og fuktighetsavlesninger i OLED -skjerm ved bruk av Arduino IDE

Esptop 10 dhttop 10 Temperatur- og fuktighetsavlesninger i OLED -skjerm ved bruk av Arduino IDE

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

Denne opplæringen dekker etter innhold:

1: Introduksjon til DHT11 -sensor

2: DHT11 Sensor Pinout

2.1: 3 -pin DHT11 -sensor

2.2: 4 Pin 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: Output

1: Introduksjon til DHT11 -sensor

DHT11 er en av de ofte brukte temperatur- og fuktighetsovervåkningssensorene i elektronikksamfunnet. Det er mer presist i å gi temperatur og relativ fuktighet. Det gir ut et kalibrert digitalt signal som spytter ut i to forskjellige avlesninger av temperatur og fuktighet.

Den bruker den digitale signal-anskaffelsesteknikken som gir pålitelighet og stabilitet. DHT11-sensoren inneholder en målingskomponent av resistiv type og har en målekomponent i NTC-temperatur. Begge disse er integrert i en 8-biters meget effektiv mikrokontroller som tilbyr rask respons, anti-interferensevne og kostnadseffektivitet.

Her er noen viktigste tekniske spesifikasjoner for DHT11:

    • DHT11 -sensoren opererer med en spenning på 5V til 5.5v.
    • Driftsstrøm mens måling er 0.3MA og i standby -tiden er 60UA.
    • Den sender ut seriedata i digitalt signal.
    • Temperaturen på DHT11 -sensoren varierer fra 0 ° C til 50 ° C.
    • Fuktighetsområdet: 20% til 90%.
    • Nøyaktighet på ± 1 ° C for temperaturmåling og ± 1% for relativ fuktighetsavlesning.

Som vi har dekket en grunnleggende introduksjon til DHT11 -sensor, la oss nå gå mot pinout av DHT11.

2: DHT11 Sensor Pinout

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

3 -Pin DHT11 sensordodulen kommer i tre pinner som inkluderer kraft, GND og datapinne.

1: 3 -pin DHT11 -sensor

Gitt bilde viser 3 -pinners konfigurasjoner av DHT11 -sensoren.


Disse tre pinnene er:

1. Data Utgangstemperatur og fuktighet i seriedata
2. VCC Inngangskraft 3.5v til 5.5v
3. GND GND av krets

2: 4 Pin DHT11 -sensor

Følgende bilde illustrerer 4 -pinners DHT11 sensordodul:


Disse 4 pinnene inkluderer:

1. VCC Inngangskraft 3.5v til 5.5v
2. Data Utgangstemperatur og fuktighet i seriedata
3. NC Ingen tilkobling eller ikke brukt
4. GND GND av krets

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 det krevde et mindre antall pinner.

Følgende bilde illustrerer ESP32 tilkoblingsdiagram med 128 × 64 piksler (0.96 ") OLED -skjerm.


Nedenfor er tilkoblingstabellen:


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

4: Installere de nødvendige bibliotekene

Her skal vi grensesnitt to forskjellige sensorer med ESP32, så begge krever separate biblioteker for å betjene. Nå vil vi installere biblioteker for DHT11 og OLED Display.

1: Arduino -bibliotek for DHT -sensor

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

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

Søk etter DHT -biblioteket og installer den siste oppdaterte versjonen. DHT -biblioteket vil bidra til å lese sensordata.


Etter å ha installert DHT -biblioteket neste gang må vi installere en Unified Sensor Library av Adafruit.

2: Arduino -bibliotek for OLED -skjerm

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

Å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


Neste bibliotek vi må installere er GFX Bibliotek av Adafruit.


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

5: Grensesnitt ESP32 med DHT11 -sensor og OLED

For grensesnitt ESP32 med DHT11 -sensor trenger vi en digital pinne for lesesensordata og for å drive DHT11 -sensor, vi kan enten bruke 3V3 -pinnen eller VIN -pinnen til ESP32.

For OLED -skjerm I2C -pinner vil SDA og SCL bli brukt. For å slå kan vi bruke VIN eller en 3V3 -pin av ESP32.

1: Skjematisk

I det gitte bildet kan vi se det skjematiske diagrammet til ESP32 med DHT11 og for utgang en OLED -skjerm brukes. Dette bildet representerer 3-pinners sensormodulgrensesnitt med ESP32. Husk å koble en opptreden motstand på 10KΩ.


Tilsvarende kan 4 -pinners DHT11 også kobles til, den eneste forskjellen her er 3 -pinnen som ikke er til nytte eller betegnet som ingen forbindelse. Datapålen er på pinne 2 på sensoren.

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

2: Kode

Koble til ESP32 med PC og Open Arduino IDE. Last opp den gitte koden til ESP32 -styret.

#include /*Inkluder ledningskommunikasjonsbibliotek* /
#inkludere
#include /*OLED Display Library* /
#inkludere
#include /*Temperatur og fuktighetssensorbibliotek* /
#Define Screen_Width 128 /*OLED Screen Width 128 Pixels* /
#defineskjerm_height 64 /*OLED Screen Høyde 64 piksler* /
Adafruit_ssd1306 display (screen_width, screen_height, & wire, -1); /*SSD1306 I2C Display Initialisering*/
#Define DHTPIN 4 /*Signal Pin for DHT11 -sensor* /
#Define DHTType DHT11
Dht dht (dhtpin, dhttype);
void setup ()
Serie.Begin (115200);
dht.begynne();
hvis(!vise.Begynn (SSD1306_switchcapvcc, 0x3c))) /*i2c adresse som OLED er tilkoblet* /
Serie.Println (F ("SSD1306 tildeling mislyktes"));
til(;;);

forsinkelse (2000);
vise.clearDisplay ();
vise.setTextColor (hvit); / *Output tekstfarge hvit */

void loop ()
forsinkelse (5000);
FLOAT T = DHT.readTemperature (); /*Les temperatur*/
FLOAT H = DHT.readhumidity (); /*Les luftfuktighet*/
if (isnan (h) || isnan (t))
Serie.Println ("Kunne ikke lese fra DHT -sensor!");

vise.clearDisplay (); /*Fjern OLED -skjerm før du viser lesing*/
vise.SettExtSize (1); /*OLED -tekstfontstørrelse*/
vise.setcursor (0,0);
vise.print ("temperatur:");
vise.SettExtSize (2);
vise.setcursor (0,10);
vise.trykk (t); /*Skriv ut temperatur i Celsius*/
vise.skrive ut(" ");
vise.SettExtSize (1);
vise.CP437 (True);
vise.skriv (167);
vise.SettExtSize (2);
vise.print ("c");
vise.SettExtSize (1);
vise.setcursor (0, 35);
vise.trykk ("Fuktighet:");
vise.SettExtSize (2);
vise.setcursor (0, 45);
vise.trykk (h); /*Skriver ut fuktighetsprosent*/
vise.skrive ut(" %");
vise.vise();


Kode startet med å inkludere de nødvendige bibliotekene for OLED- og DHT11 -sensorer. Etter det er OLED -skjermdimensjoner definert. Deretter er DHT -sensortypen definert i tilfelle hvis du bruker DHT22, erstatt den deretter.

I oppsettet er DHT -sensor og OLED -skjerm initialisert. OLED -skjermen er koblet til en I2C -adresse på 0x3c. I tilfelle man vil sjekke I2C -adresse, last opp koden gitt i denne artikkelen.

Temperatur- og fuktighetsverdiene lagres inne i floatvariabelen t og h henholdsvis. Etter det er begge disse verdiene skrevet ut på en OLED -skjerm.

3: Output

I utgangen kan vi se den sanntidsmålte temperaturen og fuktigheten som vises på OLED -skjermen.



Vi har fullført grensesnitt 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 å grensesnitt ESP32 med DHT11 -sensor for å måle temperaturen og fuktigheten i et rom. Etter det vises alle lesedataene på I2C OLED -skjermmodulen.