Exemple de température Bluetooth ESP32 - Tutoriel d'affichage d'une jauge de température

Vue d'ensemble

L'exemple de température Bluetooth offre un affichage dédié de jauge de température accessible via l'application STEM Bluetooth de DIYables. Conçu pour les cartes ESP32 avec le support des connexions BLE (Bluetooth Low Energy) et Bluetooth Classique. Envoyez des relevés de température avec une plage minimale et maximale configurable et des étiquettes d'unités — parfait pour les thermomètres, stations météorologiques, la surveillance du CVC et toute application de détection de température.

Cet exemple prend en charge deux modes Bluetooth :

  • ESP32 BLE (Bluetooth Low Energy) : Fonctionne sur Android et iOS
  • ESP32 Classic Bluetooth : Fonctionne uniquement sur Android. iOS ne prend pas en charge le Bluetooth classique. Utilisez BLE si vous avez besoin d'une compatibilité iOS.
Exemple de température Bluetooth ESP32 - Tutoriel d'affichage d'une jauge de température

Fonctionnalités

  • Jauge de température: Affichage visuel de type thermomètre
  • Plage configurable: Définir les valeurs minimales et maximales de température
  • Unités personnalisées: Afficher °C, °F, K, ou toute chaîne d'unité personnalisée
  • Mises à jour en temps réel: Envoyer des relevés de température en temps réel
  • Demande de rappel: L’application peut demander la température actuelle à la demande
  • BLE et Bluetooth Classic: Choisissez le mode Bluetooth adapté à votre projet
  • Multi-plateforme: Le mode BLE fonctionne sur Android et iOS ; Bluetooth Classic fonctionne sur Android
  • Option basse consommation: Le mode BLE consomme moins d'énergie que le Bluetooth Classic

Préparation du matériel

1×Module de développement ESP32 ESP-WROOM-32
1×Alternativement: ESP32 Uno-form board
1×Alternativement: ESP32 S3 Uno-form board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour ESP32
1×Recommandé: Breakout Expansion Board for ESP32
1×Recommandé: Répartiteur d'alimentation pour ESP32

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 (ESP32 inclus)
1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

ESP32 code

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c'est la première fois que vous utilisez l'ESP32, reportez-vous au tutoriel sur Installation du logiciel ESP32..
  • Connectez la carte ESP32 à votre ordinateur à l’aide d’un câble USB.
  • Lancez l’IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte ESP32 appropriée et le port COM.
  • Accédez à l’icône Libraries dans la barre de gauche de l’IDE Arduino.
  • Recherchez "DIYables Bluetooth", puis trouvez la bibliothèque DIYables Bluetooth développée par DIYables.
  • Cliquez sur le bouton Install pour installer la bibliothèque.
Bibliothèque Bluetooth ESP32 DIYables
  • Il vous sera demandé d'installer d'autres dépendances de bibliothèque.
  • Cliquez sur le bouton Tout installer pour installer toutes les dépendances de bibliothèque.
Dépendance Bluetooth pour ESP32 DIYables

Choisissez l'un des deux modes Bluetooth ci-dessous en fonction de vos besoins :

