Bluetooth-Temperaturmonitor mit Arduino Nano
Komponenten und Zubehör
| Arduino Nano R3 | × | 1 |
| Jumper-Kabel (allgemein) | × | 1 |
| HC-06 Bluetooth-Modul | × | 1 |
| NTC-Thermistor | × | 1 |
| Widerstand 10 kOhm | × | 1 |
| Widerstand 1 kOhm | × | 1 |
| Widerstand 2,21 kOhm | × | 1 |
Benötigte Werkzeuge und Maschinen
- Lötkolben (allgemein) – Optional
- 3D-Drucker (allgemein) – Optional
Apps und Online-Dienste
- MIT App Inventor 2
Über dieses Projekt
In diesem Tutorial zeige ich, wie man einen Arduino-Temperaturcontroller aufbaut, der Messwerte per Bluetooth-Verbindung an eine Android-App sendet.
Benötigtes Material:
- Arduino Nano
- NTC-Thermistor – beachten Sie den Widerstand bei 25 °C, der im Arduino-Code für die Beta-Formel benötigt wird
- Widerstände: 2 kOhm, 1 kOhm und einer in der Größenordnung des Thermistors
- HC-06 Bluetooth-Modul
- Diverse Jumper-Kabel
Zuerst bauen Sie den Spannungsteiler für den Thermistor auf. Abbildung 1 zeigt die nötige Verschaltung, um den unbekannten Widerstand des Thermistors als Funktion der Temperatur zu bestimmen.

