Arduino Nano ESP32 Bluetooth-Temperatur-Gauge-Beispiel - Temperaturanzeige via BLE-Anleitung

Übersicht

Dieses Beispiel implementiert eine visuelle Temperaturanzeige auf dem Arduino Nano ESP32 mit BLE (Bluetooth Low Energy) über die DIYables Bluetooth STEM-App. Zeigt Temperaturmessungen mit konfigurierbarem Bereich und Einheit auf einem Smartphone an. Geeignet für Temperaturüberwachung, Wetterstationen, HVAC-Projekte und Umwelterfassung.

Hinweis: Der Arduino Nano ESP32 unterstützt nur BLE — Classic Bluetooth wird nicht unterstützt. Die DIYables Bluetooth App funktioniert auf Android und iOS mit BLE.

Arduino Nano ESP32 Bluetooth-Temperatur-Gauge-Beispiel - Temperaturanzeige via BLE-Anleitung

Funktionen

  • Visuelle Anzeige: Temperaturanzeige auf dem Smartphone
  • Konfigurierbarer Bereich: Stellen Sie Minimum- und Maximumtemperaturwerte ein
  • Benutzerdefinierte Einheit: Zeigen Sie °C, °F oder eine benutzerdefinierte Einheit an
  • Echtzeitaktualisierungen: Senden Sie Temperaturänderungen in konfigurierbaren Intervallen
  • Bedarfsabfrage: Die App kann die aktuelle Temperatur anfordern
  • Android- und iOS-Unterstützung: BLE ist auf beiden Plattformen kompatibel
  • Keine Kopplung erforderlich: BLE verbindet sich ohne manuelle Kopplung

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-C
1×(Optional) DS18B20-Temperatursensor
1×(Optional) DHT11-Temperatur-Feuchte-Sensormodul
1×(Optional) DHT22-Temperatur-Feuchte-Sensormodul
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

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.

Arduino Nano ESP32 Code

Schnelle Schritte

  • Neu beim Arduino Nano ESP32? Starten Sie mit der Arduino Nano ESP32 Kurzanleitung.
  • Verbinden Sie den Arduino Nano ESP32 über USB mit Ihrem Computer.
  • Öffnen Sie die Arduino IDE.
  • Wählen Sie das Arduino Nano ESP32 Board und den richtigen COM-Port.
  • Klicken Sie auf das Symbol Bibliotheken in der linken Seitenleiste.
  • Suchen Sie nach "DIYables Bluetooth" und wählen Sie die DIYables Bluetooth-Bibliothek von DIYables.
  • Klicken Sie auf Installieren.
Arduino Nano ESP32 DIYables Bluetooth-Bibliothek
  • Wenn Sie aufgefordert werden, Abhängigkeiten zu installieren, klicken Sie auf Alle installieren.
Arduino Nano ESP32 DIYables Bluetooth-Abhängigkeit

BLE-Code

  • Öffnen Sie in der Arduino IDE Datei Beispiele DIYables Bluetooth ArduinoBLE_Temperature, oder fügen Sie den Code in den Editor 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 * * 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 Hochladen, um den Sketch auf das Board zu laden.
  • Öffnen Sie den Seriellen Monitor.
  • Die Ausgabe des Seriellen Monitors sollte wie folgt aussehen:
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - Temperature Example Waiting for Bluetooth connection...
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Mobile App

  • Installieren Sie die DIYables Bluetooth App auf Ihrem Smartphone: Android | iOS

Hinweis: Die DIYables Bluetooth App funktioniert auf Android und iOS mit BLE. Keine manuelle Kopplung erforderlich.

  • Starten Sie die DIYables Bluetooth App.
  • Gewähren Sie beim ersten Start die folgenden Berechtigungen:
    • Nahegelegene Geräte (Android 12+) / Bluetooth (iOS) — erforderlich, um Bluetooth-Geräte zu scannen und zu verbinden
    • Standort (nur Android 11 und darunter) — erforderlich für ältere Android-Versionen zum Scannen von BLE
  • Stellen Sie sicher, dass Bluetooth auf Ihrem Gerät aktiviert ist.
  • Tippen Sie auf Verbinden auf der Startseite. Die App scannt nach BLE-Geräten.
DIYables Bluetooth App - Startseite mit Scan-Schaltfläche
  • Tippen Sie auf "Arduino_Temp" in den Scan-Ergebnissen.
  • Nach dem Verbinden kehren Sie zur Startseite zurück und öffnen die App Temperatur.
DIYables Bluetooth App - Startseite mit Temperatur-App

Tippen Sie auf das Einstellungssymbol auf der Startseite, um Apps anzuzeigen oder auszublenden. Siehe das DIYables Bluetooth App-Benutzerhandbuch für Details.

  • Eine Temperaturanzeige zeigt die aktuelle Messung mit dem konfigurierten Bereich und der Einheit an.
