Lectures de température et d'humidité ESP32 DHT11 sur l'écran OLED à l'aide de l'IDE Arduino

Lectures De Temperature Et D Humidite Esp32 Dht11 Sur L Ecran Oled A L Aide De L Ide Arduino



ESP32 est une carte microcontrôleur avancée qui peut exécuter plusieurs instructions pour générer des sorties. Un écran OLED est utilisé pour afficher différents types de données. En utilisant ESP32 avec capteur DHT11, nous pouvons prendre des mesures de température et d'humidité. Toutes ces données peuvent être représentées sur un écran OLED. Ce tutoriel couvre toutes les étapes nécessaires pour interfacer ces capteurs avec ESP32.

Ce tutoriel couvre le contenu suivant :







1 : Introduction au capteur DHT11



2 : Brochage du capteur DHT11



2.1 : Capteur DHT11 à 3 broches





2.2 : Capteur DHT11 à 4 broches

3 : Module d'affichage OLED avec ESP32



4 : Installation des bibliothèques requises

4.1 : Bibliothèque Arduino pour capteur DHT

4.2 : Bibliothèque Arduino pour écran OLED

5 : Interfaçage ESP32 avec capteur DHT11

5.1 : Schéma

5.2 : Coder

5.3 : Sortie

1 : Introduction au capteur DHT11

Le DHT11 est l'un des capteurs de surveillance de la température et de l'humidité couramment utilisés dans la communauté électronique. Il est plus précis en donnant la température et l'humidité relative. Il produit un signal numérique calibré qui crache en deux lectures différentes de température et d'humidité.

Il utilise la technique d'acquisition de signal numérique qui donne fiabilité et stabilité. Le capteur DHT11 contient un composant de mesure d'humidité de type résistif et dispose d'un composant de mesure de température NTC. Ces deux éléments sont intégrés à un microcontrôleur 8 bits hautement efficace qui offre une réponse rapide, une capacité anti-interférence et une rentabilité.

Voici quelques spécifications techniques principales de DHT11 :

    • Le capteur DHT11 fonctionne à une tension de 5V à 5,5V.
    • Le courant de fonctionnement pendant la mesure est de 0,3 mA et pendant le temps de veille est de 60 uA.
    • Il produit des données série en signal numérique.
    • Plage de température du capteur DHT11 de 0°C à 50°C.
    • Plage d'humidité : 20 % à 90 %.
    • Précision de ±1°C pour la mesure de température et de ±1% pour les lectures d'humidité relative.

Comme nous avons couvert une introduction de base au capteur DHT11, passons maintenant au brochage du DHT11.

2 : Brochage du capteur DHT11

La plupart du temps, le capteur DHT11 est disponible en deux configurations de broches différentes. Le capteur DHT11 qui est livré dans une configuration à 4 broches a 3 broches qui ne fonctionnent pas ou étiquetées comme sans connexion.

Le module de capteur DHT11 à 3 broches est disponible en trois broches qui incluent l'alimentation, la masse et la broche de données.

2.1 : Capteur DHT11 à 3 broches

L'image donnée montre les configurations à 3 broches du capteur DHT11.


Ces trois broches sont :

1. Données Température et humidité de sortie dans les données série
2. Vcc Puissance d'entrée 3.5V à 5.5V
3. Terre GND du circuit

2.2 : Capteur DHT11 à 4 broches

L'image suivante illustre le module de capteur DHT11 à 4 broches :


Ces 4 broches comprennent :

1. Vcc Puissance d'entrée 3.5V à 5.5V
2. Données Température et humidité de sortie dans les données série
3. NC Pas de connexion ou non utilisé
Quatre. Terre GND du circuit

3 : Module d'affichage OLED avec ESP32

L'écran OLED est principalement livré avec deux protocoles de communication différents. Les deux protocoles sont I2C et SPI. L'interface périphérique série (SPI) est généralement plus rapide que I2C, mais nous avons préféré I2C au protocole SPI car il nécessitait un plus petit nombre de broches.

L'image suivante illustre le schéma de connexion ESP32 avec un écran OLED de 128 × 64 pixels (0,96 '').


Ci-dessous le tableau des connexions :


Une fois que l'ESP32 est interfacé avec un écran OLED, l'étape suivante de la liste consiste à installer toutes les bibliothèques requises pour la programmation ESP32 à l'aide de l'IDE Arduino.

4 : Installation des bibliothèques requises

Ici, nous allons interfacer deux capteurs différents avec ESP32, les deux nécessitent donc des bibliothèques distinctes pour fonctionner. Nous allons maintenant installer des bibliothèques pour l'affichage DHT11 et OLED.

4.1 : Bibliothèque Arduino pour capteur DHT

Ouvrez l'IDE Arduino, accédez à : Esquisse>Inclure la bibliothèque>Gérer les bibliothèques

Alternativement, nous pouvons également ouvrir le gestionnaire de bibliothèque à partir du bouton latéral de l'interface IDE Arduino.

Recherchez la bibliothèque DHT et installez la dernière version mise à jour. La bibliothèque DHT aidera à lire les données du capteur.


Après avoir installé la bibliothèque DHT, nous devons installer un bibliothèque de capteurs unifiée par Adafruit.

4.2 : Bibliothèque Arduino pour écran OLED

Plusieurs bibliothèques sont disponibles dans Arduino IDE pour programmer ESP32 avec un écran OLED. Ici, nous allons utiliser deux bibliothèques d'Adafruit : SSD1306 et la bibliothèque GFX.

