ESP32 - DHT11 - OLED

Deze tutorial laat u zien hoe u de temperatuur en luchtvochtigheid leest met het DHT11 module en deze weergeeft op een OLED-scherm.

Over OLED scherm en DHT11 Temperatuur en Luchtvochtigheid Sensor

Als u niet bekend bent met OLED schermen en de DHT11 temperatuur en luchtvochtigheid sensor (pinout, werking, programmeren ...), leer er meer over in de volgende tutorials:

Bedradingsschema

ESP32 DHT11 module OLED Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.

ESP32 Code - DHT11 Sensor - OLED

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-dht11-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <DHT.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define DHT11_PIN 2 // The ESP32 pin GPIO23 connected to DHT11 sensor Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C DHT dht11(DHT11_PIN, DHT11); String temperature; String humidity; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true) ; } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(3); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display dht11.begin(); // initialize DHT11 the temperature and humidity sensor temperature.reserve(10); // to avoid fragmenting memory when using String humidity.reserve(10); // to avoid fragmenting memory when using String } void loop() { float humi = dht11.readHumidity(); // read humidity float tempC = dht11.readTemperature(); // read temperature // check if any reads failed if (isnan(humi) || isnan(tempC)) { temperature = "Failed"; humidity = "Failed"; } else { temperature = String(tempC, 1); // one decimal places temperature += char(247); // degree character temperature += "C"; humidity = String(humi, 1); // one decimal places humidity += "%"; } Serial.print(tempC); // print to Serial Monitor Serial.print("°C | " ); // print to Serial Monitor Serial.print(humi); // print to Serial Monitor Serial.println("%"); // print to Serial Monitor oledDisplayCenter(temperature, humidity); // display temperature and humidity on OLED } void oledDisplayCenter(String temperature, String humidity) { int16_t x1; int16_t y1; uint16_t width_T; uint16_t height_T; uint16_t width_H; uint16_t height_H; oled.getTextBounds(temperature, 0, 0, &x1, &y1, &width_T, &height_T); oled.getTextBounds(temperature, 0, 0, &x1, &y1, &width_H, &height_H); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width_T) / 2, SCREEN_HEIGHT / 2 - height_T - 5); oled.println(temperature); // text to display oled.setCursor((SCREEN_WIDTH - width_H) / 2, SCREEN_HEIGHT / 2 + 5); oled.println(humidity); // text to display oled.display(); }

Snelle Stappen

  • Als u voor het eerst ESP32 gebruikt, bekijk dan hoe u de omgeving voor ESP32 instelt in Arduino IDE.
  • Maak de bedrading volgens de afbeelding hierboven.
  • Verbind de ESP32 board met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en COM-poort.
  • Klik op het Libraries icoon in de linker zijbalk van Arduino IDE.
  • Zoek op “SSD1306”, en vind de SSD1306 bibliotheek van Adafruit.
  • Klik op de knop Install om de bibliotheek te installeren.
ESP32 OLED bibliotheek
  • Er wordt gevraagd om enkele aanvullende bibliotheekafhankelijkheden te installeren.
  • Klik op Install All om alle afhankelijkheden te installeren.
ESP32 Adafruit GFX sensor bibliotheek
  • Zoek op “DHT”, en vind de DHT sensor bibliotheek van Adafruit.
  • Klik op Install om de bibliotheek te installeren.
ESP32 DHT sensor bibliotheek
  • Er wordt gevraagd om enkele aanvullende bibliotheekafhankelijkheden te installeren.
  • Klik op Install All om alle afhankelijkheden te installeren.
ESP32 Adafruit Unified sensor bibliotheek
  • Kopieer de bovenstaande code en open deze in Arduino IDE.
  • Klik op de knop Upload in Arduino IDE om de code naar ESP32 te uploaden.
  • Plaats de sensor in warm en koud water, of houd de sensor in uw hand.
  • Bekijk het resultaat op het OLED-scherm en in de Seriële Monitor.

※ Notiz:

De bovenstaande code centreert automatisch horizontaal en verticaal de tekst op het OLED-scherm.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!