Arduino UNO R4 - DHT11 - OLED

In deze gids leren we hoe we temperatuur en vochtigheid kunnen meten met een DHT11-module en deze kunnen weergeven op een OLED-scherm.

Arduino UNO R4 DHT11 temperatuur vochtigheid sensor module OLED display

Over OLED display en DHT11 Temperatuur Vochtigheid Sensor

Leer over OLED displays en DHT11 temperatuur vochtigheid sensors (hun installatie, functies en programmering) in de onderstaande tutorials:

Bedradingsschema

Arduino UNO R4 DHT11 temperatuur vochtigheid sensor module OLED Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Uno R4 en andere componenten van stroom te voorzien.

Arduino UNO R4 Code - DHT11 Sensor - OLED

/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-dht11-temperature-humidity-sensor-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 Arduino UNO R4 pin 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

Volg deze instructies stap voor stap:

  • Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg dan de tutorial over het instellen van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • Verbind het Arduino Uno R4 bord met de DHT11 temperatuur- en vochtigheid sensormodule en OLED display volgens het bijgeleverde schema.
  • Verbind het Arduino Uno R4 bord met uw computer via een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste Arduino Uno R4 bord (bijv. Arduino Uno R4 WiFi) en COM-poort.
  • Ga naar het Libraries pictogram aan de linkerkant van de Arduino IDE.
  • Type "SSD1306" in het zoekvak en zoek naar de SSD1306-bibliotheek van Adafruit.
  • Druk op de Install knop om de bibliotheek toe te voegen.
Arduino UNO R4 OLED bibliotheek
  • U moet aanvullende bibliotheekafhankelijkheden installeren.
  • Klik op de Install All knop om alle bibliotheekafhankelijkheden te installeren.
Arduino UNO R4 Adafruit GFX sensor bibliotheek
  • Zoek naar "DHT" en lokaliseer de DHT sensor bibliotheek gemaakt door Adafruit.
  • Druk op de Install knop om de bibliotheek toe te voegen.
Arduino UNO R4 DHT sensor bibliotheek
  • U moet aanvullende bibliotheekafhankelijkheden installeren.
  • Klik op de Install All knop om alle bibliotheekafhankelijkheden te installeren.
Arduino UNO R4 Adafruit Unified sensor bibliotheek
  • Kopieer bovenstaande code en open deze in Arduino IDE
  • Klik op de Upload knop in Arduino IDE om de code naar uw Arduino UNO R4 te uploaden
  • Plaats de sensor in warm en koud water, of houd deze in uw hand
  • Controleer de resultaten op het OLED display en Serial Monitor

※ Notiz:

De code centreert de tekst automatisch horizontaal en verticaal op het OLED display.

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!