Ouvrez IDE et cliquez sur Gestionnaire de bibliothèque et recherchez la bibliothèque OLED SSD1306. Installez la bibliothèque SSD1306 d'Adafruit à partir de la barre de recherche.

Alternativement, on peut aussi aller à : Esquisse>Inclure la bibliothèque>Gérer les bibliothèques


La prochaine bibliothèque que nous devons installer est la FX bibliothèque par Adafruit.


Nous avons installé des bibliothèques pour l'écran OLED et le capteur DHT11. Maintenant, nous pouvons facilement interfacer les deux avec ESP32.

5 : Interfaçage ESP32 avec capteur DHT11 et OLED

Pour interfacer ESP32 avec le capteur DHT11, nous avons besoin d'une broche numérique pour lire les données du capteur et pour alimenter le capteur DHT11, nous pouvons utiliser la broche 3V3 ou la broche Vin de l'ESP32.

Pour l'affichage OLED, les broches I2C SDA et SCL seront utilisées. Pour alimenter, nous pouvons utiliser Vin ou une broche 3V3 d'ESP32.

5.1 : Schéma

Dans l'image donnée, nous pouvons voir le schéma de principe de ESP32 avec DHT11 et pour la sortie, un écran OLED est utilisé. Cette image représente le module de capteur à 3 broches s'interfaçant avec ESP32. N'oubliez pas de connecter une résistance pull up de 10kΩ.


De même, le DHT11 à 4 broches peut également être connecté, la seule différence ici est la broche à 3 broches qui n'est d'aucune utilité ou appelée Aucune connexion. La broche de données est à la broche 2 du capteur.

L'écran OLED est connecté à l'aide des broches I2C SDA et SCL à D21 et D22 respectivement.

5.2 : Coder

Connectez ESP32 au PC et ouvrez l'IDE Arduino. Téléchargez le code donné sur la carte ESP32.

#include             /*Inclure la bibliothèque de communication filaire*/
#include
#include /*Bibliothèque d'affichage OLED*/
#include
#include             /*Bibliothèque de capteurs de température et d'humidité*/
#define SCREEN_WIDTH 128    /*Largeur de l'écran OLED 128 pixels*/
#define SCREEN_HEIGHT 64   /*Hauteur de l'écran OLED 64 pixels*/
Affichage Adafruit_SSD1306 ( SCREEN_WIDTH, SCREEN_HEIGHT, & Fil, - 1 ) ; /* Initialisation de l'affichage SSD1306 I2C */
#define DHTPIN 4          /*Broche de signal pour capteur DHT11*/
#define DHTTYPE    DHT11
DHT dht ( DHTPIN, DHTTYPE ) ;
void setup ( ) {
Serial.begin ( 115200 ) ;
dht.begin ( ) ;
si ( ! afficher.commencer ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* Adresse I2C à lequel OLED est connecté */
Serial.println ( F ( 'Échec de l'attribution du SSD1306' ) ) ;
pour ( ;; ) ;
}
retard ( 2000 ) ;
display.clearDisplay ( ) ;
display.setTextColor ( BLANCHE ) ; /* Couleur du texte de sortie blanc */
}
boucle vide ( ) {
retard ( 5000 ) ;
float t = dht.readTemperature ( ) ; /* lire Température */
float h = dht.readHumidité ( ) ; /* lire humidité */
si ( est un ( h ) || est un ( t ) ) {
Serial.println ( 'Échec de la lecture du capteur DHT !' ) ;
}
display.clearDisplay ( ) ; /* dégager Affichage OLED avant d'afficher la lecture */
display.setTextSize ( 1 ) ; /* Police de texte OLED Taille */
display.setCursor ( 0 , 0 ) ;
afficher.imprimer ( 'Température: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , dix ) ;
afficher.imprimer ( t ) ; /* température d'impression dans Celsius */
afficher.imprimer ( ' ' ) ;
display.setTextSize ( 1 ) ;
display.cp437 ( vrai ) ;
afficher.écrire ( 167 ) ;
display.setTextSize ( 2 ) ;
afficher.imprimer ( 'C' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
afficher.imprimer ( 'Humidité: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , Quatre cinq ) ;
afficher.imprimer ( h ) ; /* imprime le pourcentage d'humidité */
afficher.imprimer ( '%' ) ;
affichage.affichage ( ) ;
}


Le code a commencé par inclure les bibliothèques nécessaires pour les capteurs OLED et DHT11. Après cela, les dimensions de l'écran OLED sont définies. Ensuite, le type de capteur DHT est défini au cas où vous utilisez DHT22, remplacez-le en conséquence.

Dans la partie configuration, le capteur DHT et l'affichage OLED sont initialisés. L'écran OLED est connecté à une adresse I2C de 0x3C. Si vous souhaitez vérifier l'adresse I2C, téléchargez le code indiqué dans ce article .

Les valeurs de température et d'humidité sont stockées dans la variable flottante t et h respectivement. Après cela, ces deux valeurs sont imprimées sur un écran OLED.

5.3 : Sortie

Dans la sortie, nous pouvons voir la température et l'humidité mesurées en temps réel affichées sur l'écran OLED.




Nous avons terminé avec succès l'interfaçage de l'ESP32 avec le capteur DHT11 et l'écran OLED.

Conclusion

Les écrans OLED avec ESP32 peuvent afficher plusieurs données lues à l'aide des capteurs externes. Ici, cet article couvre toutes les étapes pour interfacer ESP32 avec le capteur DHT11 pour mesurer la température et l'humidité d'une pièce. Après cela, toutes les données lues sont affichées sur le module d'affichage I2C OLED.