Temperatursensor (DS18B20)

Der DS18B20 ist ein digitaler Temperatursensor mit einer einstellbaren Auflösung von 9-12bit und eine Messgenauigkeit von ±0.5°C im Bereich von -10°C bis +85°C (außerhalb dieses Temperaturbereiches wird es ungenauer). Angesprochen wird der DS18B20 über den sogenannten ‚One-Wire-Bus‘. Dadurch ist es möglich, an einem Datenpin vom Arduino, viele Sensoren gleichzeitig anzuschließen und nacheinander abzufragen. Der Begriff One-Wire kommt daher, weil man den Sensor mit nur einer Datenleitung (und GND) ohne zusätzliche Spannungsversorgung betreiben kann (parasitär). Grade bei mehreren Sensoren und bei längeren Leitungen, wird jedoch häufig von Problemen berichtet, weshalb diesem Sensor eine richtige Stromversorgung spendiert werden sollte.

Bezug

Den DS18B20 gibt es in verschiedenen Bauformen und auch fertig konfektioniert mit Kabel und wasserdichtem Gehäuse.

Der Sensor DS18B20 ist kompatibel mit allen beelogger Varianten!
Bild Bezugsquelle Preis ab Suchbegriffe* Bemerkungen
 beelogger DS18B20 eBay 1,00€ DS18B20 Bauform TO-92
 beelogger DS18b20 wasserdicht eBay 1,50€ DS18B20 mit Kabel und wasserdichtem Gehäuse

*Einkaufstipps

Beschaltung

Die fertig konfektionierten Sensoren im wasserdichten Gehäuse haben je nach Hersteller unterschiedlich farbige Leitungen.

beelogger DS18B20 Pinout

Die Beschaltung des DS18B20 ist sehr einfach. Versorgt wird der Sensor an ‚VDD‘ mit einer Spannung von 3,0 bis 5,5V. ‚Data‘ verbindet man mit Pin 3 des Arduinos. Fehlt noch ein Pull-Up Widerstand von 4,7K Ohm zwischen ‚VDD‘ und ‚Data‘ und die Verbindung von ‚GND‘ mit Masse. Werden zwei Sensoren angeschlossen, beispielsweise für die Stocktemperatur und die Außentemperatur, ist die gleiche Verkabelung vorzunehmen. Ein weiterer Widerstand ist hierfür nicht notwendig. Werden weitere DS18B20 angeschlossen oder besonders lange Leitungen verwendet, kann es notwendig werden den Pull-Up Widerstand auf einen Wert bis zu 1,8 kOhm zu verringern.

beelogger DS18B20 Schaltung

Libraries

<OneWire.h> – https://github.com/PaulStoffregen/OneWire
<DallasTemperature.h> https://github.com/milesburton/Arduino-Temperature-Control-Library
Die Versionen für den beelogger sind im Library-Paket enthalten.

Test-Programmcode

beelogger DS18B20 TestDer Programmcode enthält neben einer Abfrage der angeschlossenen Sensoren eine zusätzliche Prüfung beim Auslesen den Sensoren auf mögliche Verbindungsfehler. Tritt ein Problem auf, beispielsweise durch ein loses Kabel, bekommt die entsprechende Variable für Temperatur einen vordefinierten Wert. Mit diesem Test-Programmcode wird zusätzlich eine Fehlermeldung über den seriellen Monitor ausgegeben.

Werden die Messwerte später an einen Webserver übertragen, erkennt das Server-Skript zum Speichern der Datensätze einen Fehler mit dem vordefinierten Wert und es wird für diesen Sensor kein Messwert gespeichert. Dadurch wird die grafische Darstellung, beispielsweise durch Arbeiten am Sensor, nicht beeinträchtigt.

 

 

Die neue Version des DS18B20 Testsketches liest die Adressen der DS18B20 aus.
Damit kann bei Bedarf in den Multi-Sketchen ein Auslesen der DS18B20 über die Adressen mit der daraus vorgegebenen Reihenfolge durchgeführt werden.
Testprogrammcode hier herunterladen

 

Ausgabe des seriellen Monitors (9600 baud):

DS18B20 Test

Anzahl aktivierter Sensoren: 2
Anzahl angeschlossener Sensoren: 2

Sensor 1: 31.44
Sensor 2: 31.62
 
Sensor 1: 31.44
Sensor 2: 31.62
 
Sensor 1: 31.44
Sensor 2: 31.62

Der Programmcode zum Messbetrieb für den Arduino Datenlogger mit Stockwaage für Imker ist für ATmega328 oder STM32Fxyz für unterschiedliche Konfigurationen mit bis zu vier Waagen pro System verfübgar.

Nach oben scrollen