Code Bluetooth Classique ESP32 (fonctionne avec l'application sur Android uniquement)

Remarque : Le Bluetooth classique n'est PAS pris en charge sur iOS. Si vous avez besoin d'une prise en charge iOS, utilisez le code BLE ci-dessous.

  • Dans l'IDE Arduino, allez dans Fichier Exemples DIYables Bluetooth Esp32Bluetooth_Temperature exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Arduino
/* * 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); }
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'ESP32
  • Ouvrez le moniteur série
  • Vérifiez le résultat sur le moniteur série. Il ressemble à ce qui suit :
COM6
Send
DIYables Bluetooth - ESP32 Temperature Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Code BLE ESP32 (fonctionne avec l'application sur Android et iOS)

  • Dans l'IDE Arduino, allez dans Fichier Exemples DIYables Bluetooth Esp32BLE_Temperature exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Arduino
/* * 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); }
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers l'ESP32
  • Ouvrez le moniteur série
  • Consultez le résultat sur le moniteur série. Il ressemble à ce qui suit :
COM6
Send
DIYables Bluetooth - ESP32 BLE Temperature Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Application mobile

  • Installer l'application DIYables Bluetooth sur votre smartphone: Android | iOS
  • Si vous utilisez le code ESP32 Classic Bluetooth, vous devez appairer l'ESP32 avec votre téléphone Android AVANT d'ouvrir l'application:
    • Accédez aux Paramètres > Bluetooth de votre téléphone
    • Assurez-vous que le Bluetooth est activé
    • Votre téléphone va rechercher des périphériques disponibles
    • Trouvez et touchez "ESP32_Temp" dans la liste des appareils disponibles
    • Confirmez la demande d'appairage (aucun code PIN requis)
    • Attendez qu'il affiche "Appairé" sous le nom de l'appareil
  • Si vous utilisez le code ESP32 BLE, aucun appairage n'est nécessaire. Passez simplement à l'étape suivante.
  • Ouvrez l'application DIYables Bluetooth
  • Lors de la première ouverture de l'application, elle demandera des autorisations. Veuillez accorder les suivantes:
    • Autorisation Périphériques à proximité (Android 12+) / Autorisation Bluetooth (iOS) - nécessaire pour scanner et se connecter à des appareils Bluetooth
    • Autorisation Localisation (Android 11 et versions antérieures uniquement) - nécessaire sur les anciennes versions d'Android pour scanner les appareils BLE
  • Assurez-vous que Bluetooth est activé sur votre téléphone
  • Sur l'écran d'accueil, touchez le bouton Connecter. L'application va rechercher à la fois les appareils BLE et Bluetooth classique.
Application Bluetooth DIYables - Écran d'accueil avec bouton de balayage
  • Trouvez et touchez votre appareil dans les résultats de balayage pour vous connecter :
    • Pour Bluetooth classique : touchez "ESP32_Temp"
    • Pour BLE : touchez "ESP32BLE_Temp"
  • Une fois connecté, l'application revient automatiquement à l'écran d'accueil. Sélectionnez l'application Température dans le menu des applications.
DIYables Bluetooth App - Écran d'accueil avec l'application de température

Remarque : Vous pouvez appuyer sur l’icône des paramètres sur l’écran d’accueil pour masquer ou afficher les applications. Pour plus de détails, consultez le Manuel d’utilisation de l’application Bluetooth DIYables.

  • La jauge de température affichera la lecture actuelle de la température.
DIYables Application Bluetooth - Écran de jauge de température

Revenez maintenant au moniteur série de l’IDE Arduino. Vous verrez :

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  
  • Surveillez la mise à jour en temps réel de la jauge de température dans l'application.

Personnalisation créative - Adaptez le code à votre projet

Configurer la plage de température et l'unité

Définir la plage d'affichage et l'unité :

// Constructor: DIYables_BluetoothTemperature(min, max, unit) DIYables_BluetoothTemperature bluetoothTemperature(-10.0, 50.0, "°C"); // Change range at runtime bluetoothTemperature.setRange(-20.0, 60.0); // Change unit bluetoothTemperature.setUnit("°F"); // Read current configuration float minTemp = bluetoothTemperature.getMin(); // Returns -10.0 float maxTemp = bluetoothTemperature.getMax(); // Returns 50.0 String unit = bluetoothTemperature.getUnit(); // Returns "°C"

Envoyer la valeur de la température

// Send current temperature reading float temperature = 25.3; bluetoothTemperature.send(temperature); // Send text message bluetoothTemperature.send("Sensor error");

Gérer les demandes de température depuis l'application

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

Gérer les événements de connexion

bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); // Send current temperature immediately bluetoothTemperature.send(currentTemperature); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); });

Comment utiliser l'affichage de la température

Interface de l'application

L'interface de température dans l'application Bluetooth DIYables affiche :

  • Jauge de température: Thermomètre visuel montrant la lecture actuelle
  • Affichage numérique: Affiche la valeur exacte de la température
  • Libellé d'unité: Affiche la chaîne d'unité configurée
  • Indicateurs de plage: Affichent le minimum et le maximum de la plage configurée

Unités de température

Configurations courantes:

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

Exemples de programmation

Lecture du capteur DHT22

#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); }

Capteur DS18B20 One-Wire

#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 with range matching sensor capability ... // DS18B20 range: -55°C to +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); }

Lecture de la thermistance NTC

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); }

Affichage Fahrenheit

// Configure for Fahrenheit display 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); }

Techniques avancées de programmation

Moyenne des températures / Lissage

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); }

Détection du seuil d'alerte

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

Idées d'intégration matérielle

DHT22 / DHT11

Connectez n'importe quelle broche GPIO pour les mesures d'humidité et de température. Un choix populaire pour la surveillance en intérieur.

Sonde étanche DS18B20

Utilisez le protocole OneWire pour la mesure de température étanche. Idéal pour les applications en milieu liquide, dans le sol et en extérieur.

BME280 / BMP280

Capteur I2C pour la température, l'humidité et la pression barométrique. Haute précision pour les stations météorologiques.

Thermistance NTC

Capteur de température analogique simple. Peu coûteux et fonctionne avec un circuit diviseur de tension.

thermocouple (MAX6675 / MAX31855)

Pour la mesure à haute température (jusqu'à 1000 °C et plus). Utilisé dans les fours et les fours à calcination, ainsi que dans les applications industrielles.

BLE et Bluetooth Classic - Lequel choisir ?

FeatureBLE (Esp32BLE_Temperature)Classic Bluetooth (Esp32Bluetooth_Temperature)
iOS Support? Yes? No
Android Support? Yes? Yes
Power ConsumptionLowHigher
Range~30-100m~10-100m
Data RateLowerHigher
Pairing RequiredNo (auto-connect)Yes (manual pairing)
Best ForBattery-powered, cross-platformHigh throughput, Android-only

Dépannage

Problèmes courants

1. Impossible de trouver l'appareil dans l'application

  • Assurez-vous que l'ESP32 est sous tension et que le sketch a été téléversé
  • Pour BLE : Assurez-vous que le Bluetooth et la géolocalisation de votre téléphone sont activés
  • Pour le Bluetooth classique : appairez l'appareil d'abord dans les paramètres Bluetooth du téléphone
  • Vérifiez que le bon schéma de partition est sélectionné (Huge APP)

2. La température affiche 0 ou une valeur incorrecte

  • Vérifiez le câblage et les connexions du capteur
  • Vérifiez le type de capteur et la configuration de la bibliothèque
  • Utilisez le moniteur série pour confirmer les lectures avant la connexion Bluetooth
  • Pour les capteurs DHT : assurez-vous qu'une résistance de tirage (pull-up) est présente sur la broche de données (4,7 kΩ à 10 kΩ)

3. La température ne se met pas à jour

  • Vérifiez votre intervalle de mise à jour dans loop()
  • Vérifiez que bluetoothServer.loop() est appelé dans la boucle principale
  • Assurez-vous que le capteur lit des valeurs valides (vérifiez qu'il n'y a pas de NaN)

4. La plage d'affichage de la jauge ne correspond pas

  • Vérifier les paramètres du constructeur : DIYables_BluetoothTemperature(min, max, unit)
  • Utilisez setRange() pour ajuster dynamiquement
  • Les valeurs de température en dehors de la plage s'affichent toujours mais peuvent être tronquées

5. La connexion se coupe fréquemment

  • Rapprochez-vous de l'ESP32 (réduire la distance)
  • Pour le BLE : Vérifier les interférences provenant d'autres appareils BLE
  • Pour le Bluetooth Classic : Assurer une alimentation électrique stable à l'ESP32
  1. Croquis trop grand / pas assez d'espace
  • Dans l'IDE Arduino, allez dans Tools > Partition Scheme et sélectionnez "Huge APP (3MB No OTA/1MB SPIFFS)" ou "No OTA (Large APP)".
  • Le schéma de partition par défaut ne fournit qu'environ ~1,2 Mo pour le code de l'application, ce qui n'est pas suffisant pour les bibliothèques Bluetooth.
  • Cette option permet d'obtenir environ ~3 Mo en sacrifiant la partition OTA (mise à jour sans fil).

Astuces de débogage

Ajouter un débogage complet :

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

Idées de projets

Accueil et Environnement

  • Thermomètre d'intérieur
  • Station météo extérieure
  • Moniteur de température pour réfrigérateur et congélateur
  • Moniteur du climat de serre

Cuisine et Alimentation

  • Moniteur de température de cuisson
  • Affichage du contrôleur sous-vide
  • Suivi de la température de fermentation
  • Thermomètre de four

Industriel et Laboratoire

  • Alerte de température de la salle des serveurs
  • Moniteur de procédé chimique
  • Affichage de la température de l'incubateur
  • Affichage de la température du fer à souder

Eau et activités aquatiques

  • Thermomètre d'aquarium
  • Affichage de la température pour piscine et spa
  • Moniteur de chauffe-eau
  • Température de l'eau en hydroponie

Intégration avec d'autres applications Bluetooth

Combiner avec le traceur Bluetooth

Afficher la lecture actuelle et tracer l’évolution de la température:

void loop() { bluetoothServer.loop(); static unsigned long lastUpdate = 0; if (millis() - lastUpdate >= 2000) { lastUpdate = millis(); float temp = readTemperature(); // Show on temperature gauge bluetoothTemperature.send(temp); // Plot trend over time bluetoothPlotter.send(temp); } delay(10); }

Combiner avec la table Bluetooth

Afficher la température aux côtés des autres données des capteurs :

// Temperature gauge for primary reading bluetoothTemperature.send(temp); // Table for detailed breakdown 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");

Prochaines étapes

Après avoir maîtrisé l'exemple de température Bluetooth, essayez :

  1. Jauge analogique Bluetooth - Pour l'affichage générique d'une jauge (pression, vitesse, etc.)
  2. Traceur Bluetooth - Pour visualiser les tendances de température au fil du temps
  3. Tableau Bluetooth - Pour l'affichage des données de plusieurs capteurs
  4. Plusieurs applications Bluetooth - Combiner la température avec d'autres affichages

Assistance

Pour obtenir de l'aide supplémentaire :

  • Consultez la documentation de référence de l’API
  • Forums de la communauté Arduino

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !