ESPTOP 10 DHttop 10 Letture di temperatura e umidità in OLED utilizzando Arduino IDE

ESPTOP 10 DHttop 10 Letture di temperatura e umidità in OLED utilizzando Arduino IDE

ESP32 è una scheda microcontrollore avanzata che può eseguire più istruzioni per generare output. Una schermata OLED viene utilizzata per visualizzare diversi tipi di dati. Usando ESP32 con sensore DHT11 possiamo prendere letture di temperatura e umidità. Tutti questi dati possono essere rappresentati su un display OLED. Questo tutorial copre tutti i passaggi necessari per interfacciarsi questi sensori con ESP32.

Questo tutorial copre i seguenti contenuti:

1: Introduzione al sensore DHT11

2: DHT11 Sensore Pinout

2.Sensore DHT11 1: 3 pin

2.2: Sensore DHT11 a 4 pin

3: Modulo di visualizzazione OLED con ESP32

4: installazione delle librerie richieste

4.1: Biblioteca Arduino per il sensore DHT

4.2: biblioteca Arduino per display OLED

5: interfacciano ESP32 con sensore DHT11

5.1: schema

5.2: codice

5.3: output

1: Introduzione al sensore DHT11

DHT11 è uno dei sensori di monitoraggio di temperatura e umidità comunemente usati nella comunità elettronica. È più preciso nel dare temperatura e umidità relativa. Emette un segnale digitale calibrato che spinge in due diverse letture di temperatura e umidità.

Utilizza la tecnica di acquisizione del segnale digitale che fornisce affidabilità e stabilità. Il sensore DHT11 contiene un componente di misurazione dell'umidità di tipo resistivo e presenta un componente di misurazione della temperatura NTC. Entrambi sono integrati in un microcontrollore altamente efficiente a 8 bit che offre una risposta rapida, capacità anti-interferenza e efficacia in termini di costi.

Ecco alcune principali specifiche tecniche di DHT11:

    • Il sensore DHT11 funziona con una tensione da 5 V a 5.5v.
    • La corrente operativa durante la misurazione è 0.3Ma e durante il tempo di standby è 60ua.
    • Output Dati seriali nel segnale digitale.
    • La temperatura del sensore DHT11 varia da 0 ° C a 50 ° C.
    • Range di umidità: dal 20% al 90%.
    • Precisione di ± 1 ° C per la misurazione della temperatura e ± 1% per le letture di umidità relativa.

Dato che abbiamo coperto un'introduzione di base al sensore DHT11 Ora ci muoviamo verso la pinout di DHT11.

2: DHT11 Sensore Pinout

Il più delle volte il sensore DHT11 è disponibile in due diverse configurazioni PIN. Il sensore DHT11 che viene fornito in una configurazione a 4 pin ha 3 pin non funzionano o etichettati come nessuna connessione.

Il modulo sensore DHT11 a 3 pin è disponibile in tre pin che includono potenza, GND e pin di dati.

Sensore DHT11 1: 3 pin

L'immagine data mostra le configurazioni a 3 pin del sensore DHT11.


Questi tre pin sono:

1. Dati Temperatura e umidità di uscita nei dati seriali
2. VCC Potenza di ingresso 3.5v a 5.5v
3. GND GND di circuito

2: Sensore DHT11 a 4 pin

La seguente immagine illustra il modulo sensore DHT11 a 4 pin:


Questi 4 pin includono:

1. VCC Potenza di ingresso 3.5v a 5.5v
2. Dati Temperatura e umidità di uscita nei dati seriali
3. Nc Nessuna connessione o non utilizzata
4. GND GND di circuito

3: Modulo di visualizzazione OLED con ESP32

Il display OLED viene fornito principalmente con due diversi protocolli di comunicazione. I due protocolli sono I2C e SPI. L'interfaccia periferica seriale (SPI) è generalmente più veloce di I2C, ma abbiamo preferito il protocollo I2C rispetto al protocollo SPI in quanto richiedeva un numero inferiore di pin.

