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:
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.