Beschreibung
Hier ist eine detaillierte Beschreibung des DS18B20 Wasserdichter Temperatursensor, inklusive einer umfassenden Anleitung für die Verwendung mit Arduino, Beispielen für die Verkabelung und Programmiercode.
🌡️ Wasserdichter Temperatursensor DS18B20 – Digitales Temperatursensor für Arduino
✅ Allgemeine Beschreibung
Der DS18B20 ist ein wasserdichter digitales Temperatursensor mit hoher Genauigkeit für ein breites Temperaturbereich (-55°C bis +125°C). In einem stählerischen Rohr und mit Kabel versehen, ist er ideal für Temperaturmessungen in feuchten oder flüssigen Umgebungen, wie:
- Wasser
- Boden
- Heizungseinrichtungen
- Aquarien
⚙️ Technische Spezifikationen
| Spezifikation | Wert |
|---|---|
| Interner Sensor | DS18B20 digital |
| Temperaturbereich | von -55°C a +125°C |
| Genauigkeit | ±0.5°C (von -10°C bis +85°C) |
| Auflösung | Einstellbar: 9–12 Bit |
| Protokoll | 1-Wire |
| Energieversorgung | 3.0 – 5.5V |
| Ausgang | Digital (1-Wire, nicht analog) |
| Typische Kabellänge | 90–100 cm (variiert je nach Verkäufer) |
| Wasserdichtigkeit | Ja (Stahl 304 oder 316) |
📌 Jeder DS18B20-Sensor hat ein eindeutiges ID zu 64 Bit, daher kannst du mehrere an dasselbe Arduino-Pin anschließen!
🧪 Anschluss an die Arduino-Platine
🧰 Notwendiger Materialien
- Wasserdichter DS18B20-Sensor
- 1 Widerst von 4,7 kΩ
- Arduino Uno, Nano, Mega, etc.
- Steckbrett und Steckbrücke
🔌 Verbindungsplan
| Sensor-Sonde-Kabel | Verbindung |
|---|---|
| Schwarz | GND |
| Rot | 5V |
| Gelb | Daten (z.B. D2) |
Wichtig: verbinde eine Widerstand von 4,7 kΩ zwischen dem Datenpin (gelb) und 5V (Pull-up), ansonsten wird der Sensor nicht korrekt funktionieren.
💻 Arduino-Programmierung
📦 Notwendige Bibliotheken
Installiere die folgenden Bibliotheken von Arduino IDE → Bibliothek-Verwaltung:
- OneWire von Paul Stoffregen
- DallasTemperature von Miles Burton
📜 Basiscode – Temperatur von einer DS18B20 lesen
#include <OneWire.h>
#include <DallasTemperature.h>
// Pin dati della sonda collegato al pin D2
#define ONE_WIRE_BUS 2
// Setup comunicazione OneWire
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
sensors.begin(); // inizializza i sensori
}
void loop() {
sensors.requestTemperatures(); // richiede la temperatura da tutti i sensori
float tempC = sensors.getTempCByIndex(0); // legge la temperatura del primo sensore trovato
Serial.print("Temperatura: ");
Serial.print(tempC);
Serial.println(" °C");
delay(1000);
}
🧠 Tiefergehende Informationen und nützliche Funktionen
🔄 Mehr Sensoren am gleichen Pin
Jede DS18B20 hat ein eigenes einzigartiges ID: Du kannst es mit sensors.getAddress() ermitteln und dann verwenden, um die Temperatur von einer bestimmten Sensor zu lesen.
📏 Die Auflösung einstellen
sensors.setResolution(12); // valori validi: 9, 10, 11, 12 (più bit = maggiore precisione, ma lettura più lenta)
🔋 Vorteile der DS18B20
- ✅ Digitale Ausgabe stabil und präzise
- ✅ Gut geeignet für feuchte oder flüssige Umgebungen
- ✅ Unterstützung für mehrere Sensoren in Parallel (dank des 1-Wire-Protokolls)
- ✅ Einfacher Code und weit verbreitet unterstützt
📚 Anwendungsexempel
- 🌡️ Boden- oder Gewächshaus-Temperaturüberwachung
- 💧 Flüssigkeitsüberwachung (Wasser, Bier, Wein, etc.)
- 🐟 Aquarietemperaturkontrolle
- 🔥 Heizungskontrolle oder Warmwasserbehalter
- 🧪 IoT-Projekte oder Datenlogger mit microSD oder WiFi
🛠 Praktische Tipps
- Verwende thermokondensierende Hülle oder wasserdichte Verbindungen, wenn du den Kabel verlängerst.
- Wenn du den Sensor von 3.3V (z.B. auf ESP32) betreibst, stelle sicher, dass die Kabellänge begrenzt ist (um Spannungsabfälle zu vermeiden).
- Du kannst den DS18B20 in Parasitmodusbetreiben, wird jedoch eine normale Versorgung für Zuverlässigkeit empfohlen.
✅ Fazit
Die wasserdichte DS18B20-Sonde ist einer der flexibelsten, präzisesten und einfachsten zu verwendenden Temperatursensoren versatiler, präziser und einfacher zu verwenden mit Arduino. Es ist ideal für:
- Außenbereich oder Flüssigkeiten
- Mehrere Projekte auf einem einzigen Pin
- Temperaturanwendungen im IoT
✅ 1. Integration mit LCD oder OLED Displays
Option A: LCD Display 16×2 mit I2C
🔧 Hardware:
- DS18B20
- LCD Display 16×2 mit I2C Adapter
- Arduino Uno/Nano
- Widerst 4,7kΩ
📦 Bibliotheken:
LiquidCrystal_I2COneWire,DallasTemperature
📜 Basiscode:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 16, 2); // cambia l'indirizzo se necessario
void setup() {
lcd.init();
lcd.backlight();
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp);
lcd.print(" C");
delay(1000);
}
Option B: OLED Display 128×64 I2C (z.B. SSD1306)
📦 Bibliotheken:
Adafruit_SSD1306Adafruit_GFXDallasTemperature,OneWire
📜 Basiscode verfügbar, falls du auch benutzerdefinierte grafische Layouts möchtest. Sag mir Bescheid, wenn du das willst!
📡 2. Wi-Fi-Integration mit ESP8266/ESP32 (entfernte Überwachung)
Lösung A: ESP8266/ESP32 mit Lokaler Webserver
📦 Bibliotheken:
WiFiESPAsyncWebServer(oWebServer.h)DallasTemperature,OneWire
📜 Code: ESP erstellt eine Web-Seite, die von PC/Smartphone zugänglich ist
#include <WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <WebServer.h>
const char* ssid = "TUO_SSID";
const char* password = "TUA_PASSWORD";
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
WebServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(1000);
sensors.begin();
server.on("/", []() {
sensors.requestTemperatures();
float t = sensors.getTempCByIndex(0);
server.send(200, "text/html", "<h1>Temperatura: " + String(t) + " °C</h1>");
});
server.begin();
}
void loop() {
server.handleClient();
}
📲 Öffne den Browser auf deinem Smartphone → gib dieIP-Adresse des ESP-Moduls (gedruckt im Serial Monitor).
Lösung B: ESP + Blynk (oder Telegram) → Smartphone-App
- Zeige die Temperatur in Echtzeit
- Füge Benachrichtigungen, Diagramme und Logs im Cloud hinzu
Ich kann dir vorbereiteten Code für Blynk (2.0) zur Verfügung stellen wenn du eine App ohne Schreiben der Benutzeroberfläche von null benötigst.
📁 3. Speicherung auf SD-Karte
🔧 Hardware:
- Modul SD-Karte (microSD)
- Arduino Uno/Mega
- DS18B20
📦 Bibliotheken:
SD.hSPI.hDallasTemperature,OneWire
📜 Basiscode:
#include <SPI.h>
#include <SD.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
#define SD_CS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
File logFile;
void setup() {
Serial.begin(9600);
sensors.begin();
SD.begin(SD_CS);
}
void loop() {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
logFile = SD.open("log.csv", FILE_WRITE);
if (logFile) {
logFile.print(millis() / 1000);
logFile.print(",");
logFile.println(temp);
logFile.close();
}
delay(5000);
}
📝 Datei log.csv bereit für Excel/LibreOffice.
📲 4. Daten auf Smartphone anzeigen
Option A: Web Server (ESP)
- Öffne die IP des Moduls im Browser (keine App erforderlich)
- Benutzerdefiniertes HTML Layout
Option B: App Blynk 2.0
- Grafische Dashboard: Anzeige, Diagramme, Benachrichtigungen
- Temperaturmessung und Automatisierung (z.B. „ventilator einschalten wenn >30°C“)
Option C: Telegram Bot (ESP32/ESP8266)
- Empfange Nachrichten mit Temperatur über Telegram
📦 Vollständiges Projekt möglich
Intelligente Temperatur-Monitoring-Anlage
✔️ DS18B20 wasserdicht
✔️ ESP32 mit WLAN
✔️ Anzeige auf OLED
✔️ Übertragung auf Smartphone per Web oder Blynk
✔️ Backup auf SD-Karte
Wir haben Datasheets für alle Komponenten zur Verfügung, falls diese nicht im Produkt-Download enthalten sind, senden Sie uns eine Nachricht über das Kontaktformular und wir veröffentlichen sie so schnell wie möglich auf unserer Website.
Tutorial: Wie man die Temperatursonde DS18B20 verwendet
Die Temperatursonde DS18B20 misst präzise Temperaturen in feuchten und trockenen Umgebungen. Ideal für Projekte mit Temperatur und Feuchtigkeit.
Was du brauchst
- Temperatursonde DS18B20
- Arduino
- Pull-up-Widerstand (4,7kΩ)
- Verbindungsleitung
Schritte
- 1. Verbinde die Temperatursonde am Pin DQ des Arduino über die Leitung.
- 2. Verbinde den Pull-up-Widerstand zwischen dem Pin DQ und der 5V-VCC.
- 3. Verbinde den GND-Pin der Sonden mit dem GND-Pin des Arduino.
- 4. Lade den bereitgestellten Arduino-Code.
- 5. Überprüfe im Datasheet auf Messgenauigkeit.
- 6. Teste die Sonden mit einem Testprogramm.
- 7. Überprüfe die Temperatur in verschiedenen Umgebungen.
- 8. Konfiguriere die Temperaturalarmanlage falls erforderlich.
Beispielcode
```void loop() { // Leggi la temperatura OneWire ds(DQ); DigitalClock ds; float tempC = ds.getTempC(); Serial.print("Temperatura: "); Serial.print(tempC); Serial.println("°C"); delay(1000);}```
Mini-Projekt
Bau ein Temperatursystem für einen Wasserspeicher.
Häufige Fehler
- Vergiss die Pull-up-Widerstand.
- Verbinde den Pin DQ mit VCC.
- Überprüfe die Verbindung nicht vor dem Gebrauch.
- Stelle die Temperaturalarmanlage ein, ohne sie zu konfigurieren.
Empfohlenes Zubehör
- Arduino UNO
- LCD-Anzeige 16×2
- Batterie 3,7V
- USB-Kabel
Häufige Fragen
Wie kann ich die Verbindung überprüfen?
Stelle sicher, dass der Sensor gut verbunden ist und dass der Pull-up-Widerstand korrekt installiert ist.
Welche Messgenauigkeit ist gegeben?
Überprüfe den Datenblatt für die Messgenauigkeit.
Kann ich diesen Sensor mit einem anderen Mikrocontroller verwenden?
Ja, aber überprüfe die Kompatibilität mit dem Pin DQ und der Versorgungsspannung.











Rezensionen
Es gibt noch keine Rezensionen.