ESP32 - Temperatursensor - OLED

In diesem Tutorial wird dir gezeigt, wie du die Temperatur vom DS18B20-1-Wire-Sensor ausliest und sie auf einem OLED-Display anzeigst.

ESP32-Temperatursensor OLED

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×SSD1306 I2C OLED-Display 128x64
1×SSD1306 I2C OLED-Display 128x32
1×DS18B20 Temperatursensor (mit Adapter)
1×DS18B20 Temperatursensor (ohne Adapter)
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Kaufhinweis: Viele DS18B20-Sensoren auf dem Markt sind von geringer Qualität. Wir empfehlen dringend den Kauf des Sensors von der Marke DIYables über den obigen Link. Wir haben ihn getestet und er funktionierte gut.

Über OLED- und DS18B20-Temperatursensor

Wenn Sie nichts über OLED-Displays und den DS18B20-Temperatursensor wissen (Pinbelegung, Funktionsweise, Programmierung ...), erfahren Sie in den folgenden Tutorials mehr darüber:

Verdrahtungsdiagramm

  • Wie man den ESP32 mit Temperatursensor und OLED über ein Breadboard verbindet.
ESP32-Temperatursensor OLED-Verdrahtungsdiagramm

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

  • Wie man den ESP32 mit einem Temperatursensor und einem OLED-Display unter Verwendung eines Schraubklemmen-Block-Breakout-Boards anschließt Schraubklemmen-Block-Breakout-Board
So verbinden Sie den ESP32 mit einem Temperatursensor und einem OLED-Display.

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

Wir empfehlen den Kauf eines DS18B20-Sensors, der mit einem Verkabelungsadapter geliefert wird für eine einfache Verbindung. Der Adapter verfügt über einen integrierten Widerstand, wodurch kein separater Widerstand in der Verkabelung erforderlich ist.

ESP32-Code - Temperatur vom DS18B20-Temperatursensor und Anzeige auf dem OLED

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-temperature-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define SENSOR_PIN 23 // The ESP32 pin GPIO23 connected to DS18B20 sensor's data pin Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library String temperature; 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(2); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display DS18B20.begin(); // initialize the sensor temperature.reserve(10); // to avoid fragmenting memory when using String } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float tempCelsius = DS18B20.getTempCByIndex(0); // read temperature in Celsius temperature = String(tempCelsius, 2); // two decimal places temperature += char(247) + String("C"); Serial.println(temperature); // print the temperature in Celsius to Serial Monitor oledDisplayCenter(temperature); } void oledDisplayCenter(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich Wie man die Umgebung für ESP32 in der Arduino IDE einrichtet an.
  • Verdrahten Sie es wie im obigen Bild.
  • Verbinden Sie das ESP32-Board über ein Micro-USB-Kabel mit Ihrem PC.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Klicken Sie auf das Libraries-Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie “SSD1306”, und finden Sie dann die SSD1306-Bibliothek von Adafruit
  • Klicken Sie auf die Install-Schaltfläche, um die Bibliothek zu installieren.
ESP32 OLED-Bibliothek
  • Sie werden aufgefordert, weitere Bibliotheksabhängigkeiten zu installieren
  • Klicken Sie auf die Schaltfläche Alle installieren, um alle Bibliotheksabhängigkeiten zu installieren.
ESP32 Adafruit GFX Sensorbibliothek
  • Geben Sie “DallasTemperature” in das Suchfeld ein, und suchen Sie anschließend nach der DallasTemperature-Bibliothek von Miles Burton.
  • Klicken Sie auf die Schaltfläche Installieren, um die DallasTemperature-Bibliothek zu installieren.
ESP32 Dallas-Temperaturbibliothek
  • Sie werden aufgefordert, die Abhängigkeit zu installieren. Klicken Sie auf die Schaltfläche Alle installieren, um die OneWire-Bibliothek zu installieren.
ESP32 OneWire-Bibliothek
  • Kopiere den obigen Code und öffne ihn mit der Arduino-IDE
  • Klicke auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code auf den ESP32 hochzuladen
  • Tauche den Sensor in heißes und kaltes Wasser, oder halte den Sensor mit der Hand
  • Sieh das Ergebnis auf dem OLED-Display
ESP32 zeigt Temperatur auf dem OLED-Display an.

※ Notiz:

Der About-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!