Le capteur DHT11 est un capteur d'humidité et de température relativement basique, mais populaire et facile à utiliser dans des projets électroniques et d'IoT (Internet des objets). Ce capteur est abordable et peut être intégré à des microcontrôleurs tels que l'Arduino pour mesurer à la fois l'humidité relative et la température ambiante.
Voici quelques caractéristiques clés du capteur DHT11 :
- Mesure de l'humidité : Le DHT11 peut détecter l'humidité relative dans une plage de 20% à 80% avec une précision de +/- 5%. Il le fait en mesurant la résistance entre deux plaques métalliques qui réagit aux variations d'humidité.
- Mesure de la température : Il peut mesurer la température ambiante dans une plage de 0 à 50 degrés Celsius avec une précision de +/- 2 degrés Celsius.
- Sortie numérique : Le capteur émet des signaux numériques, ce qui signifie qu'il est relativement simple à utiliser avec des microcontrôleurs. Il utilise un seul fil pour envoyer à la fois les données de température et d'humidité.
Ce capteur est souvent utilisé dans des projets où une précision très élevée n'est pas nécessaire, mais où des mesures de base de température et d'humidité sont utiles, tels que les systèmes de contrôle d'environnement, les stations météorologiques domestiques, les thermostats intelligents, etc.
L'intégration du DHT11 dans un projet électronique est généralement assez simple grâce à des bibliothèques logicielles disponibles pour différentes plateformes matérielles, ce qui facilite la récupération et l'utilisation des données de température et d'humidité dans vos applications.
La carte Arduino UNO est une plateforme de développement souvent utilisée pour interagir avec divers capteurs comme le capteur DHT11. Elle dispose de plusieurs broches numériques qui peuvent être utilisées pour connecter une le capteur DHT11.
Pour connecter le capteur DHT11 à la carte Arduino UNO, voici quelques étapes générales :
1- Comprendre les spécifications du capteur DHT11 : Avant de commencer, il est essentiel de connaître les spécifications du capteur, y compris la façon dont il est alimenté (tension requise) et les broches de données (entrée/sortie).
2- Alimentation et mise à la terre : Assurez-vous de connecter correctement les broches d'alimentation (VCC) et de mise à la terre (GND) du capteur DHT11 à la carte Arduino UNO en utilisant les broches 3.3V et GND, respectivement.
3- Connexion des broches de données : Selon le type de capteur, il nécessite une connexion à une broche numérique sur la carte Arduino UNO.
4- Utilisation des bibliothèques : Pour interagir avec le capteur DHT11, vous devrez utiliser des bibliothèques spécifiques. Assurez-vous d'importer et d'utiliser les bonnes bibliothèques dans votre code Arduino pour communiquer avec le capteur.
5- Écriture du code : Une fois que vous avez connecté physiquement le capteur à la carte Arduino UNO, écrivez le code nécessaire pour lire les données du capteur DHT11. Ceci peut inclure l'initialisation du capteur, la lecture des données, et l'affichage sur l'afiicheur SSD1306.
6- Test et débogage : Téléversez votre code sur la carte Arduino et surveillez la sortie série ou l'affichage pour vérifier si les données du capteur sont lues correctement. Assurez-vous de déboguer votre code si nécessaire.
Pour afficher la température et l'humidité mesurées par le capteur DHT11 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 DHT11 :
Pour mesurer la température et l'humidité de l'environnement.
Afficheur SSD1306 :
L'afficheur SSD1306 est un écran à matrice de points (dot matrix display) largement utilisé dans les projets électroniques, notamment pour afficher des informations sur de petits écrans OLED. Le SSD1306 est le contrôleur de l'écran OLED et il est compatible avec différentes tailles d'écrans. Il est souvent utilisé avec des microcontrôleurs comme l'Arduino
L'afficheur SSD1306 est utilisé pour afficher la température et l'humidité mesurées par le capteur DHT11.
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 DHT11 et l'afficheur SSD1306 :
Pour le capteur DHT11 :
- Connecter la broche VCC du capteur DHT11 à la broche 3.3V de l'Arduino UNO
- Connecter la broche DATA du capteur DHT11 à la broche N°2 de l'Arduino UNO.
- Connecter la broche GND du capteur DHT11 à la broche GND de l'Arduino.
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 DHT11 et les afficher sur l'afficheur SSD1306, comme mentionné précédemment.
voici le code Arduino pour lire la température et l'humidité à partir du capteur DHT11 et afficher ces données sur un afficheur SSD1306 :
Pour ce code, vous aurez besoin des bibliothèques Adafruit_SSD1306 pour l'afficheur SSD1306 et DHT11 pour le capteur DHT11. Assurez-vous de les installer via le Gestionnaire de bibliothèques de l'IDE Arduino.
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 77 78 79 80 81 82 83 84 85 |
#include <Adafruit_SSD1306.h> #include <dht11.h> #define DHT11PIN 2 //OLED dht11 DHT11; float humi; float tempC; //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(1000); DHT11.read(DHT11PIN); humi = (int)DHT11.humidity; tempC = (int)DHT11.temperature; Serial.print("Humidity:"); Serial.print(humi,0); Serial.print("%"); Serial.print(" Temperature:"); Serial.print(tempC,1); Serial.print("C ~ "); display.clearDisplay(); oledDisplayHeader(); // afficher la valeur de l'humidite sur l'afficheur SSD1306 oledDisplay(2,5,28,humi,"%"); // afficher la valeur de la tempterature sur l'afficheur SSD1306 oledDisplay(2,60,28,tempC,"C"); display.display(); } // La fonction qui permet d'afficher les donnees sur l'afficheur SSD1306 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); } } |
Ce code initialise le capteur DHT11 et l'afficheur SSD1306, puis lit périodiquement la température et l'humidité du capteur. Il affiche ensuite la température et l'humidité sur l'afficheur SSD1306.
My spouse and I absolutely love your blog and find almost all of your post's to be just what I'm looking for. Do you offer guest writers to write content for you? I wouldn't mind creating a post or elaborating on many of the subjects you write about here. Again, awesome web site!
It's really a cool and useful piece of info. I am glad that you just shared this helpful info with us. Please stay us informed like this. Thank you for sharing.
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