ESP32 Bluetooth Temperatuur Voorbeeld - Temperatuurmeter Display Tutorial

Overzicht

Het Bluetooth Temperatuur voorbeeld biedt een speciaal temperatuurmeter display dat toegankelijk is via de DIYables Bluetooth STEM-app. Ontworpen voor ESP32 bordjes met ondersteuning voor zowel BLE (Bluetooth Low Energy) als Classic Bluetooth verbindingen. Verstuur temperatuurmetingen met een configureerbaar minimum/maximum bereik en eenheidlabels — perfect voor thermometers, weerstations, HVAC-monitoring en elke toepassing die temperatuur detecteert.

Dit voorbeeld ondersteunt twee Bluetooth modi:

  • ESP32 BLE (Bluetooth Low Energy): Werkt op zowel Android als iOS
  • ESP32 Classic Bluetooth: Werkt alleen op Android. iOS ondersteunt Classic Bluetooth niet. Gebruik BLE als u iOS-ondersteuning nodig hebt.
ESP32 Bluetooth Temperature Example - Temperature Gauge Display Tutorial

Kenmerken

  • Temperatuurmeter: Visueel display in thermometerstijl
  • Configureerbaar bereik: Stel minimum- en maximumtemperatuurwaarden in
  • Aangepaste eenheden: Toon °C, °F, K of een zelfgekozen eenheidstring
  • Realtime updates: Verstuur live temperatuurmetingen
  • Callback bij verzoek: De app kan de huidige temperatuur opvragen wanneer gewenst
  • BLE & Classic Bluetooth: Kies de Bluetooth-modus die bij uw project past
  • Cross-platform: BLE werkt op Android en iOS, Classic Bluetooth werkt op Android
  • Laag stroomverbruik optie: BLE verbruikt minder stroom dan Classic Bluetooth

Benodigd Materiaal

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

ESP32 Code

Snelle Stappen

Volg deze instructies stap voor stap:

  • Als u de ESP32 voor het eerst gebruikt, raadpleeg dan de tutorial over het opzetten van de omgeving voor ESP32 in de Arduino IDE.
  • Sluit het ESP32-bord aan op uw computer met een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste ESP32-bord en de juiste COM-poort.
  • Ga naar het Bibliotheken icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek op "DIYables Bluetooth" en vind de DIYables Bluetooth bibliotheek van DIYables.
  • Klik op de Installeren knop om de bibliotheek te installeren.
ESP32 DIYables Bluetooth library
  • Er wordt gevraagd om aanvullende bibliotheekafhankelijkheden te installeren.
  • Klik op de Alles installeren knop om alle benodigde bibliotheken te installeren.
ESP32 DIYables Bluetooth dependency

Kies een van de twee Bluetooth-modi hieronder, afhankelijk van uw behoeften:

ESP32 Classic Bluetooth Code (werkt alleen met app op Android)

Let op: Classic Bluetooth wordt NIET ondersteund op iOS. Als u iOS-ondersteuning nodig hebt, gebruik dan de BLE-code hieronder.

  • Open in Arduino IDE: Bestand Voorbeelden DIYables Bluetooth Esp32Bluetooth_Temperature voorbeeld, of kopieer de bovenstaande code en plak deze in de editor van Arduino IDE
