Dhttop 10 sensore di temperatura e umidità con OLED usando Arduino Nano

Dhttop 10 sensore di temperatura e umidità con OLED usando Arduino Nano
Arduino Nano è una piccola e potente scheda di microcontrollore in grado di interagire con una vasta gamma di sensori e dispositivi. Il sensore DHT11 è un sensore comunemente usato per misurare la temperatura e l'umidità e può essere facilmente collegato a una scheda Arduino Nano usando fili jumper e una breadboard.

In questo progetto, utilizzeremo il sensore Arduino Nano e DHT11 per creare un sistema di monitoraggio della temperatura e dell'umidità. Arduino Nano leggerà i valori di temperatura e umidità da DHT11 e mostrerà su OLED.

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 Arduino Nano

4: installazione delle librerie richieste

4.1: Biblioteca Arduino per il sensore DHT

4.2: biblioteca Arduino per display OLED

5: Controlla l'indirizzo I2C display OLED in Arduino Nano

6: Interfacing Arduino Nano con sensore DHT11 e OLED

6.1: schema

6.2: codice

6.3: output

1: Introduzione al sensore DHT11

Il sensore DHT11 è un dispositivo compatto e a basso costo per misurare la temperatura e l'umidità. Arduino Nano con DHT11 viene utilizzato per la progettazione di stazioni meteorologiche portatili, sistemi HVAC e sistemi di automazione domestica.

Il sensore DHT11 è costituito da un elemento di rilevamento dell'umidità e un elemento di rilevamento della temperatura, che sono combinati su un singolo circuito integrato. Il sensore è in grado di misurare sia l'umidità e la temperatura relative, e può trasmettere questi dati tramite un segnale digitale a un microcontrollore o altro dispositivo.

Il sensore DHT11 può essere integrato e controllato utilizzando il codice Arduino. Può essere collegato a un microcontrollore o un computer a bordo singola utilizzando fili jumper e una breadboard e può essere facilmente integrato in una varietà di progetti.

Alcune importanti specifiche di DHT11:

  • La tensione operativa inizia da 3.5v a 5.5v
  • La corrente del sensore durante la misurazione dei valori è 0.3Ma e la corrente di standby è 60ua
  • Valori di uscita come segnale digitale
  • La temperatura inizia da 0 ° C a 50 ° C
  • Umidità misurata dal 20% al 90%
  • Temperatura e umidità sono entrambi a 16 bit
  • Precisione di ± 1 ° C per la misurazione della temperatura e ± 1% per le letture di umidità relativa

Ora abbiamo coperto le basi del sensore DHT11. Ora discuteremo del pinout di DHT11.

2: DHT11 Sensore Pinout

DHT11 ha due varianti, una con 4 pin e altre con 3 pin. L'unica differenza qui è che il sensore DHT11 a 4 pin ha un pin aggiuntivo senza connessione. Questo pin è etichettato come Nc e non utilizzato per alcuno scopo.

I 3 pin di DHT11 sono:

  • Pin di tensione di potenza
  • Pin GND
  • Pin del segnale di dati digitali

2.Sensore DHT11 1: 3 pin

Seguendo il pinout è di 3 pin DHT11:

1 Dati Letture della temperatura di uscita e valori di umidità
2 VCC Tensione di ingresso tra 3.5v a 5.5v
3 GND GND

2.2: Sensore DHT11 a 4 pin

Di seguito è riportato il pinout del sensore DHT11 a 4 pin:

Questi 4 pin di sensore DHT11 includono:

1 VCC Ingresso 3.5v a 5.5v
2 Dati Letture di temperatura e umidità di produzione
3 Nc Nessun pin di connessione
4 GND GND

3: Modulo di visualizzazione OLED con Arduino Nano

Il display OLED viene fornito principalmente con due diversi protocolli di comunicazione. Questi due sono i2c e SPI. Il protocollo SPI è più veloce rispetto a I2C, ma I2C è preferito e ha il vantaggio rispetto a SPI a causa di meno pin richiesti.

