ESP32 Bluetooth Temperature Example - Temperatur Anzeige Tutorial

Überblick

Das Bluetooth Temperatur Beispiel bietet eine dedizierte Temperatur-Anzeige, die über die DIYables Bluetooth STEM App zugänglich ist. Entwickelt für ESP32 Boards mit Unterstützung für sowohl BLE (Bluetooth Low Energy) als auch Classic Bluetooth Verbindungen. Senden Sie Temperaturwerte mit konfigurierbarem Minimum/Maximum-Bereich und Einheitenlabels — perfekt für Thermometer, Wetterstationen, HVAC-Überwachung und jede Temperaturmess-Anwendung.

Dieses Beispiel unterstützt zwei Bluetooth-Modi:

  • ESP32 BLE (Bluetooth Low Energy): Funktioniert auf Android und iOS
  • ESP32 Classic Bluetooth: Funktioniert nur auf Android. iOS unterstützt kein Classic Bluetooth. Verwenden Sie BLE, wenn Sie iOS-Unterstützung benötigen.
ESP32 Bluetooth Temperature Example - Temperatur Anzeige Tutorial

Funktionen

  • Temperatur-Anzeige: Visuelle Thermometer-Anzeige
  • Konfigurierbarer Bereich: Stellen Sie Minimum- und Maximum-Temperaturwerte ein
  • Benutzerdefinierte Einheiten: Zeigen Sie °C, °F, K oder jede benutzerdefinierte Einheit an
  • Echtzeitaktualisierungen: Senden Sie Live-Temperaturwerte
  • Request Callback: App kann aktuelle Temperatur auf Anfrage anfordern
  • BLE & Classic Bluetooth: Wählen Sie den Bluetooth-Modus, der zu Ihrem Projekt passt
  • Plattformübergreifend: BLE-Modus funktioniert auf Android und iOS; Classic Bluetooth funktioniert auf Android
  • Energiesparend: BLE-Modus verbraucht weniger Strom als Classic Bluetooth

Benötigte Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×(Alternativ) ESP32 Uno-form board
1×(Alternativ) ESP32 S3 Uno-form board
1×USB-Kabel Typ-C
1×Breadboard (Steckplatine)
1×Jumper-Kabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 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.

ESP32 Code

Schnelle Schritte

Befolgen Sie diese Anweisungen Schritt für Schritt:

  • Falls Sie ESP32 zum ersten Mal verwenden, lesen Sie das Tutorial zur Einrichtung der Umgebung für ESP32 in der Arduino IDE.
  • Verbinden Sie das ESP32 Board über ein USB-Kabel mit Ihrem Computer.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das entsprechende ESP32 Board und den COM-Port aus.
  • Navigieren Sie zum Libraries Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie nach "DIYables Bluetooth", dann finden Sie die DIYables Bluetooth Bibliothek von DIYables
  • Klicken Sie auf Install, um die Bibliothek zu installieren.
ESP32 DIYables Bluetooth library
  • Sie werden gefragt, ob Sie andere Bibliotheks-Abhängigkeiten installieren möchten
  • Klicken Sie auf Install All, um alle Bibliotheks-Abhängigkeiten zu installieren.
ESP32 DIYables Bluetooth dependency

Wählen Sie einen der beiden Bluetooth-Modi unten, je nach Ihren Bedürfnissen:

ESP32 Classic Bluetooth Code (funktioniert nur mit der App auf Android)

Hinweis: Classic Bluetooth wird auf iOS NICHT unterstützt. Falls Sie iOS-Unterstützung benötigen, verwenden Sie den BLE Code unten.

  • In der Arduino IDE gehen Sie zu File Examples DIYables Bluetooth Esp32Bluetooth_Temperature Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
