ESP8266 - Temperatursensor - OLED-Display

Dieses Tutorial zeigt Ihnen, wie man den ESP8266 verwendet, um die Temperatur von einem DS18B20-Sensor zu lesen und sie anschließend auf einem OLED-Display anzuzeigen.

Erforderliche Hardware

1×ESP8266 NodeMCU
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 ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

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 mit OLED-Displays und dem DS18B20-Temperatursensor nicht vertraut sind (Pinbelegung, Funktionsweise, Programmierung usw.), können Ihnen die folgenden Tutorials helfen:

Verdrahtungsdiagramm

ESP8266 NodeMCU DS18B20 Temperatursensor OLED-Verdrahtungsdiagramm

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

Wir empfehlen den Kauf eines DS18B20-Sensors zusammen mit dem dazugehörigen Verkabelungsadapter für eine nahtlose Einrichtung. Dieser Adapter enthält einen integrierten Widerstand, wodurch ein zusätzlicher Widerstand in der Verkabelung entfällt.

ESP8266 Code - Temperatur des DS18B20-Temperatursensors und Anzeige auf dem OLED-Display

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-temperature-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #define OLED_WIDTH 128 // OLED display width, in pixels #define OLED_HEIGHT 64 // OLED display height, in pixels #define SENSOR_PIN 2 // The ESP8266 pin connected to DS18B20 sensor's DQ pin Adafruit_SSD1306 oled(OLED_WIDTH, OLED_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_str; 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_str.reserve(10); // to avoid fragmenting memory when using String } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float temperature_C = DS18B20.getTempCByIndex(0); // read temperature in Celsius temperature_str = String(temperature_C, 2); // two decimal places temperature_str += char(247) + String("C"); Serial.println(temperature_str); // print the temperature in Celsius to Serial Monitor oled_display_center(temperature_str); } void oled_display_center(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // center the display both horizontally and vertically oled.clearDisplay(); // clear display oled.setCursor((OLED_WIDTH - width) / 2, (OLED_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial Anleitung zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls dies dein erster Einsatz mit ESP8266 ist.
  • Verbinde die Bauteile wie im Diagramm gezeigt.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E-Modul), und seinen jeweiligen COM-Port.
  • Klicke auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suche nach “SSD1306” und finde die SSD1306-Bibliothek von Adafruit.
  • Drücke anschließend den Install-Knopf, um die Installation abzuschließen.
ESP8266 NodeMCU OLED-Bibliothek
  • Sie werden aufgefordert, zusätzliche Bibliotheksabhängigkeiten zu installieren.
  • Um alle zu installieren, klicken Sie auf die Schaltfläche Alle installieren.
ESP8266 NodeMCU Adafruit GFX Sensorbibliothek
  • Suchen Sie nach „Dallas“ und finden Sie die DallasTemperature-Bibliothek von Miles Burton.
  • Drücken Sie die Installieren-Schaltfläche, um die DallasTemperature-Bibliothek zu installieren.
ESP8266 NodeMCU Dallas-Temperatur-Bibliothek
  • Sie werden aufgefordert, eine Abhängigkeit zu installieren. Klicken Sie auf den Button Install All, um die OneWire-Bibliothek zu installieren.
ESP8266 NodeMCU OneWire-Bibliothek
  • Kopiere den Code und öffne ihn in der Arduino IDE.
  • Klicke auf die Hochladen-Schaltfläche, um den Code auf deinen ESP8266 zu übertragen.
  • Platziere den Sensor in heißem und kaltem Wasser oder halte ihn in deiner Hand.
  • Sieh dir das Ergebnis auf dem OLED an.

※ Notiz:

Der betreffende Code wird den Text sowohl horizontal als auch vertikal auf einem OLED-Display zentrieren.

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!