Digital-Thermometer

Erstellt von Erik, Jette, Julian und Paul
Benötigtes Vorwissen
Benötigtes Material
  • Arduino Uno
  • USB-Kabel für den Arduino
  • Temperatursonde (DS18B20)
  • Display (SSD1306 0.96 Zoll OLED)
  • Breadboard
  • 5 MM-Kabel
  • 4 MW-Kabel
  • 10.000 Ohm Widerstand
Benötigte Software
  • Bibliothek DallasTemperature von Miles Burton
  • Bibliothek OneWire von Jim Studt
  • Bibliothek u8g2 von Oliver
Als PDF
PDF-Download
Arbeitsblatt
PDF-Download erweitert
Erweitertes Arbeitsblatt

Beschreibung

Schulprojekt

Dieses Projekt wurde durch Schülerinnen und Schüler im Rahmen eines Schulprojektes an der Kieler Gelehrtenschule erarbeitet.

Der folgende Aufbau umfasst ein Digital-Thermometer mit einem Display. Auf dem Display wird die aktuelle Temperatur in Grad Celsius angegeben. Das Thermometer ist in der Lage Temperaturen zwischen -10 Grad bis +120 Grad Celsius zu messen.

Verkabelung

ArduinoTemperatursondeDisplay
GNDGND (linker Pin)GND
8DQ (mittlerer Pin)
5VVDD (rechter Pin)VDD
A4SDA
A5SCK
Schaltplan

Schaltplan

Code

Die oben unter Benötigte Software angegebenen Bibliotheken müssen installiert werden, damit der Code erfolgreich ausgeführt werden kann. Für Details siehe Hintergrundwissen Bibliotheken einbinden.

#include <DallasTemperature.h>  //Bibliotheken einbinden
#include <OneWire.h>            //Bibliotheken einbinden
#include <U8g2lib.h>            //Bibliotheken einbinden
#include <Wire.h>               //Bibliotheken einbinden

int ONE_WIRE_BUS = 8;  // DS18B20 am digitalen Pin 8

OneWire oneWire(ONE_WIRE_BUS);  // Übergabe der OneWire Referenz zum
                                // Kommunizieren mit dem Sensor.
DallasTemperature sensors(&oneWire);
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/
                                        U8X8_PIN_NONE);

void setup(void) {
  u8g2.begin();     // Display starten
  sensors.begin();  // Temperatursonde startet
}

void loop(void) {
  sensors.requestTemperatures();             // Temperatur wird gemessen
  float tempC = sensors.getTempCByIndex(0);  // in TempC wird Temperatur
                                             // gespeichert
  u8g2.firstPage();  // spart Arbeitsspeicher Bildschleife startet
  do {               // Schleife beginnt
    u8g2.setFont(u8g2_font_ncenB14_tr);  // Schriftart auswählen
    u8g2.drawStr(0, 15, "Temperatur:");  // Temperatur auf Display schreiben
    u8g2.drawStr(0, 35, String(tempC).c_str());
  }                         // Aktuelle TempC wird wiedergegeben
  while (u8g2.nextPage());  // Befehlaktualisierung

  delay(1000);  // Verzögerung von 1000ms
}

Aufgaben

Fülle ein Gefäß mit Wasser und miss mittels des Aufbaus die Temperatur. Beobachte das Experiment und erläutere was passiert.

Erstelle eine Zeichnung eures Aufbaus.

Wie denkst du, funktioniert der Aufbau? Erläutere in Stichpunkten.

  • das Digital Thermometer sendet die Daten der gemessenen Temperatur an den Arduino
  • der Arduino verarbeitet diese Daten zu Zahlen
  • die Zahlen werden an das Display weitergegeben
  • das Display gibt die empfangene Zahl als Temperatur aus und man kann die Temperatur ablesen

Das Material und dessen Inhalte sind - sofern nicht anders angegeben - lizenziert unter der Creative Commons Lizenz CC BY-NC-SA 4.0 (für den vollständigen Lizenztext siehe https://creativecommons.org/licenses/by-sa/4.0/legalcode )