ESP32 - DHT22 - Oled 0.96" - Afficher la température
Capteur DHT22
Un capteur DHT22 (ou DHT11) pour mesure de la température et de l'humidité
Pinout:
- Pin 1 = Vcc
- Pin 2 = Data
- Pin 3 = NC
- Pin 4 = GND
Alimentation:
- Alimentation: 3,3 à 6 Vcc
- Consommation maxi: 1,5 mA
- Consommation au repos: 50 µA
Plage de mesure:
- Température: -40 à +80 °C
- Humidité: 0 à 100 % RH
Précision:
- Température: ± 0,5 °C
- Humidité: ± 2 % RH
- Dimensions: 25 x 15 x 9 mm
Ecran Oled 0.96" - I2C
Module afficheur monochrome OLED 0,96 '' 128 x 64 pixels, basé sur un circuit SSD1306.
Ce module communique avec un microcontrôleur de type Arduino, Raspberry Pi, ESP32, ou compatible via le bus I2C.
- SDA (Serial Data Line) : ligne de données bidirectionnelle,
- SCL (Serial Clock Line) : ligne d'horloge de synchronisation bidirectionnelle.
Pinout
- Pin SCL (Serial Clock Line)
- Pin SDA (Serial Data Line)
- Pin Vcc
- Pin GND
- Alimentation: 3,3 ou 5 Vcc
- Consommation: 25 mA
- Interface: I2C
- Ecran: OLED 0,96 "
- Résolution: 128 x 64 pixels
- Dimensions: 27 x 27 x 11 mm
Code *.ino
- #include <Wire.h> // Communication avec les périphériques I2C
- #include <Adafruit_GFX.h> // Fonction graphique pour Oled
- #include <Adafruit_SSD1306.h> // Driver pour ssd1306
- #include <Adafruit_Sensor.h> // Drivers pour capteurs Adafruit
- #include <DHT.h> // Capteur DHT11-22 - Température - Humidité
- #define SCREEN_WIDTH 128 // OLED largeur en pixels
- #define SCREEN_HEIGHT 64 // OLED hauteur en pixels
- // Declaration SSD1306 Oled I2C (SDA, SCL pins)
- Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // SDA en D21 et SCL en D22
- #define DHTPIN 5 // DHT22 en D5
- //#define DHTTYPE DHT11 // DHT 11
- #define DHTTYPE DHT22 // DHT 22 (AM2302)
- //#define DHTTYPE DHT21 // DHT 21 (AM2301)
- DHT dht(DHTPIN, DHTTYPE); // Configuration du DHTxx
- void setup() {
- Serial.begin(115200);
- dht.begin(); // Activation du DHTxx
- if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Detection d'erreur d'adresse Oled
- Serial.println(F("SSD1306 allocation failed"));
- for(;;);
- }
- delay(2000);
- display.clearDisplay();
- display.setTextColor(WHITE); // Couleur du texte WHITE
- }
- void loop() {
- delay(5000);
- float t = dht.readTemperature(); // Lecture temperature
- float h = dht.readHumidity(); // Lecture humidité
- if (isnan(h) || isnan(t)) {
- Serial.println("Failed to read from DHT sensor!"); // Detection erreur du DHT
- }
- display.clearDisplay(); // Effacement Oled
- // Affichage temperature
- display.setTextSize(1); // Par defaut le texte est de taille normale - sans grossissement aucun
- display.setCursor(0,0); // ligne colonne
- display.print("Temperature: ");
- display.setTextSize(2); // Taille 2*1
- display.setCursor(0,10);
- display.print(t);
- display.print(" ");
- display.setTextSize(1);
- display.cp437(true); // Driver cp437 pour ° Signe de temperature Celcius
- display.write(167); // code ascii 167 = °
- display.setTextSize(2);
- display.print("C");
- // Affichage humidite
- display.setTextSize(1);
- display.setCursor(0, 35);
- display.print("Humidite: ");
- display.setTextSize(2);
- display.setCursor(0, 45);
- display.print(h);
- display.print(" %");
- display.display();
- }