Le capteur DHT22 est un capteur d'humidité et de température numérique. Il est conçu pour mesurer à la fois la température ambiante et l'humidité relative de l'air. Ce capteur est assez précis et facile à utiliser avec des microcontrôleurs comme l'Arduino en raison de sa sortie numérique.
Voici quelques caractéristiques du capteur DHT22 :
Mesure de la température : Le capteur peut mesurer la température ambiante avec une précision raisonnable (généralement ±0,5°C).
Mesure de l'humidité : En plus de la température, il mesure également l'humidité relative avec une précision acceptable (généralement ±2-5%).
Sortie numérique : Le capteur DHT22 utilise un protocole de communication numérique pour transmettre les données à un microcontrôleur comme l'Arduino. Il utilise une seule broche de données pour la communication.
Précision : Il offre une meilleure précision par rapport à son prédécesseur, le DHT11, et est souvent utilisé dans des projets où une mesure plus précise de l'humidité et de la température est nécessaire.
Gamme de mesure : Le DHT22 peut mesurer une gamme de températures assez large, généralement de -40°C à 80°C, et une gamme d'humidité de 0 à 100 %.
Il est couramment utilisé dans des applications telles que la domotique, les stations météorologiques, les contrôles environnementaux, les incubateurs, et d'autres projets où la surveillance de la température et de l'humidité est essentielle. Son interface simple en fait un choix populaire pour les amateurs et les projets de bricolage électronique.
La carte Arduino récupère la température et l'humidité mesurées par le capteur DHT22 en utilisant une bibliothèque spécifique pour le capteur DHT22. Cette bibliothèque permet à l'Arduino d'interagir avec le capteur, de lire les données qu'il fournit et de les traiter.
En général, voici les étapes pour récupérer les données de température et d'humidité à l'aide du capteur DHT22 avec une carte Arduino et les afficher sur un écran SSD1306 :
1- Connexion du capteur DHT22 à l'Arduino : Le capteur DHT22 est connecté à l'Arduino via des broches spécifiques (comme DHTDATA, VCC et GND) pour permettre la communication.
2- Utilisation de la bibliothèque du capteur DHT22 : Une bibliothèque comme "DHT.h" est ajoutée au code Arduino pour permettre la communication avec le capteur DHT22. Cette bibliothèque propose des fonctions pour lire les données du capteur.
3- Lecture des données du capteur : Le code Arduino utilise les fonctions fournies par la bibliothèque pour demander au capteur DHT22 de mesurer la température et l'humidité. Ces données sont ensuite récupérées par l'Arduino.
4- Affichage sur l'écran SSD1306 : Une autre bibliothèque spécifique pour l'écran OLED SSD1306 est utilisée pour contrôler l'affichage. Les données de température et d'humidité récupérées du capteur DHT22 sont ensuite formatées et affichées sur l'écran OLED.
5- Actualisation des données : Pour obtenir des mesures régulières, le processus de lecture des données du capteur et d'affichage sur l'écran peut être placé dans une boucle pour mettre à jour les informations régulièrement.
Le code Arduino pour cette tâche impliquerait typiquement des instructions pour initialiser les bibliothèques du capteur DHT22 et de l'écran OLED, des fonctions pour lire les données du capteur, et des commandes pour afficher ces données sur l'écran OLED. Les détails spécifiques dépendront des bibliothèques utilisées et de la configuration matérielle précise.
Pour afficher la température et l'humidité mesurées par le capteur DHT22 sur un afficheur SSD1306 à l'aide d'une carte Arduino, voici les composants nécessaires :
Arduino UNO :
La carte Arduino servira de cerveau pour contrôler et interagir avec les différents composants.
Capteur DHT22:
Pour mesurer la température et l'humidité de l'environnement.
Afficheur SSD1306 :
L'afficheur SSD1306 est utilisé pour afficher la température et l'humidité mesurées par le capteur DHT22.
Câbles de connexion :
Pour relier physiquement les composants entre eux.
Plaque d'essai (Breadboard) :
On utilise le plaque d'essai pour faciliter le câblage des différents composants.
Voici un schéma de câblage pour connecter la carte Arduino avec le capteur DHT22 et l'afficheur SSD1306 :
Pour le capteur DHT22 :
- Connecter la broche (+) du capteur DHT22 à la broche 3.3V de l'Arduino UNO
- Connecter la broche OUT du capteur DHT22 à la broche N°2 de l'Arduino UNO
- Connecter la broche (-) du capteur DHT22 à la broche GND de l'Arduino UNO
Pour l'afficheur SSD1306 :
- Connecter la broche VCC de l'afficheur SSD1306 à la broche 5V de l'Arduino.
- Connecter la broche GND de l'afficheur SSD1306 à la broche GND de l'Arduino.
- Connecter la broche SDA de l'afficheur SSD1306 à la broche A4 de l'Arduino.
- Connecter la broche SCL de l'afficheur SSD1306 à la broche A5 de l'Arduino.
Une fois que vous avez connecté correctement les composants, vous pouvez utiliser le code Arduino approprié pour lire les données du capteur DHT22 et les afficher sur l'afficheur SSD1306, comme mentionné précédemment.
Pour afficher la température et l'humidité mesurées par le capteur DHT22 sur l'afficheur SSD1306 avec une carte Arduino UNO, vous pouvez utiliser les bibliothèques correspondantes et écrire un code simple pour lire les données du capteur et les afficher sur l'écran OLED. Assurez-vous d'avoir installé les bibliothèques suivantes dans votre environnement Arduino :
dhtlib pour le capteur DHT22.
Adafruit SSD1306 pour l'afficheur OLED SSD1306.
Voici un exemple de code pour réaliser cela :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
#include <Adafruit_SSD1306.h> #include <dht.h> #define dataPin 2 // Defines pin number to which the sensor is connected dht DHT; // Creats a DHT object //OLED define #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { Serial.begin(9600); //For OLED I2C if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64 Serial.println(F("SSD1306 allocation failed")); for(;;); } display.display(); //Display logo delay(1000); display.clearDisplay(); } void loop() { delay(2000); int readData = DHT.read22(dataPin); // DHT22/AM2302 float t = DHT.temperature; // Gets the values of the temperature float h = DHT.humidity; // Gets the values of the humidity display.clearDisplay(); oledDisplayHeader(); // Afficher la temperature oledDisplay(2,5,28,h,"%"); // Afficher l'humidite oledDisplay(2,60,28,t,"C"); display.display(); } void oledDisplayHeader(){ display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.print("Humidity"); display.setCursor(60, 0); display.print("Temperature"); } void oledDisplay(int size, int x,int y, float value, String unit){ int charLen=12; int xo=x+charLen*3.2; int xunit=x+charLen*3.6; int xval = x; display.setTextSize(size); display.setTextColor(WHITE); if (unit=="%"){ display.setCursor(x, y); display.print(value,0); display.print(unit); } else { if (value>99){ xval=x; } else { xval=x+charLen; } display.setCursor(xval, y); display.print(value,0); display.drawCircle(xo, y+2, 2, WHITE); // print degree symbols ( ) display.setCursor(xunit, y); display.print(unit); } } |
Assurez-vous d'avoir connecté le capteur DHT22 à la broche 2 de votre Arduino UNO et l'afficheur OLED SSD1306 en utilisant les broches SDA et SCL pour la communication I2C.
Ce code initialise l'écran OLED, lit les données du capteur DHT22 et les affiche sur l'écran OLED en boucle dans la fonction loop(). Les données de température et d'humidité sont mises à jour toutes les deux secondes (delay(2000)).
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info