La seguente immagine illustra un diagramma di connessione Arduino Nano con 128 × 64 pixel (0.96 ") display OLED.

La tabella sotto mostra la configurazione di pinout di OLED con nano:

Dato che abbiamo interfacciato Arduino Nano con un display OLED. Per visualizzare i dati su uno schermo OLED dobbiamo prima installare alcune librerie necessarie.

4: installazione delle librerie richieste

Stiamo interfacciando due sensori; Uno è un display OLED e l'altro è un sensore DHT11. Entrambi i sensori hanno richiesto librerie separate per il funzionamento. Ora installeremo librerie separate per schermate DHT11 e OLED.

4.1: Biblioteca Arduino per il sensore DHT

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

Si può anche utilizzare l'Arduino Library Manager per l'installazione di librerie. Cerca la libreria del sensore DHT11 e installa la versione aggiornata. Questa libreria leggerà i dati dal sensore DHT11.

Ora installeremo il Biblioteca di sensori unificati.

Le librerie di sensori DHT11 sono installate. Successivamente, le librerie OLED devono essere installate.

4.2: biblioteca Arduino per display OLED

Ci sono un certo numero di librerie disponibili per il display OLED in IDE. Useremo la libreria Adafruit GFX e SSD1306 per display OLED.

Apri l'IDE e cerca nella libreria SSD1306 nel gestore della biblioteca:

Dopo aver installato la libreria SSD1306, installare il Gfx Biblioteca di Adafruit:

Abbiamo installato librerie per entrambi i sensori e ora possiamo caricare il codice in Arduino Nano. Ma prima è necessario controllare l'indirizzo I2C OLED.

5: Controlla l'indirizzo I2C display OLED in Arduino Nano

I2C consente a più dispositivi di essere collegati e comunicare tra loro su un'interfaccia a due fili. Ogni dispositivo I2C deve avere un indirizzo univoco, che va da 0 a 127, per assicurarsi che possa essere identificato e comunicato sulla linea I2C. Dispositivi multipli con lo stesso indirizzo non possono essere collegati sullo stesso bus i2c.

Collegare il display OLED con Arduino Nano e dopo aver selezionato la scheda e la porta in Arduino IDE Carica il codice indicato nell'articolo Scan I2C Devices in Arduino. Dopo il caricamento del codice, otterremo l'indirizzo I2C del display OLED che nel nostro caso è 0x3c:

Definiremo questo indirizzo i2c all'interno del codice Arduino.

6: Interfacing Arduino Nano con sensore DHT11 e OLED

Per l'interfaccia di Arduino Nano con DHT11, verrà utilizzato un perno digitale di Nano Board. Per alimentare il DHT11 5v Il perno della scheda nano verrà interfacciato.

Per i pin di schermo OLED SDA E SCL A A4 E A5 verranno usati i pin di Arduino Nano. Per alimentare un pin da 5v OLED di Arduino Nano verrà utilizzato.

6.1: schema

Di seguito è riportato il diagramma schematico di Arduino Nano con sensore DHT11 e per visualizzare i valori di lettura uno schermo OLED viene utilizzato. Questa immagine schematica è del sensore DHT11 a 3 pin. Il resistore pull up da 10kΩ è integrato all'uscita DHT11.

Allo stesso modo, un sensore DHT11 a 4 pin è collegato con una scheda nano. Il display OLED è collegato a pin GPIO A4 e A5 di Nano usando la comunicazione I2C. DHT11 Pin 2 è output dei dati. Il DHT11 a 4 pin ha 1 pin extra che non serve a nulla.

6.2: codice

Collega Arduino Nano e carica il codice dato:

#include /*libreria di comunicazione filo* /
#includere
#include /*OLED Adafruit Library* /
#includere
#include /*libreria sensore dht* /
#define screen_width 128 /*128 larghezza oled in pixel* /
#define screen_height 64 /*64 altezza oled in pixel* /
Display Adafruit_SSD1306 (screen_width, screen_height, & wire, -1); /*Inizializzazione del display i2c*/
#define dhtpin 4 /*dht11 pin di segnale* /
#define dhttype dht11
//#define dhttype dht22 // dht 22 (AM2302), AM2321
//#define dhttype dht21 // dht 21 (AM2301)
Dht dht (dhtpin, dhtType);
void setup ()
Seriale.Inizia (9600);
dht.inizio();
Se(!Schermo.inizio (ssd1306_switchcapvcc, 0x3c)) /*OLED I2C indirizzo* /
Seriale.println (f ("allocazione SSD1306 non riuscita"));
per(;;);

ritardo (2000);
Schermo.clearDisplay ();
Schermo.setTextColor (bianco); /*Colore del testo*/

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

Schermo.clearDisplay (); /*Cancella display*/
Schermo.setTextSize (1); /*Dimensione del carattere 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();

All'inizio del codice, abbiamo incluso le librerie di sensori OLED e DHT. La prossima dimensione dello schermo OLED è definita in pixel. Dopo quel tipo di sensore DHT viene inizializzato. Se si utilizza qualsiasi altro tipo di DHT11, rimprovera il nome del sensore di conseguenza all'interno del codice.

Next in Codice abbiamo inizializzato il sensore DHT e OLED. L'OLED è collegato all'indirizzo 0x3c I2C. L'indirizzo I2C può essere verificato utilizzando il codice in questo articolo.

Le due variabili float T E H memorizzerà rispettivamente i valori di temperatura e umidità. Lasty in codice Tutti i valori vengono visualizzati su uno schermo OLED utilizzando le funzioni della libreria GFX OLED.

6.3: output

L'output mostra i valori di temperatura e umidità in tempo reale visualizzati sullo schermo OLED:

Abbiamo completato l'interfaccia del sensore OLED e DHT11 con la scheda Arduino Nano.

Conclusione

Arduino Nano può essere integrato con più sensori. Questo articolo copre l'interfaccia del sensore OLED e DHT11 con Arduino Nano. Usando il DHT11 abbiamo misurato la temperatura e l'umidità che vengono visualizzati su OLED. Utilizzando il codice dato, è possibile programmare qualsiasi nano Arduino per visualizzare le letture dei sensori su uno schermo OLED.