La seguente immagine illustra il diagramma di connessione ESP32 con 128 × 64 pixel (0.96 ") display OLED.


Di seguito è riportata la tabella di connessione:


Una volta che ESP32 è interfacciato con un display OLED, il passaggio successivo nell'elenco è installare tutte le librerie richieste per la programmazione ESP32 utilizzando Arduino IDE.

4: installazione delle librerie richieste

Qui interfacciamo due diversi sensori con ESP32, quindi entrambi richiedono librerie separate per operare. Ora installeremo le librerie per DHT11 e OLED.

1: Biblioteca Arduino per il sensore DHT

Open Arduino IDE, vai a: Schizzo> Includi la libreria> Gestisci le biblioteche

In alternativa, possiamo anche aprire il gestore della libreria dal pulsante laterale sull'interfaccia Arduino IDE.

Cerca la libreria DHT e installa l'ultima versione aggiornata. La libreria DHT aiuterà a leggere i dati del sensore.


Dopo aver installato la libreria DHT dopo, dobbiamo installare un Biblioteca di sensori unificati di Adafruit.

2: biblioteca Arduino per display OLED

Librarie multiple sono disponibili in Arduino IDE per programmare ESP32 con un display OLED. Qui useremo due librerie di Adafruit: SSD1306 e GFX Library.

Apri IDE e fai clic su Library Manager e cerca la libreria SSD1306 OLED. Installa la libreria SSD1306 di Adafruit dalla barra di ricerca.

In alternativa, si può anche andare a: Schizzo> Includi la libreria> Gestisci le biblioteche


La prossima libreria che dobbiamo installare è il Gfx Biblioteca di Adafruit.


Abbiamo installato librerie sia per il display OLED che per il sensore DHT11. Ora possiamo facilmente interfacciarsi con ESP32.

5: Interfacing ESP32 con sensore DHT11 e OLED

Per l'interfaccia ESP32 con sensore DHT11 abbiamo bisogno di un pin digitale per la lettura dei dati del sensore e per alimentare il sensore DHT11 possiamo utilizzare il pin 3v3 o il pin Vin di ESP32.

Per il display OLED verrà utilizzato i pin i2c SDA e SCL. Per l'alimentazione possiamo usare VIN o un pin 3v3 di ESP32.

1: schema

Nell'immagine data possiamo vedere il diagramma schematico di ESP32 con DHT11 e per l'uscita viene utilizzata una schermata OLED. Questa immagine rappresenta l'interfaccia del modulo a 3 pin con ESP32. Ricorda di collegare un resistore pull -up di 10kΩ.


Allo stesso modo, può anche essere collegato il DHT11 a 4 pin, l'unica differenza qui è il pin a 3 che non è utile o definito come nessuna connessione. Il pin di dati è al pin 2 del sensore.

Il display OLED è collegato utilizzando rispettivamente i pin SDA e SCL I2C a D21 e D22.

2: codice

Connetti ESP32 con PC e Apri Arduino IDE. Carica il codice dato sulla scheda ESP32.

#include /*include la libreria di comunicazione filo* /
#includere
#include /*libreria di visualizzazione OLED* /
#includere
#include /*Libreria del sensore di temperatura e umidità* /
#define screen_width 128 /*larghezza schermo OLED 128 pixel* /
#define screen_height 64 /*OLED Schermate altezza 64 pixel* /
Display Adafruit_SSD1306 (screen_width, screen_height, & wire, -1); /*Ssd1306 i2c Inizializzazione del display*/
#define dhtpin 4 /*pin di segnale per sensore dht11* /
#define dhttype dht11
Dht dht (dhtpin, dhtType);
void setup ()
Seriale.Inizia (115200);
dht.inizio();
Se(!Schermo.inizio (ssd1306_switchcapvcc, 0x3c)) /*i2c Indirizzo a cui OLED è connesso* /
Seriale.println (f ("allocazione SSD1306 non riuscita"));
per(;;);

ritardo (2000);
Schermo.clearDisplay ();
Schermo.setTextColor (bianco); / *Testo di output Colore bianco */

void loop ()
ritardo (5000);
float t = dht.readtemperature (); /*Leggi la temperatura*/
float h = dht.readhumidità (); /*Leggi umidità*/
if (isnan (h) || isnan (t))
Seriale.println ("Impossibile leggere dal sensore DHT!");

Schermo.clearDisplay (); /*Cancella display OLED prima di visualizzare la lettura*/
Schermo.setTextSize (1); /*Dimensione del carattere di testo oled*/
Schermo.setCursor (0,0);
Schermo.stampa ("temperatura:");
Schermo.setTextSize (2);
Schermo.setCursor (0,10);
Schermo.print (t); /*Stampa temperatura in Celsius*/
Schermo.stampa(" ");
Schermo.setTextSize (1);
Schermo.CP437 (vero);
Schermo.Scrivi (167);
Schermo.setTextSize (2);
Schermo.print ("c");
Schermo.setTextSize (1);
Schermo.setCursor (0, 35);
Schermo.stampa ("umidità:");
Schermo.setTextSize (2);
Schermo.setCursor (0, 45);
Schermo.stampa (h); /*stampa l'umidità percentuale*/
Schermo.stampa(" %");
Schermo.Schermo();


Codice avviato includendo le librerie necessarie per i sensori OLED e DHT11. Dopo che le dimensioni del display OLED sono definite. Successivamente il tipo di sensore DHT è definito nel caso in cui si utilizza Dht22 sostituirlo di conseguenza.

Nella parte di setup il sensore DHT e il display OLED vengono inizializzati. La schermata OLED è collegata a un indirizzo I2C di 0x3C. Nel caso in cui si voglia controllare l'indirizzo I2C caricare il codice indicato in questo articolo.

I valori di temperatura e umidità sono memorizzati all'interno della variabile float T E H rispettivamente. Dopodiché entrambi questi valori sono stampati su un display OLED.

3: output

Nell'output possiamo vedere la temperatura e l'umidità misurate in tempo reale visualizzate sullo schermo OLED.



Abbiamo completato con successo l'interfaccia di ESP32 con sensore DHT11 e schermo OLED.

Conclusione

I display OLED con ESP32 possono mostrare più dati che vengono letti utilizzando i sensori esterni. Qui questo articolo copre tutti i passaggi per l'interfaccia ESP32 con il sensore DHT11 per misurare la temperatura e l'umidità di una stanza. Dopodiché tutti i dati di lettura vengono visualizzati sul modulo di visualizzazione OLED I2C.