DIYables Bluetooth App - Temperaturanzeige Bildschirm

Schauen Sie sich jetzt den Seriellen Monitor an. Die Ausgabe wird zeigen:

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Bluetooth connected! Temperature: 24.50 °C Temperature: 24.80 °C Temperature: 25.10 °C
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Kreative Anpassung - Passen Sie den Code an Ihr Projekt an

Konfigurieren Sie den Temperaturbereich und die Einheit

// Celsius: -10 to 50 DIYables_BluetoothTemperature bluetoothTemp(bluetoothServer, -10.0, 50.0, "°C"); // Fahrenheit: 0 to 120 DIYables_BluetoothTemperature bluetoothTemp(bluetoothServer, 0.0, 120.0, "°F"); // Custom range for industrial use DIYables_BluetoothTemperature bluetoothTemp(bluetoothServer, -40.0, 200.0, "°C");

Senden Sie Temperaturaktualisierungen

// Send temperature value to the app bluetoothTemp.send(25.5); // Read from a real sensor and send float temp = readTemperatureSensor(); bluetoothTemp.send(temp);

Bearbeiten Sie Temperaturanfragen

bluetoothTemp.onTemperatureRequest([]() { float temp = readTemperatureSensor(); bluetoothTemp.send(temp); Serial.print("Requested: "); Serial.println(temp); });

Programmierbeispiele

DS18B20-Temperatursensor

#include <OneWire.h> #include <DallasTemperature.h> OneWire oneWire(2); DallasTemperature sensors(&oneWire); DIYables_BluetoothTemperature bluetoothTemp(bluetoothServer, -10.0, 50.0, "°C"); void setup() { sensors.begin(); bluetoothTemp.onTemperatureRequest([]() { sensors.requestTemperatures(); float temp = sensors.getTempCByIndex(0); bluetoothTemp.send(temp); }); } void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 2000) { lastTime = millis(); sensors.requestTemperatures(); float temp = sensors.getTempCByIndex(0); bluetoothTemp.send(temp); } }

DHT22-Sensor mit Fahrenheit

#include <DHT.h> DHT dht(2, DHT22); DIYables_BluetoothTemperature bluetoothTemp(bluetoothServer, 0.0, 120.0, "°F"); void setup() { dht.begin(); bluetoothTemp.onTemperatureRequest([]() { float temp = dht.readTemperature(true); // Fahrenheit if (!isnan(temp)) { bluetoothTemp.send(temp); } }); } void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 2000) { lastTime = millis(); float temp = dht.readTemperature(true); if (!isnan(temp)) { bluetoothTemp.send(temp); } } }

Fehlerbehebung

Häufig auftretende Probleme

1. Gerät nicht in der App sichtbar

  • Bestätigen Sie, dass das Board eingeschaltet ist und der Sketch hochgeladen wurde
  • Überprüfen Sie, ob Bluetooth auf Ihrem Telefon aktiviert ist
  • Aktivieren Sie auf Android 11 und älter auch Standortdienste

2. Temperatur wird nicht aktualisiert

  • Überprüfen Sie, ob send() in der Schleife aufgerufen wird
  • Überprüfen Sie das Update-Intervall-Timing
  • Stellen Sie sicher, dass bluetoothServer.loop() aufgerufen wird

3. Temperatur zeigt falschen Bereich

  • Überprüfen Sie die Min- und Max-Werte im Konstruktor
  • Stellen Sie sicher, dass die Einheitenzeichenfolge korrekt ist
  • Der Temperaturwert muss im konfigurierten Bereich liegen

4. Sensormessung ist NaN

  • Überprüfen Sie die Sensorverkabelung
  • Überprüfen Sie die Sensorversorgung
  • Fügen Sie isnan() Überprüfung hinzu, bevor Sie senden

5. Upload schlägt fehl oder Board wird nicht erkannt

  • Installieren Sie das neueste Arduino Nano ESP32 Board-Paket über Board Manager
  • Versuchen Sie ein anderes USB-Kabel oder einen anderen Port

Projektideen

  • Raumtemperaturüberwachung
  • Gewächshausklimaregler
  • Kühlschrank-/Gefrierschrank-Thermometer
  • Wetterstations-Display
  • Aquarium-Temperaturüberwachung

Nächste Schritte

Nach Abschluss des Bluetooth-Temperatur-Beispiels erkunden Sie:

  1. Bluetooth-Analog-Anzeige — Display für Allzweck-Anzeigen
  2. Bluetooth-Plotter — Temperaturprotokollierung im Zeitverlauf
  3. Bluetooth-Tabelle — Multi-Sensor-Anzeige
  4. Mehrere Bluetooth-Apps — Kombinieren Sie Temperatur mit anderen App-Widgets

Unterstützung

Für weitere Hilfe:

  • Überprüfen Sie die API-Referenzdokumentation
  • 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!