Digital-Thermometer
Erstellt von Erik, Jette, Julian und Paul
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
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
GND | GND (linker Pin) | GND |
8 | DQ (mittlerer Pin) | |
5V | VDD (rechter Pin) | VDD |
A4 | | SDA |
A5 | | SCK |
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