Arduino UNO R4 - DHT11 - OLED

In diesem Leitfaden lernen wir, Temperatur und Luftfeuchtigkeit mit einem DHT11-Modul zu messen und die Messwerte auf einem OLED-Bildschirm anzuzeigen.

Arduino UNO R4 DHT11 Temperatur- und Feuchtigkeitssensor-Modul OLED-Display

Über OLED-Display, DHT11 Temperatur- und Feuchtigkeitssensor

Erfahren Sie mehr über OLED-Displays und DHT11-Temperatur- und Feuchtigkeitssensoren (deren Einrichtung, Funktionen und Programmierung) in den untenstehenden Tutorials:

Verdrahtungsdiagramm

Arduino UNO R4 DHT11 Temperatur- und Feuchtigkeitssensor-Modul OLED Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Uno R4 und andere Komponenten mit Strom zu versorgen.

Arduino UNO R4 Programmcode - DHT11-Sensor - OLED

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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(); }

Schnelle Schritte

Folgen Sie diesen Anweisungen Schritt für Schritt:

  • Wenn Sie das Arduino Uno R4 WiFi/Minima zum ersten Mal verwenden, lesen Sie das Tutorial zur Einrichtung der Umgebung für Arduino Uno R4 WiFi/Minima in der Arduino IDE.
  • Verbinden Sie die Arduino Uno R4-Platine gemäß dem bereitgestellten Diagramm mit dem DHT11-Temperatur- und Feuchtigkeitssensor-Modul sowie dem OLED-Display.
  • Verbinden Sie die Arduino Uno R4-Platine über ein USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das passende Arduino Uno R4-Board (z. B. Arduino Uno R4 WiFi) und den COM-Port aus.
  • Gehen Sie zum Bibliotheken-Symbol auf der linken Seite der Arduino IDE.
  • Geben Sie im Suchfeld 'SSD1306' ein und suchen Sie anschließend nach der SSD1306-Bibliothek von Adafruit.
  • Drücken Sie die Schaltfläche Installieren, um die Bibliothek hinzuzufügen.
Arduino UNO R4 OLED-Bibliothek
  • Sie müssen zusätzliche Bibliotheksabhängigkeiten installieren.
  • Klicken Sie auf die Schaltfläche Alle installieren, um alle Bibliotheksabhängigkeiten zu installieren.
Arduino UNO R4 Adafruit GFX Sensorbibliothek
  • Suchen Sie nach „DHT“, dann finden Sie die von Adafruit erstellte DHT-Sensor-Bibliothek.
  • Drücken Sie auf die Installieren-Schaltfläche, um die Bibliothek hinzuzufügen.
Arduino UNO R4 DHT-Sensor-Bibliothek
  • Sie müssen zusätzliche Bibliotheksabhängigkeiten installieren.
  • Klicken Sie auf die Alle installieren Schaltfläche, um alle Bibliotheksabhängigkeiten zu installieren.
Arduino UNO R4 Adafruit Unified Sensor-Bibliothek
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino-IDE
  • Klicken Sie auf die Hochladen-Schaltfläche in der oberen Anleitung von Arduino Tooltip, um den Code auf Ihren Arduino UNO R4 hochzuladen
  • Platzieren Sie den Sensor in heißem und kaltem Wasser oder halten Sie ihn in der Hand
  • Überprüfen Sie die Ergebnisse auf dem OLED-Display und im seriellen Monitor

※ Notiz:

Der Code zentriert den Text automatisch horizontal und vertikal auf dem OLED-Display.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!