// benötigte Bibliotheken
#include "OneWire.h"
#include "DallasTemperature.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
// Bildschirmgröße definieren
#define BildschirmBreite 128
#define BildschirmHoehe 64
#define OLED_RESET 4
// Adresse: 0x3C oder 0x3D
#define Adresse 0x3c
// Name des Displays und Startparameter
Adafruit_SSD1306 oled(BildschirmBreite, BildschirmHoehe, &Wire, OLED_RESET);
// Pin des Sensors an OneWire übergeben
#define ONE_WIRE_BUS 9
// oneWire-Instanz erstellen
OneWire oneWire(ONE_WIRE_BUS);
// oneWire-Instanz an den Sensor übergeben
DallasTemperature TemperaturSensor(&oneWire);
void setup()
{
// Temperatursensor starten
TemperaturSensor.begin();
// OLED starten
oled.begin(SSD1306_SWITCHCAPVCC, Adresse);
oled.clearDisplay();
// Schriftfarbe und -größe
oled.setTextColor(WHITE);
oled.setTextSize(3);
// erweiterte Codepage (255 Zeichen)
oled.cp437(true);
Serial.begin(9600);
}
void loop()
{
TemperaturSensor.requestTemperatures();
// getTempCByIndex(0) -> 0 = 1. angeschlossener Sensor
float TemperaturLesen = TemperaturSensor.getTempCByIndex(0);
// überprüfen, ob das Lesen der Temperatur erfolgreich war
if (TemperaturLesen != DEVICE_DISCONNECTED_C)
{
String Temperatur = String(TemperaturLesen);
// . in , umwandeln
Temperatur.replace(".", ",");
// Temperatur anzeigen
oled.clearDisplay();
oled.setCursor(0, 0);
oled.print(Temperatur + "");
// Sonderzeichen ° anzeigen
oled.write(248);
oled.write("C");
oled.display();
// kurzes delay zu Demozwecken
delay(3000);
// Ausgabe Serieller Plotter
Serial.print("Temperatur:");
Serial.print(Temperatur);
Serial.println(",");
}
else
{
Serial.println("Temperatur nicht lesbar!");
}
}
Letzte Aktualisierung: