Arduino - Temperatursensor

Es gibt viele Arten von Temperatursensoren, die mit Arduino funktionieren, wie z. B. LM35, TH02, HDC1000 oder HTS221... In diesem Tutorial lernen wir, wie man den wasserdichten DS18B20-Temperatursensor mit Arduino verwendet. Dieser Sensor ist preiswert, einfach zu bedienen und sieht gut aus.

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×DS18B20 Temperatursensor (mit Adapter)
1×DS18B20 Temperatursensor (ohne Adapter)
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
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 den 1-Wire-Temperatursensor DS18B20

Pinbelegung

DS18B20-Temperatursensor hat drei Pins:

  • GND-Pin: muss mit GND (0 V) verbunden werden
  • VCC-Pin: muss mit VCC (5 V oder 3,3 V) verbunden werden
  • DATA-Pin: ist der 1-Wire-Datenbus. Er sollte an einen digitalen Pin des Arduino angeschlossen werden

Der Sensor hat üblicherweise zwei Bauformen: ein TO-92-Gehäuse (sieht aus wie ein Transistor) und eine wasserdichte Sonde. In diesem Tutorial verwenden wir die wasserdichte Sonde.

Pinbelegung des DS18B20-Temperatursensors

Die Verbindung eines DS18B20-Temperatursensors mit einem Arduino erfordert einen Pull-Up-Widerstand, was lästig sein kann. Einige Hersteller vereinfachen den Prozess jedoch, indem sie einen Verdrahtungsadapter anbieten, der einen integrierten Pull-Up-Widerstand und eine Schraubklemme besitzt, was den Vorgang deutlich erleichtert.

Verdrahtungsdiagramm

  • Schaltplan mit Steckbrett
Arduino Temperatursensor Verdrahtungsdiagramm

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

  • Schaltplan mit Adapter (empfohlen)
Arduino DS18B20 Verdrahtungsdiagramm

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

  • Echtes Schaltbild mit Adapter
Arduino DS18B20-Adapter-Verdrahtungsschema

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

Wir empfehlen den Kauf eines DS18B20-Sensors mit einem Verdrahtungsadapter für eine einfache Verbindung. Der Adapter verfügt über einen integrierten Widerstand, wodurch kein separater Widerstand in der Verkabelung benötigt wird.

Wie man den DS18B20-Temperatursensor programmiert

  • Die Bibliothek einbinden:
#include <OneWire.h> #include <DallasTemperature.h>
  • Deklariere OneWire- und DallasTemperature-Objekte, die dem Pin entsprechen, der mit dem DATA-Pin des Sensors verbunden ist.
OneWire oneWire(SENSOR_PIN); // Eine OneWire-Instanz einrichten DallasTemperature sensors(&oneWire); // OneWire an die DallasTemperature-Bibliothek übergeben
  • Initialisieren Sie den Sensor:
sensors.begin(); // Sensor initialisieren
  • Senden Sie den Befehl, um Temperaturen abzurufen:
sensors.requestTemperatures();
  • Temperatur in Celsius lesen:
tempCelsius = sensors.getTempCByIndex(0);
  • (wahlweise) Celsius in Fahrenheit umrechnen:
tempFahrenheit = tempCelsius * 9 / 5 + 32;

Arduino-Code

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino/arduino-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> const int SENSOR_PIN = 13; // Arduino pin connected to DS18B20 sensor's DQ pin OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature tempSensor(&oneWire); // pass oneWire to DallasTemperature library float tempCelsius; // temperature in Celsius float tempFahrenheit; // temperature in Fahrenheit void setup() { Serial.begin(9600); // initialize serial tempSensor.begin(); // initialize the sensor } void loop() { tempSensor.requestTemperatures(); // send the command to get temperatures tempCelsius = tempSensor.getTempCByIndex(0); // read temperature in Celsius tempFahrenheit = tempCelsius * 9 / 5 + 32; // convert Celsius to Fahrenheit Serial.print("Temperature: "); Serial.print(tempCelsius); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempFahrenheit); // print the temperature in Fahrenheit Serial.println("°F"); delay(500); }

Schnelle Schritte

  • Verbinde Arduino über ein USB-Kabel mit dem PC.
  • Öffne die Arduino IDE, wähle das richtige Board und den passenden Port aus.
  • Gehe zum Libraries-Symbol in der linken Seitenleiste der Arduino IDE.
  • Suche “DallasTemperature”, und finde dann die DallasTemperature-Bibliothek von Miles Burton.
  • Klicke auf die Installieren-Schaltfläche, um die DallasTemperature-Bibliothek zu installieren.
Arduino Dallas-Temperaturbibliothek
  • Sie werden aufgefordert, die Abhängigkeit der Bibliothek zu installieren.
  • Klicken Sie auf die Schaltfläche Alle installieren, um die OneWire-Bibliothek zu installieren.
Arduino OneWire-Bibliothek
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino-IDE.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code auf den Arduino hochzuladen.
  • Tauchen Sie den Sensor in heißes und kaltes Wasser, oder greifen Sie den Sensor mit der Hand.
  • Sehen Sie das Ergebnis im Serial Monitor.
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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!