Temperatursensor – DS18B20 – Arduino Tutorial
Einleitung
In diesem Artikel werden wir Ihnen ausführliche Schritt-für-Schritt-Anleitungen bieten und praktische Informationen vermitteln, um Ihnen beizubringen, wie Sie einen DS18B20 Temperatursensor erfolgreich mit einem Arduino Uno / Nano in der Arduino IDE programmieren können. Wir werden nicht nur die erforderlichen Komponenten und den optimalen Schaltungsaufbau behandeln, sondern auch den Code im Detail erläutern, um den Temperatursensor auszulesen und die Ergebnisse auf verständliche Weise darzustellen.
Am Ende dieses Artikels werden Sie in der Lage sein, den DS18B20 Temperatursensor effizient in Ihre Projekte mit dem Arduino zu integrieren und eigene spannende Anwendungen zu entwickeln.
Übersicht – Temperatursensor ( DS18B20 ) + Arduino
Hardware Aufbau – Verkabelung – Temperatursensor ( DS18B20 ) + Arduino
Bevor wir uns in die Arduino Programmierung vertiefen, sollten wir zunächst den Hardware-Aufbau vorbereiten. Im kommenden Abschnitt werde ich Ihnen zeigen, wie Sie den Arduino erfolgreich mit dem Temperatursensor DS18B20 verbinden können.
Für den Aufbau benötigen Sie 3 Verbindungen:
Arduino 3,3V Pin → Vcc
Arduino GND Pin → GND
Arduino Pin D2 → DQ
Die sorgfältige und korrekte Verdrahtung ist von entscheidender Bedeutung, um sicherzustellen, dass der Arduino die Signale des DS18B20 Temperatursensors ordnungsgemäß erfassen kann.
Nachdem Sie diese Verbindungen erfolgreich hergestellt haben, sind Sie bereit, mit der Programmierung des Arduino fortzufahren. Im nächsten Abschnitt werden wir ausführlich darauf eingehen, wie Sie die Bibliothek einbinden und den Code für den DS18B20 Temperatursensor programmieren können.
Software Programmierung – Temperatursensor ( DS18B20 ) + Arduino
Sobald der erfolgreiche Hardware-Aufbau abgeschlossen ist, können wir uns nun der Arduino Programmierung zuwenden. In diesem Abschnitt werden wir ausführlich die essenziellen Schritte zur Codeerstellung behandeln und die Schlüsselfunktionen, die Sie verwenden werden, im Detail erläutern.
Schritt 1: Initialisierung
Öffnen der Arduino-IDE und Erstellen eines neuen Projekts
Um mit der Arduino-IDE zu arbeiten, öffnen Sie zunächst die Anwendung auf Ihrem Computer. Falls Sie die Arduino-IDE noch nicht installiert haben, können Sie unter folgendem Link eine Anleitung hierzu finden:
⇨ Arduino erste Schritte
Nachdem Sie die Arduino-IDE geöffnet haben, erstellen Sie ein neues Projekt, indem Sie auf „Datei“ klicken und dann auf „Neu“. Dadurch wird ein neues Sketch-Fenster geöffnet, in dem Sie Ihren Code eingeben können.
// Hier kommt dein Code
void setup()
{
// Initialisierung
}
void loop()
{
// Schleife
}
Schritt 2: Bibliothek einbinden
Um die Daten des DS18B20 Temperatursensors auszulesen, ist es notwendig, eine geeignete Bibliothek in Ihre Arduino-IDE einzubinden. Gehen Sie dazu in der Menüleiste auf „Sketch“ und wählen Sie „Bibliothek einbinden“ aus. Klicken Sie dann auf „Bibliotheken verwalten…“.
Wir benötigen 2 Bibliotheken.
Suchen Sie einerseits nach der entsprechenden DS18B20-Bibliothek „DallasTemperature“ und fügen Sie sie Ihrem Projekt hinzu.
Zudem benötigen wir noch die „OneWire“ Bibliothek.
Nur so erhalten Sie die erforderlichen Funktionen, um die Temperaturdaten zu erfassen und auszulesen.
#include <OneWire.h>
#include <DallasTemperature.h>
Schritt 3: Pin + OneWire + DallasTemperature definieren
Zunächst legen wir unseren Pin per „define“-Befehl fest damit wir diesen im folgenden Code nicht immer wiederholen müssen. In diesem Beispiel verwenden wir Pin23.
Danach das Setup der OneWire Instanz. Hier legen wir den Pin fest, welcher über OneWire kommunizieren soll.
Dann die Übergabe der OneWire-Referenz an Dallas Temperature.
// Data wire is plugged into pin 23 on the Arduino
#define ONE_WIRE_BUS 23
// Setup a OneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass OneWire reference to Dallas Temperature
DallasTemperature sensors(&oneWire);
Schritt 4: Void Setup
Im Void Setup-Teil des Codes führen Sie die Initialisierungen durch, die nur einmal am Anfang des Programms ausgeführt werden müssen. Fügen Sie den folgenden Code hinzu:
void setup()
{
Serial.begin(9600); //Initialize serial monitor
pinMode(ONE_WIRE_BUS, OUTPUT);
sensors.begin(); //Start up the library
}
Der Serial.begin(9600) Befehl initialisiert den seriellen Monitor mit einer Baudrate von 9600, sodass Sie die empfangenen Werte später auf dem Monitor angezeigt werden können.
Über pinMode wird der Pin an welchen der Temperatursensor hängt als Output definiert.
Danach wird über „sensors.begin();“ die Bibliothek gestartet.
Schritt 5: Loop Setup
Der Loop-Teil des Codes wird kontinuierlich wiederholt, solange der Arduino eingeschaltet ist. Hier erfolgt die eigentliche Verarbeitung der Temperaturwerte des Temperatursensors.
void loop()
{
sensors.requestTemperatures(); //Call sensor to request the Temperature
Serial.println("Temperature is: " + String(sensors.getTempCByIndex(0)) + "°C"); //Output the values on the monitor
delay(1000);
}
Der erste Befehlt sendet an den Temperatur die Anfrage, dass von ihm die aktuelle Temperatur haben möchten.
Danach wird die Empfangene Temperatur auf dem Serial monitor ausgegeben. Hier in grad Celsius.
Dann wird eine Pause von 1 Sekunde eingelegt. So fragen wir jede Sekunde die aktuelle Temperatur ab.
Schritt für Schritt – Zusammenfassung
→ Schritt 1: Initialisierung
Arduino-Board anschließen,
IDE öffnen
Datei -> Neu
Werkzeug -> Board -> Arduino Uno
Port -> Arduino Uno
→ Schritt 2:
Bibliothek einbinden.
→ Schritt 3:
Pin + OnWire + DallasTemperature initialisieren.
→ Schritt 4: Void Setup
Serial Monitor Initialisierung ausführen.
Pinmode definieren.
Bibliothek starten.
→ Schritt 5: Void Loop
Temperatur beim Temperatursensor anfragen.
Temperatur im Monitor ausgeben.
1 Sekunde warten.
Gesamter Programmiercode – Temperatursensor ( DS18B20 ) + Arduino
Nochmal zur Übersicht den gesamten Programmier-Code aufgezeigt.
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into pin 23 on the Arduino
#define ONE_WIRE_BUS 23
// Setup a OneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass OneWire reference to Dallas Temperature
DallasTemperature sensors(&oneWire);
void setup()
{
Serial.begin(9600); //Initialize serial monitor
pinMode(ONE_WIRE_BUS, OUTPUT);
sensors.begin(); //Start up the library
}
void loop()
{
sensors.requestTemperatures(); //Call sensor to request the Temperature
Serial.println("Temperature is: " + String(sensors.getTempCByIndex(0)) + "°C"); //Output the values on the monitor
delay(1000);
}
Ausführung – Temperatursensor ( DS18B20 ) + Arduino
Nachdem der Code nun in die IDE eingegeben ist, muss dieser noch ausgeführt werden und auf den Arduino übertragen werden.
Hierzu geht man wie folgt vor:
Schritt 1: Überprüfen (Haken)
Schritt 2: Hochladen (Pfeil)
Schritt 3: Serieller Monitor öffnen
Schritt 4: Auf Display wird die aktuelle Temperatur anzeigt
Nachdem der Arduino nun programmiert ist, wird die Temperatur auf dem Monitor ausgegeben. Jede Sekunde die aktuelle Temperatur.