/* * DIYables Bluetooth Library - ESP32 Classic Bluetooth Temperature Example * Works with DIYables Bluetooth STEM app on Android * Note: Classic Bluetooth is NOT supported on iOS. Use BLE examples for iOS support. * * This example demonstrates the Bluetooth Temperature feature: * - Display temperature sensor readings * - Configurable temperature range and unit * - Real-time temperature updates * * Compatible Boards: * - ESP32 (all variants with Classic Bluetooth) * - ESP32-WROOM-32 * - ESP32-DevKitC * - ESP32-WROVER * * Note: Select "Huge APP (3MB No OTA/1MB SPIFFS)" partition scheme * in Arduino IDE: Tools > Partition Scheme * * Optional: Temperature sensor (DHT22, DS18B20, or analog thermistor) * * Setup: * 1. Upload the sketch to your ESP32 * 2. Open Serial Monitor (115200 baud) to see connection status * 3. Use DIYables Bluetooth App to connect and view temperature * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothTemperature.h> #include <platforms/DIYables_Esp32Bluetooth.h> // Create Bluetooth instances DIYables_Esp32Bluetooth bluetooth("ESP32_Temp"); DIYables_BluetoothServer bluetoothServer(bluetooth); // Create Temperature app instance (min=-10°C, max=50°C, unit="°C") DIYables_BluetoothTemperature bluetoothTemperature(-10.0, 50.0, "°C"); // Variables for temperature simulation float currentTemperature = 25.0; unsigned long lastTempUpdate = 0; const unsigned long TEMP_UPDATE_INTERVAL = 2000; // Update every 2 seconds // Simulated temperature sensor reading float readTemperature() { // TODO: Replace with actual sensor reading // Examples: // - DHT22: dht.readTemperature() // - DS18B20: sensors.getTempCByIndex(0) // - Analog thermistor: analogToTemperature(analogRead(34)) // - ESP32 internal temp: temperatureRead() (approximate) // Simulate temperature changes static float offset = 0; offset += random(-10, 11) / 10.0; // Random walk if (offset > 5.0) offset = 5.0; if (offset < -5.0) offset = -5.0; return 25.0 + offset; // Base temperature 25°C with variation } void setup() { Serial.begin(115200); delay(1000); Serial.println("DIYables Bluetooth - ESP32 Temperature Example"); // TODO: Initialize your temperature sensor here // Examples: // dht.begin(); // sensors.begin(); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add temperature app to server bluetoothServer.addApp(&bluetoothTemperature); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); // Send initial temperature reading float temp = readTemperature(); bluetoothTemperature.send(temp); Serial.print("Initial temperature sent: "); Serial.print(temp); Serial.println("°C"); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); // Optional: Handle requests for temperature value bluetoothTemperature.onTemperatureRequest([]() { float temp = readTemperature(); bluetoothTemperature.send(temp); Serial.print("Temperature requested - Sent: "); Serial.print(temp); Serial.println("°C"); }); // You can change temperature configuration at runtime: // bluetoothTemperature.setRange(-40.0, 125.0); // Wide range for industrial sensors // bluetoothTemperature.setUnit("°F"); // Change to Fahrenheit Serial.println("Waiting for Bluetooth connection..."); } void loop() { // Handle Bluetooth server communications bluetoothServer.loop(); // Send temperature updates periodically (only when connected) if (bluetooth.isConnected() && millis() - lastTempUpdate >= TEMP_UPDATE_INTERVAL) { lastTempUpdate = millis(); // Read temperature from sensor currentTemperature = readTemperature(); // Send to Bluetooth app bluetoothTemperature.send(currentTemperature); // Print to Serial Monitor Serial.print("Temperature: "); Serial.print(currentTemperature); Serial.println("°C"); } delay(10); }
  • Klicken Sie auf Upload in der Arduino IDE, um den Code auf den ESP32 zu laden
  • Öffnen Sie den Serial Monitor
  • Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht folgendermaßen aus:
COM6
Send
DIYables Bluetooth - ESP32 Temperature Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ESP32 BLE Code (funktioniert mit der App auf Android und iOS)

  • In der Arduino IDE gehen Sie zu File Examples DIYables Bluetooth Esp32BLE_Temperature Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
/* * DIYables Bluetooth Library - ESP32 BLE Temperature Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Temperature feature: * - Display temperature sensor readings * - Configurable temperature range and unit * - Real-time temperature updates * * Compatible Boards: * - ESP32-WROOM-32 * - ESP32-DevKitC * - ESP32-WROVER * - ESP32-S3 * - ESP32-C3 * - Any ESP32 board supporting BLE * * Note: Select "Huge APP (3MB No OTA/1MB SPIFFS)" partition scheme * in Arduino IDE: Tools > Partition Scheme * * Optional: Temperature sensor (DHT22, DS18B20, or analog thermistor) * * Setup: * 1. Upload the sketch to your ESP32 * 2. Open Serial Monitor (115200 baud) to see connection status * 3. Use DIYables Bluetooth App to connect and view temperature * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothTemperature.h> #include <platforms/DIYables_Esp32BLE.h> // BLE Configuration const char* DEVICE_NAME = "ESP32BLE_Temp"; const char* SERVICE_UUID = "19B10000-E8F2-537E-4F6C-D104768A1214"; const char* TX_UUID = "19B10001-E8F2-537E-4F6C-D104768A1214"; const char* RX_UUID = "19B10002-E8F2-537E-4F6C-D104768A1214"; // Create Bluetooth instances DIYables_Esp32BLE bluetooth(DEVICE_NAME, SERVICE_UUID, TX_UUID, RX_UUID); DIYables_BluetoothServer bluetoothServer(bluetooth); // Create Temperature app instance (min=-10°C, max=50°C, unit="°C") DIYables_BluetoothTemperature bluetoothTemperature(-10.0, 50.0, "°C"); // Variables for temperature simulation float currentTemperature = 25.0; unsigned long lastTempUpdate = 0; const unsigned long TEMP_UPDATE_INTERVAL = 2000; // Simulated temperature sensor reading float readTemperature() { // TODO: Replace with actual sensor reading static float offset = 0; offset += random(-10, 11) / 10.0; if (offset > 5.0) offset = 5.0; if (offset < -5.0) offset = -5.0; return 25.0 + offset; } void setup() { Serial.begin(115200); delay(1000); Serial.println("DIYables Bluetooth - ESP32 BLE Temperature Example"); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add temperature app to server bluetoothServer.addApp(&bluetoothTemperature); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); float temp = readTemperature(); bluetoothTemperature.send(temp); Serial.print("Initial temperature sent: "); Serial.print(temp); Serial.println("°C"); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); bluetoothTemperature.onTemperatureRequest([]() { float temp = readTemperature(); bluetoothTemperature.send(temp); Serial.print("Temperature requested - Sent: "); Serial.print(temp); Serial.println("°C"); }); Serial.println("Waiting for Bluetooth connection..."); } void loop() { bluetoothServer.loop(); if (bluetooth.isConnected() && millis() - lastTempUpdate >= TEMP_UPDATE_INTERVAL) { lastTempUpdate = millis(); currentTemperature = readTemperature(); bluetoothTemperature.send(currentTemperature); Serial.print("Temperature: "); Serial.print(currentTemperature); Serial.println("°C"); } delay(10); }
  • Klicken Sie auf Upload in der Arduino IDE, um den Code auf den ESP32 zu laden
  • Öffnen Sie den Serial Monitor
  • Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht folgendermaßen aus:
COM6
Send
DIYables Bluetooth - ESP32 BLE Temperature Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Mobile App

  • Installieren Sie die DIYables Bluetooth App auf Ihrem Smartphone: Android | iOS
  • Falls Sie den ESP32 Classic Bluetooth Code verwenden, müssen Sie den ESP32 mit Ihrem Android-Telefon vor dem Öffnen der App koppeln:
    • Gehen Sie zu den Einstellungen > Bluetooth Ihres Telefons
    • Stellen Sie sicher, dass Bluetooth eingeschaltet ist
    • Ihr Telefon scannt nach verfügbaren Geräten
    • Finden und tippen Sie auf "ESP32_Temp" in der Liste der verfügbaren Geräte
    • Bestätigen Sie die Kopplungsanfrage (keine PIN erforderlich)
    • Warten Sie, bis "Gekoppelt" unter dem Gerätenamen angezeigt wird
  • Falls Sie den ESP32 BLE Code verwenden, ist keine Kopplung erforderlich. Gehen Sie einfach zum nächsten Schritt.
  • Öffnen Sie die DIYables Bluetooth App
  • Beim ersten Öffnen der App werden Berechtigungen angefragt. Bitte gewähren Sie folgende:
    • Nearby Devices Berechtigung (Android 12+) / Bluetooth Berechtigung (iOS) - erforderlich zum Scannen und Verbinden mit Bluetooth-Geräten
    • Location Berechtigung (nur Android 11 und niedriger) - erforderlich bei älteren Android-Versionen zum Scannen nach BLE-Geräten
  • Stellen Sie sicher, dass Bluetooth eingeschaltet ist auf Ihrem Telefon
  • Auf dem Startbildschirm tippen Sie auf Connect. Die App scannt nach BLE und Classic Bluetooth Geräten.
DIYables Bluetooth App - Startbildschirm mit Scan Button
  • Finden und tippen Sie Ihr Gerät in den Scan-Ergebnissen an, um eine Verbindung herzustellen:
    • Für Classic Bluetooth: tippen Sie auf "ESP32_Temp"
    • Für BLE: tippen Sie auf "ESP32BLE_Temp"
  • Nach der Verbindung kehrt die App automatisch zum Startbildschirm zurück. Wählen Sie die Temperature App aus dem App-Menü.
DIYables Bluetooth App - Startbildschirm mit Temperature App

Hinweis: Sie können das Einstellungs-Symbol auf dem Startbildschirm antippen, um Apps auf dem Startbildschirm zu verbergen/anzeigen. Für weitere Details siehe das DIYables Bluetooth App Benutzerhandbuch.

  • Die Temperatur-Anzeige zeigt den aktuellen Temperaturwert an
DIYables Bluetooth App - Temperature Gauge Screen

Schauen Sie nun zurück zum Serial Monitor in der Arduino IDE. Sie werden sehen:

COM6
Send
Bluetooth connected! Temperature: 24.5 °C Temperature: 24.8 °C Temperature: 25.1 °C Temperature: 24.9 °C
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Beobachten Sie, wie sich die Temperatur-Anzeige in Echtzeit in der App aktualisiert

Kreative Anpassung - Code an Ihr Projekt anpassen

Temperaturbereich und Einheit konfigurieren

Stellen Sie den Anzeigebereich und die Einheit ein:

// Constructor: DIYables_BluetoothTemperature(min, max, unit) DIYables_BluetoothTemperature bluetoothTemperature(-10.0, 50.0, "°C"); // Bereich zur Laufzeit ändern bluetoothTemperature.setRange(-20.0, 60.0); // Einheit ändern bluetoothTemperature.setUnit("°F"); // Aktuelle Konfiguration lesen float minTemp = bluetoothTemperature.getMin(); // Gibt -10.0 zurück float maxTemp = bluetoothTemperature.getMax(); // Gibt 50.0 zurück String unit = bluetoothTemperature.getUnit(); // Gibt "°C" zurück

Temperaturwert senden

// Aktuellen Temperaturwert senden float temperature = 25.3; bluetoothTemperature.send(temperature); // Text-Nachricht senden bluetoothTemperature.send("Sensor error");

Temperatur-Anfragen von der App behandeln

bluetoothTemperature.onTemperatureRequest([]() { float temp = readTemperature(); bluetoothTemperature.send(temp); Serial.println("App requested temperature: " + String(temp)); });

Verbindungs-Events behandeln

bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); // Aktuelle Temperatur sofort senden bluetoothTemperature.send(currentTemperature); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); });

Verwendung der Temperatur-Anzeige

App-Oberfläche

Die Temperatur-Oberfläche in der DIYables Bluetooth App zeigt:

  • Temperatur-Anzeige: Visuelles Thermometer mit aktuellem Wert
  • Numerische Anzeige: Zeigt den exakten Temperaturwert
  • Einheiten-Label: Zeigt die konfigurierte Einheit an
  • Bereichsanzeigen: Zeigt Min und Max des konfigurierten Bereichs

Temperatur-Einheiten

Häufige Konfigurationen:

  • Celsius: DIYables_BluetoothTemperature(-10.0, 50.0, "°C")
  • Fahrenheit: DIYables_BluetoothTemperature(14.0, 122.0, "°F")
  • Kelvin: DIYables_BluetoothTemperature(263.0, 323.0, "K")

Programmier-Beispiele

DHT22 Sensor Auslesen

#include <DHT.h> #define DHT_PIN 4 #define DHT_TYPE DHT22 DHT dht(DHT_PIN, DHT_TYPE); void setup() { Serial.begin(115200); dht.begin(); // ... Bluetooth Setup ... bluetoothTemperature.onTemperatureRequest([]() { float temp = dht.readTemperature(); if (!isnan(temp)) { bluetoothTemperature.send(temp); } }); } void loop() { bluetoothServer.loop(); static unsigned long lastUpdate = 0; if (millis() - lastUpdate >= 2000) { lastUpdate = millis(); float temp = dht.readTemperature(); if (!isnan(temp)) { bluetoothTemperature.send(temp); Serial.println("Temperature: " + String(temp, 1) + " °C"); } } delay(10); }

DS18B20 One-Wire Sensor

#include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_PIN 4 OneWire oneWire(ONE_WIRE_PIN); DallasTemperature sensors(&oneWire); void setup() { Serial.begin(115200); sensors.begin(); // ... Bluetooth Setup mit Bereich passend zur Sensor-Kapazität ... // DS18B20 Bereich: -55°C bis +125°C bluetoothTemperature.onTemperatureRequest([]() { sensors.requestTemperatures(); float temp = sensors.getTempCByIndex(0); if (temp != DEVICE_DISCONNECTED_C) { bluetoothTemperature.send(temp); } }); } void loop() { bluetoothServer.loop(); static unsigned long lastUpdate = 0; if (millis() - lastUpdate >= 1000) { lastUpdate = millis(); sensors.requestTemperatures(); float temp = sensors.getTempCByIndex(0); if (temp != DEVICE_DISCONNECTED_C) { bluetoothTemperature.send(temp); Serial.println("Temperature: " + String(temp, 1) + " °C"); } else { Serial.println("Sensor disconnected!"); } } delay(10); }

NTC Thermistor Auslesen

const int THERMISTOR_PIN = 34; const float SERIES_RESISTOR = 10000.0; const float NOMINAL_RESISTANCE = 10000.0; const float NOMINAL_TEMP = 25.0; const float B_COEFFICIENT = 3950.0; float readThermistor() { int raw = analogRead(THERMISTOR_PIN); float resistance = SERIES_RESISTOR / (4095.0 / raw - 1.0); float steinhart = log(resistance / NOMINAL_RESISTANCE) / B_COEFFICIENT; steinhart += 1.0 / (NOMINAL_TEMP + 273.15); float temperature = 1.0 / steinhart - 273.15; return temperature; } void loop() { bluetoothServer.loop(); static unsigned long lastUpdate = 0; if (millis() - lastUpdate >= 1000) { lastUpdate = millis(); float temp = readThermistor(); bluetoothTemperature.send(temp); Serial.println("Temperature: " + String(temp, 1) + " °C"); } delay(10); }

Fahrenheit Anzeige

// Für Fahrenheit-Anzeige konfigurieren DIYables_BluetoothTemperature bluetoothTemperature(32.0, 122.0, "°F"); float celsiusToFahrenheit(float celsius) { return celsius * 9.0 / 5.0 + 32.0; } void loop() { bluetoothServer.loop(); static unsigned long lastUpdate = 0; if (millis() - lastUpdate >= 2000) { lastUpdate = millis(); float tempC = dht.readTemperature(); if (!isnan(tempC)) { float tempF = celsiusToFahrenheit(tempC); bluetoothTemperature.send(tempF); Serial.println("Temperature: " + String(tempF, 1) + " °F"); } } delay(10); }

Erweiterte Programmier-Techniken

Temperatur-Mittelwert / Glättung

const int NUM_SAMPLES = 10; float samples[NUM_SAMPLES]; int sampleIndex = 0; bool bufferFull = false; float getSmoothedTemperature(float newReading) { samples[sampleIndex] = newReading; sampleIndex = (sampleIndex + 1) % NUM_SAMPLES; if (sampleIndex == 0) bufferFull = true; int count = bufferFull ? NUM_SAMPLES : sampleIndex; float sum = 0; for (int i = 0; i < count; i++) { sum += samples[i]; } return sum / count; } void loop() { bluetoothServer.loop(); static unsigned long lastUpdate = 0; if (millis() - lastUpdate >= 1000) { lastUpdate = millis(); float rawTemp = readTemperature(); float smoothed = getSmoothedTemperature(rawTemp); bluetoothTemperature.send(smoothed); Serial.println("Raw: " + String(rawTemp, 2) + " Smoothed: " + String(smoothed, 2) + " °C"); } delay(10); }

Alert Schwellwert-Erkennung

const float HIGH_THRESHOLD = 35.0; const float LOW_THRESHOLD = 5.0; bool alertActive = false; void checkTemperatureAlerts(float temp) { if (temp > HIGH_THRESHOLD && !alertActive) { alertActive = true; bluetoothTemperature.send("HIGH TEMP ALERT!"); Serial.println("⚠️ High temperature alert: " + String(temp, 1) + " °C"); // Kühlventilator, Buzzer, etc. aktivieren } else if (temp < LOW_THRESHOLD && !alertActive) { alertActive = true; bluetoothTemperature.send("LOW TEMP ALERT!"); Serial.println("⚠️ Low temperature alert: " + String(temp, 1) + " °C"); // Heizung, etc. aktivieren } else if (temp > LOW_THRESHOLD && temp < HIGH_THRESHOLD) { alertActive = false; } }

Hardware-Integrations-Ideen

DHT22 / DHT11

Verbinden Sie mit jedem GPIO-Pin für Feuchtigkeits- und Temperaturwerte. Beliebte Wahl für Innenraumüberwachung.

DS18B20 Wasserdichte Sonde

Verwenden Sie OneWire-Protokoll für wasserdichte Temperaturmessung. Ideal für Flüssigkeiten, Boden und Außenanwendungen.

BME280 / BMP280

I2C Sensor für Temperatur, Feuchtigkeit und Luftdruck. Hohe Genauigkeit für Wetterstationen.

NTC Thermistor

Einfacher analoger Temperatursensor. Kostengünstig, funktioniert mit Spannungsteiler-Schaltung.

Thermocouple (MAX6675 / MAX31855)

Für Hochtemperatur-Messungen (bis 1000°C+). Verwendet in Öfen, Brennöfen und Industrieanwendungen.

BLE vs Classic Bluetooth - Was wählen?

FunktionBLE (Esp32BLE_Temperature)Classic Bluetooth (Esp32Bluetooth_Temperature)
iOS-Unterstützung? Ja? Nein
Android-Unterstützung? Ja? Ja
StromverbrauchNiedrigHöher
Reichweite~30-100m~10-100m
DatenrateNiedrigerHöher
Kopplung erforderlichNein (Auto-Connect)Ja (manuelle Kopplung)
Am besten fürBatteriebetrieben, plattformübergreifendHoher Durchsatz, nur Android

Fehlerbehebung

Häufige Probleme

1. Kann das Gerät in der App nicht finden

  • Stellen Sie sicher, dass der ESP32 eingeschaltet ist und der Sketch hochgeladen wurde
  • Für BLE: Stellen Sie sicher, dass Bluetooth und Standort Ihres Telefons aktiviert sind
  • Für Classic Bluetooth: Koppeln Sie das Gerät zuerst in den Bluetooth-Einstellungen des Telefons
  • Überprüfen Sie, dass das richtige Partition-Schema ausgewählt ist (Huge APP)

2. Temperatur zeigt 0 oder falschen Wert

  • Überprüfen Sie Sensor-Verkabelung und -Verbindungen
  • Prüfen Sie Sensor-Typ und Bibliotheks-Konfiguration
  • Verwenden Sie den Serial Monitor, um Werte vor Bluetooth zu bestätigen
  • Für DHT-Sensoren: Stellen Sie Pull-up-Widerstand (4.7k-10k) am Daten-Pin sicher

3. Temperatur aktualisiert nicht

  • Überprüfen Sie Ihr Update-Intervall in loop()
  • Stellen Sie sicher, dass bluetoothServer.loop() in der Hauptschleife aufgerufen wird
  • Stellen Sie sicher, dass der Sensor gültige Werte liest (prüfen Sie auf NaN)

4. Anzeige-Bereich stimmt nicht überein

  • Überprüfen Sie Constructor-Parameter: DIYables_BluetoothTemperature(min, max, unit)
  • Verwenden Sie setRange() zum dynamischen Anpassen
  • Temperaturwerte außerhalb des Bereichs werden trotzdem angezeigt, können aber abgeschnitten werden

5. Verbindung bricht häufig ab

  • Gehen Sie näher zum ESP32 (Entfernung reduzieren)
  • Für BLE: Prüfen Sie auf Interferenzen von anderen BLE-Geräten
  • Für Classic Bluetooth: Stellen Sie stabile Stromversorgung zum ESP32 sicher

6. Sketch zu groß / nicht genug Platz

  • In der Arduino IDE gehen Sie zu Tools > Partition Scheme und wählen Sie "Huge APP (3MB No OTA/1MB SPIFFS)" oder "No OTA (Large APP)"
  • Das Standard-Partition-Schema bietet nur ~1.2MB für App-Code, was für Bluetooth-Bibliotheken nicht ausreicht
  • Diese Einstellung gibt ~3MB durch Verzicht auf die OTA (Over-the-Air Update) Partition

Debug-Tipps

Fügen Sie umfassendes Debugging hinzu:

void debugTemperature(float temp) { Serial.println("=== Temperature Debug ==="); Serial.println("Value: " + String(temp, 2) + " " + bluetoothTemperature.getUnit()); Serial.println("Range: " + String(bluetoothTemperature.getMin(), 1) + " - " + String(bluetoothTemperature.getMax(), 1)); Serial.println("In Range: " + String(temp >= bluetoothTemperature.getMin() && temp <= bluetoothTemperature.getMax() ? "Yes" : "No")); Serial.println("========================="); }

Projektideen

Zuhause & Umgebung

  • Innenraum-Thermometer
  • Außen-Wetterstation
  • Kühlschrank/Gefrierschrank Temperaturmonitor
  • Gewächshaus Klimamonitor

Küche & Lebensmittel

  • Koch-Temperaturmonitor
  • Sous-Vide Controller-Anzeige
  • Fermentations-Temperaturverfolger
  • Ofen-Thermometer

Industrie & Labor

  • Server-Raum Temperatur-Alarm
  • Chemischer Prozessmonitor
  • Inkubator-Temperaturanzeige
  • Lötkolben-Temperaturanzeige

Wasser & Aquatik

  • Aquarium-Thermometer
  • Pool/Spa-Temperaturanzeige
  • Warmwasserboiler-Monitor
  • Hydroponik-Wassertemperatur

Integration mit anderen Bluetooth Apps

Kombination mit Bluetooth Plotter

Zeigen Sie aktuellen Wert an und stellen Sie Temperaturtrend dar:

void loop() { bluetoothServer.loop(); static unsigned long lastUpdate = 0; if (millis() - lastUpdate >= 2000) { lastUpdate = millis(); float temp = readTemperature(); // Auf Temperatur-Anzeige anzeigen bluetoothTemperature.send(temp); // Trend über Zeit darstellen bluetoothPlotter.send(temp); } delay(10); }

Kombination mit Bluetooth Table

Zeigen Sie Temperatur neben anderen Sensordaten:

// Temperatur-Anzeige für primären Wert bluetoothTemperature.send(temp); // Tabelle für detaillierte Aufschlüsselung bluetoothTable.sendValueUpdate("Current", String(temp, 1) + " °C"); bluetoothTable.sendValueUpdate("Min Today", String(minTemp, 1) + " °C"); bluetoothTable.sendValueUpdate("Max Today", String(maxTemp, 1) + " °C"); bluetoothTable.sendValueUpdate("Average", String(avgTemp, 1) + " °C");

Nächste Schritte

Nach dem Beherrschen des Bluetooth Temperature Beispiels versuchen Sie:

  1. Bluetooth Analog Gauge - Für generische Anzeige (Druck, Geschwindigkeit, etc.)
  2. Bluetooth Plotter - Für Visualisierung von Temperaturtrends über Zeit
  3. Bluetooth Table - Für Multi-Sensor Datenanzeige
  4. Mehrere Bluetooth Apps - Kombination von Temperatur mit anderen Anzeigen

Unterstützung

Für zusätzliche Hilfe:

  • Überprüfen Sie die API-Referenz-Dokumentation
  • Besuchen Sie DIYables Tutorials
  • Arduino Community-Foren

※ 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!