/* * 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); }
  • Klik op de Uploaden knop in Arduino IDE om de code naar ESP32 te uploaden
  • Open de Seriële Monitor
  • Bekijk het resultaat in de Seriële Monitor. Het ziet eruit als hieronder:
COM6
Send
DIYables Bluetooth - ESP32 Temperature Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ESP32 BLE Code (werkt met app op zowel Android als iOS)

  • Open in Arduino IDE: Bestand Voorbeelden DIYables Bluetooth Esp32BLE_Temperature voorbeeld, of kopieer de bovenstaande code en plak deze in de editor van Arduino IDE
/* * 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); }
  • Klik op de Uploaden knop in Arduino IDE om de code naar ESP32 te uploaden
  • Open de Seriële Monitor
  • Bekijk het resultaat in de Seriële Monitor. Het ziet eruit als hieronder:
COM6
Send
DIYables Bluetooth - ESP32 BLE Temperature Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Mobiele App

  • Installeer de DIYables Bluetooth App op uw smartphone: Android | iOS
  • Als u de ESP32 Classic Bluetooth code gebruikt, moet u het ESP32 bord eerst koppelen met uw Android-telefoon voordat u de app opent:
    • Ga naar de Instellingen > Bluetooth van uw telefoon
    • Zorg dat Bluetooth is ingeschakeld
    • Uw telefoon zoekt naar beschikbare apparaten
    • Zoek en tik op "ESP32_Temp" in de lijst met beschikbare apparaten
    • Bevestig het koppelingsverzoek (geen pincode nodig)
    • Wacht tot er "Gekoppeld" onder de apparaattnaam verschijnt
  • Als u de ESP32 BLE code gebruikt, is koppelen niet nodig. Ga direct door naar de volgende stap.
  • Open de DIYables Bluetooth App
  • Bij de eerste keer openen vraagt de app om diverse toestemmingen. Verleen alsjeblieft:
    • Toestemming voor Nabije apparaten (Android 12+) / Bluetooth toestemming (iOS) — nodig om Bluetooth-apparaten te scannen en verbinden
    • Locatietoestemming (alleen voor Android 11 en lager) — nodig voor oudere Android-versies om BLE apparaten te scannen
  • Zorg dat Bluetooth aan staat op uw telefoon
  • Tik op het startscherm op de Verbinden knop. De app scant naar zowel BLE als Classic Bluetooth apparaten.
DIYables Bluetooth App - Home Screen with Scan Button
  • Zoek uw apparaat in de scanresultaten en tik om te verbinden:
    • Voor Classic Bluetooth: tik op "ESP32_Temp"
    • Voor BLE: tik op "ESP32BLE_Temp"
  • Zodra verbonden, gaat de app automatisch terug naar het startscherm. Selecteer de Temperature app uit het app-menu.
DIYables Bluetooth App - Home Screen with Temperature App

Let op: U kunt op het instellingen-icoon op het startscherm tikken om apps op het startscherm te verbergen/tonen. Zie voor meer details de DIYables Bluetooth App Gebruikershandleiding.

  • De temperatuurmeter toont nu de actuele temperatuurwaarde.
DIYables Bluetooth App - Temperature Gauge Screen

Kijk nu terug naar de Seriële Monitor in Arduino IDE. U ziet:

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  
  • Volg de temperatuurmeter in de app die in realtime wordt bijgewerkt

Creatieve Aanpassing - Pas de Code aan voor uw Project

Configureer Temperatuurbereik en Eenheid

Stel het displaybereik en de eenheid in:

// Constructor: DIYables_BluetoothTemperature(min, max, unit) DIYables_BluetoothTemperature bluetoothTemperature(-10.0, 50.0, "°C"); // Verander bereik tijdens uitvoering bluetoothTemperature.setRange(-20.0, 60.0); // Verander eenheid bluetoothTemperature.setUnit("°F"); // Lees huidige configuratie uit float minTemp = bluetoothTemperature.getMin(); // Geeft -10.0 terug float maxTemp = bluetoothTemperature.getMax(); // Geeft 50.0 terug String unit = bluetoothTemperature.getUnit(); // Geeft "°C" terug

Verstuur Temperatuurwaarde

// Verstuur huidige temperatuurmeting float temperature = 25.3; bluetoothTemperature.send(temperature); // Verstuur tekstbericht bluetoothTemperature.send("Sensor error");

Verwerk Temperatuurverzoeken vanuit de App

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

Verwerk Verbindingsgebeurtenissen

bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); // Verstuur direct de huidige temperatuur bluetoothTemperature.send(currentTemperature); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); });

Hoe de Temperatuurweergave te Gebruiken

App Interface

De temperatuurinterface in de DIYables Bluetooth App toont:

  • Temperatuurmeter: Visuele thermometer die de huidige waarde toont
  • Numerieke weergave: Toont de exacte temperatuurwaarde
  • Eenheidlabel: Toont de ingestelde eenheidstring
  • Bereikindicatoren: Toont min en max van het ingestelde bereik

Temperatuureenheden

Veelgebruikte configuraties:

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

Programmeervoorbeelden

DHT22 Sensor Uitlezing

#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 passend bij sensorbereik ... // DS18B20 bereik: -55°C tot +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 Uitlezing

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 Display

// Configureren voor Fahrenheit weergave 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); }

Geavanceerde Programmeertechnieken

Temperatuurgemiddelde / Filtering

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 Drempel Detectie

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"); // Activeer ventilator, zoemer, etc. } else if (temp < LOW_THRESHOLD && !alertActive) { alertActive = true; bluetoothTemperature.send("LOW TEMP ALERT!"); Serial.println("⚠️ Low temperature alert: " + String(temp, 1) + " °C"); // Activeer verwarming, etc. } else if (temp > LOW_THRESHOLD && temp < HIGH_THRESHOLD) { alertActive = false; } }

Hardware Integratie Ideeën

DHT22 / DHT11

Sluit aan op elke GPIO-pin voor vochtigheids- en temperatuurmetingen. Populaire keuze voor binnenomgeving.

DS18B20 Waterdichte Probe

Gebruik OneWire protocol voor waterdichte temperatuurmeting. Ideaal voor vloeistof, grond en buitengebruik.

BME280 / BMP280

I2C-sensor voor temperatuur, vochtigheid en luchtdruk. Hoge nauwkeurigheid voor weerstations.

NTC Thermistor

Eenvoudige analoge temperatuursensor. Lage kosten, werkt met spanningsdeler.

Thermokoppel (MAX6675 / MAX31855)

Voor hoog temperatuurmeting (tot 1000°C+). Gebruikt in ovens, smeltovens en industriële toepassingen.

BLE vs Classic Bluetooth - Welke te Kiezen?

FeatureBLE (Esp32BLE_Temperature)Classic Bluetooth (Esp32Bluetooth_Temperature)
iOS Ondersteuning? Ja? Nee
Android Ondersteuning? Ja? Ja
StroomverbruikLaagHoger
Bereik~30-100m~10-100m
Data SnelheidLagerHoger
Koppelen NodigNee (auto-connect)Ja (handmatig koppelen)
Beste VoorAccu-gevoede, cross-platformHoog doorvoer, alleen Android

Problemen Oplossen

Veelvoorkomende Problemen

1. Kan het apparaat niet vinden in de app

  • Controleer of de ESP32 aanstaat en de sketch is geüpload
  • Voor BLE: Zorg dat Bluetooth en Locatie op de telefoon ingeschakeld zijn
  • Voor Classic Bluetooth: Koppel het apparaat eerst via telefooninstellingen
  • Controleer of het juiste partitieschema is geselecteerd (Huge APP)

2. Temperatuur toont 0 of een verkeerd getal

  • Controleer sensorbedrading en verbindingen
  • Controleer sensor type en bibliotheekconfiguratie
  • Gebruik Seriële Monitor om metingen te controleren vóór Bluetooth
  • Bij DHT sensoren: Zorg voor pull-up weerstand (4.7k-10k) op datapin

3. Temperatuur wordt niet bijgewerkt

  • Controleer het update-interval in loop()
  • Zorg dat bluetoothServer.loop() wordt aangeroepen in de hoofdloop
  • Zorg dat de sensor geldige waarden leest (controleer op NaN)

4. Meter display bereik komt niet overeen

  • Controleer constructorparameters: DIYables_BluetoothTemperature(min, max, unit)
  • Gebruik setRange() om tijdens runtime aan te passen
  • Temperatuurwaarden buiten bereik worden getoond maar kunnen afgesneden lijken

5. Verbinding valt vaak weg

  • Ga dichter bij de ESP32 staan (verminder afstand)
  • Voor BLE: Controleer storingen van andere BLE-apparaten
  • Voor Classic Bluetooth: Zorg voor stabiele voeding voor ESP32

6. Sketch te groot / niet genoeg ruimte

  • In Arduino IDE, ga naar Extra > Partitieschema en selecteer "Huge APP (3MB No OTA/1MB SPIFFS)" of "No OTA (Large APP)"
  • Het standaard partitieschema biedt ~1,2MB voor app-code, te weinig voor Bluetooth-bibliotheken
  • Met deze instelling krijgt u ~3MB door OTA (over-the-air update) te verwijderen

Debug Tips

Voeg uitgebreide debugging toe:

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("========================="); }

Projectideeën

Thuis & Omgeving

  • Binnen kamertemperatuurmeter
  • Buiten weerstation
  • Koelkast/vriezer temperatuurmonitor
  • Kas klimaatmonitor

Keuken & Voedsel

  • Kooktemperatuur monitor
  • Sous vide controller display
  • Fermentatietemperatuur tracker
  • Oven thermometer

Industrie & Laboratorium

  • Serverruimte temperatuurwaarschuwing
  • Chemisch proces monitor
  • Incubator temperatuurdisplay
  • Soldeerbout temperatuur uitlezing

Water & Aquaria

  • Aquarium thermometer
  • Zwembad/spa temperatuur display
  • Warmwaterverwarmer monitor
  • Hydroponics watertemperatuur

Integratie met Andere Bluetooth Apps

Combineren met Bluetooth Plotter

Toon actuele meting en plot temperatuurtrend:

void loop() { bluetoothServer.loop(); static unsigned long lastUpdate = 0; if (millis() - lastUpdate >= 2000) { lastUpdate = millis(); float temp = readTemperature(); // Tonen op temperatuurmeter bluetoothTemperature.send(temp); // Plot trend over tijd bluetoothPlotter.send(temp); } delay(10); }

Combineren met Bluetooth Table

Toon temperatuur samen met andere sensorwaarden:

// Temperatuurmeter voor hoofdmeting bluetoothTemperature.send(temp); // Tabel voor gedetailleerde waarden 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");

Volgende Stappen

Nadat u het Bluetooth Temperatuur voorbeeld beheerst, kunt u proberen:

  1. Bluetooth Analoge Meter - Voor algemene meterweergave (druk, snelheid, etc.)
  2. Bluetooth Plotter - Voor het visualiseren van temperatuurtrends over tijd
  3. Bluetooth Table - Voor multi-sensor dataweergave
  4. Meerdere Bluetooth Apps - Combineren van temperatuur met andere displays

Ondersteuning

Voor extra hulp:

  • Raadpleeg de API Referentie documentatie
  • Arduino community forums

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!