Abbildung 1 Spannungsteiler zur Bestimmung des Thermistor-Widerstands.
Diese Schaltung ermöglicht dem Arduino, den Spannungsabfall am unbekannten Widerstand zu messen. Mit dem bekannten Widerstandswert lässt sich der unbekannte Widerstand berechnen (Abbildung 2).
raw = analogRead(analogPin); if(raw) { ratio = raw * Vin; Vout = (ratio)/1024.0; ratio = (Vin/Vout) -1; R2 = R1 * ratio;
Abbildung 2 Arduino-Code zur Thermistor-Widerstandsberechnung.
Der ermittelte Widerstand wird mittels Beta-Formel in Temperatur umgerechnet (Abbildung 3).
HINWEIS: Der Beta-Wert Ihres Thermistors und Ro bei 25 °C stehen im Datenblatt! Prüfen Sie dies vor dem Hochladen des Codes!
Temp = Beta/log(R2/(Ro*exp(-Beta/To))); Temp = Temp - 273.15;
Abbildung 3 Arduino-Code zur Temperaturumrechnung.
Anschließend richten Sie das Bluetooth-Modul ein. Abbildung 4 zeigt, wie ein HC-06-Modul an die bestehende Schaltung angeschlossen wird. Ein Spannungsteiler ist nötig, um den TX1-Pin des Arduino (5 V) mit dem RX-Pin des Moduls (max. 3,3 V) zu verbinden.

Abbildung 4 Arduino-Schaltplan mit HC-06-Modul.
Daten werden über das Bluetooth-Modul gesendet, indem der serielle Port initialisiert und die gewünschten Werte ausgegeben werden. In diesem Beispiel soll der Temperaturbereich 25–75 °C überwacht werden, bei Erreichen der hohen Temperatur ca. 300 Sekunden gezählt und dann die Nachricht geändert werden (Abbildung 5).
void setup() { Serial.begin(9600); } void loop(){ if(Temp >= 74) { for (int i = 0; i <= 30; i++) { Serial.print("Temperature >= 74 °C"); delay(10000); } Serial.print("Heating Complete"); delay(10000); } else if (Temp <= 26){ Serial.print("Temperature <= 25 °C"); delay(10000); } else { Serial.print("Temperature: "); Serial.println(Temp); delay(10000); } }
Abbildung 5 Arduino-Code für serielle Initialisierung und Werteausgabe.
Das fertige Gerät auf dem Steckbrett sehen Sie in Abbildung 6.

Abbildung 6 Vollständiges Gerät auf Steckbrett.
Der letzte Schritt ist die Kopplung des Bluetooth-Moduls mit einem Android-Handy zur Datenvisualisierung. Eine einfache App wurde mit MIT App Inventor 2 programmiert. Abbildungen 7 und 8 zeigen Benutzeroberfläche und Programmierblöcke.

Abbildung 7 Benutzeroberfläche mit App Inventor 2.

Abbildung 8 Programmierblöcke in App Inventor 2.
Die vorgeschlagene App ist in der App Inventor Gallery verfügbar: https://ai2.appinventor.mit.edu/#5876233188016128
Mit dem einfachen, intuitiven Blocksystem von App Inventor lassen sich viele weitere Apps für beliebige Zwecke bauen. Ich benötigte z. B. eine Benachrichtigung per Ton, wenn die Temperatur unter 25 °C fällt, sowie eine Meldung nach 5 Minuten bei 75 °C, dass der Heizzyklus abgeschlossen ist.
Optional: Ein letzter Schritt könnte das Verlöten der Komponenten und der 3D-Druck eines Gehäuses sein. Abbildung 9 zeigt das Ergebnis.

Abbildung 9 Fertiges Gerät, einsatzbereit.
An der Gehäuseseite wurde ein Loch für das Mini-USB-Kabel zur Stromversorgung gebohrt. Das lange rot-schwarze Kabel dient nur dazu, den Thermistor weiter von der Elektronik zu entfernen (ich muss Lösungstemperaturen messen, daher sollte die Elektronik so weit wie möglich weg sein).
Ich hoffe, dieses einfache Projekt hilft Ihnen, die Grundlagen der seriellen Kommunikation mit Bluetooth-Modulen zu verstehen, um sie in eigenen Projekten anzuwenden.
Bei Fehlern oder Fragen melden Sie sich gerne.
EDIT: Ich fand einen Fehler in der Schaltplan-Verdrahtung des Spannungsteilers für das Bluetooth-Modul – dieser wurde behoben.
EDIT2: Falls Probleme beim Hochladen des Codes auftreten, versuchen Sie, das Bluetooth-Modul abzuklemmen.
Code
Temperaturmonitor mit Bluetooth-Modul (Arduino)
Zur Berechnung des NTC-Thermistor-Widerstands werden 5 V in Reihe mit einem bekannten Widerstand (hier ca. 10 kOhm) angelegt. Über den analogen Pin A0 wird die Spannung des Teilers gemessen und der NTC-Widerstand berechnet. Dieser wird mittels Beta-Gleichung (Beta-Wert anpassen!) in Temperatur umgerechnet und per Bluetooth an die Android-App gesendet. Der Code lässt sich für spezifische Temperaturbereiche anpassen – hier: Überwachung zwischen 25 und 75 °C mit 5 Minuten Wartezeit bei der oberen Temperatur.
// Temperature monitor with bluetooth module int analogPin= 0; int raw= 0; int Vin= 5; float Vout= 0; float R1= 10000; //change to your system float Ro= 10000; //change to your system float R2= 0; float ratio= 0; float Temp = 0; float Beta = 3694; //change to your system float To = 298.15; // thermistor goes from 10k at 25°C. Choose reference resistance accondingly void setup() { Serial.begin(9600); } void loop() { raw= analogRead(analogPin); if(raw) { ratio = raw * Vin; Vout = (ratio)/1024.0; ratio = (Vin/Vout) -1; R2= R1 * ratio; Temp = Beta/log(R2/(Ro*exp(-Beta/To))); Temp = Temp -273.15; if(Temp >= 74) { for (int i = 0; i <= 30; i++) { Serial.print("Temperature >= 74 °C"); //change to your system delay(10000); } Serial.print("Heating Complete"); delay(10000); } else if (Temp <= 26){ Serial.print("Temperature <= 25 °C"); //change to your system delay(10000); } else { Serial.print("Temperature: "); //change to your system Serial.println(Temp); delay(10000); } } }
Schaltplan
Widerstand R2 sollte entsprechend dem Widerstand des verwendeten Thermistors angepasst werden. Der Temperaturmessfehler nimmt mit der Abweichung (R_unbekannt - R2) zu.
Herstellungsprozess
- Raspberry Pi Temperatur- & Feuchtigkeits-Netzwerkmonitor – DIY Setup Guide
- ThingSpeak Temperatur-Monitor mit Raspberry Pi & BrickPi bauen
- Heimtemperatur mit Raspberry Pi Dashboard überwachen
- Smart Thirst Alert: DIY Pflanzen-Alarm für optimale Bewässerung
- Italienische Word Clock mit Arduino Nano, NeoPixel, LCD & RTC
- Zuverlässiger Sigfox-kWh-Zähler mit Arduino MKR Fox 1200
- Berührungsloses Gesten-Schloss: Sicherer Zugang mit APDS-9960 & Arduino
- Arduino Nano Begleiter-Set – Essentielle Bauteile & Werkzeuge für DIY-Elektronik
- Isolierter Analogeingang für Arduino: Spannung/Strom galvanisch trennen
- Präziser Reaktionszeit-Test mit Arduino UNO