Arduino UNO R4 WiFi et Bluetooth – Exemple de jauge de température – Tutoriel d'affichage de la température via BLE

Vue d'ensemble

L'exemple Bluetooth Temperature offre une jauge de température visuelle via l'application DIYables Bluetooth STEM. Conçu pour Arduino UNO R4 WiFi utilisant BLE (Bluetooth Low Energy) pour afficher les lectures de température avec une plage et une unité configurables sur votre smartphone. Parfait pour la surveillance de la température, les stations météorologiques, les projets CVC et la détection environnementale.

Note : L'Arduino UNO R4 WiFi n'accepte que le BLE (Bluetooth Low Energy). Il ne prend pas en charge le Bluetooth classique. L'application Bluetooth DIYables prend en charge à la fois le BLE et le Bluetooth classique sur Android, et le BLE sur iOS. Étant donné que cette carte utilise le BLE, l'application fonctionne sur à la fois Android et iOS.

Arduino UNO R4 Wi‑Fi et Bluetooth - Exemple de jauge de température - Tutoriel d'affichage de la température via BLE

Fonctionnalités

  • Affichage visuel de la jauge de température: Bel affichage de la jauge de température sur smartphone
  • Plage configurable: Définir les valeurs minimales et maximales de température
  • Unité personnalisable: Affichage en °C, °F ou toute autre unité personnalisée
  • Mises à jour en temps réel: Transmettre les variations de température à des intervalles configurables
  • Requête à la demande: L'application peut demander la température actuelle
  • Fonctionne sur Android et iOS: BLE est pris en charge sur les deux plateformes
  • Aucun appairage nécessaire: BLE se connecte automatiquement sans appairage manuel

Préparation du matériel

1×Arduino UNO R4 WiFi
1×Alternativement: DIYables STEM V4 IoT
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×Optionnel: DS18B20 Temperature Sensor
1×Optionnel: DHT11 Module capteur de température et humidité
1×Optionnel: DHT22 Module capteur de température et humidité
1×Recommandé: Shield à bornier à vis pour Arduino Uno R4
1×Recommandé: Shield plaque d'essai pour Arduino Uno R4
1×Recommandé: Boîtier pour Arduino Uno R4
1×Recommandé: Répartiteur d'alimentation pour Arduino Uno R4
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables STEM V4 IoT (Arduino 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.

Note d'achat: De nombreux capteurs DS18B20 sur le marché sont de faible qualité. Nous recommandons vivement d'acheter le capteur de la marque DIYables en utilisant le lien ci-dessus. Nous l'avons testé et il a bien fonctionné.

Code Arduino UNO R4 WiFi

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c'est la première fois que vous utilisez l'Arduino UNO R4 WiFi, reportez-vous au Arduino UNO R4 - Installation du logiciel..
  • Connectez la carte Arduino UNO R4 WiFi à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino UNO R4 WiFi et le port COM approprié.
  • 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 par DIYables.
  • Cliquez sur le bouton Install pour installer la bibliothèque.
Bibliothèque Bluetooth DIYables pour Arduino UNO R4
  • Il vous sera demandé d'installer d'autres dépendances de la bibliothèque.
  • Cliquez sur le bouton Install All pour installer toutes les dépendances de la bibliothèque.
Dépendance Bluetooth pour Arduino UNO R4 DIYables

Code BLE

  • Dans l'IDE Arduino, allez dans Fichier Exemples DIYables Bluetooth ArduinoBLE_Temperature exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Arduino
/* * DIYables Bluetooth Library - Bluetooth 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: * - Arduino UNO R4 WiFi * - Arduino Nano 33 BLE / BLE Sense * - Arduino Nano 33 IoT * - Arduino MKR WiFi 1010 * - Arduino Nano RP2040 Connect * - Any board supporting the ArduinoBLE library * * Optional: Temperature sensor (DHT22, DS18B20, or analog thermistor) * * Setup: * 1. Upload the sketch to your Arduino * 2. Open Serial Monitor 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_ArduinoBLE.h> // BLE Configuration const char* DEVICE_NAME = "Arduino_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_ArduinoBLE 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; // 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(A0)) // 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(9600); while (!Serial); Serial.println("DIYables Bluetooth - 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 vers l'Arduino UNO R4 WiFi
  • Ouvrez le moniteur série
  • Voici à quoi ressemble le résultat dans le moniteur série :
COM6
Send
DIYables Bluetooth - Temperature Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Application mobile

  • Installer l'application Bluetooth DIYables sur votre smartphone : Android | iOS

Remarque : L'application Bluetooth DIYables prend en charge à la fois le BLE et le Bluetooth classique sur Android, et le BLE sur iOS. Puisque l'Arduino UNO R4 WiFi utilise le BLE, l'application fonctionne sur à la fois Android et iOS. Aucun appairage manuel n'est nécessaire pour le BLE — il suffit de scanner et de se connecter.

  • Ouvrez l’application Bluetooth DIYables
  • Lors de la première ouverture de l’application, elle demandera des autorisations. Veuillez accorder les suivantes :
    • Périphériques à proximité autorisation (Android 12 et versions ultérieures) / Bluetooth autorisation (iOS) - nécessaire pour scanner et se connecter aux appareils Bluetooth
    • Autorisation de localisation (Android 11 et versions antérieures uniquement) - nécessaire sur les anciennes versions d'Android pour scanner les périphériques BLE
  • Assurez-vous que le Bluetooth est activé sur votre téléphone
  • Sur l'écran d'accueil, touchez le bouton Connect. L’application recherchera des périphériques BLE
Application Bluetooth DIYables - Écran d'accueil avec bouton de balayage
  • Trouvez et appuyez sur "Arduino_Temp" dans les résultats du balayage pour vous connecter.
  • Une fois connecté, l'application revient automatiquement à l'écran d'accueil. Sélectionnez l'application Température dans le menu des applications.
Application Bluetooth DIYables – É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/afficher les applications sur l'écran d'accueil. Pour plus de détails, consultez le Manuel utilisateur de l'application DIYables Bluetooth.

  • Vous verrez une jauge de température affichant la lecture actuelle avec la plage et l'unité configurées
DIYables Bluetooth App - Écran de jauge de température

Regardez maintenant à nouveau le moniteur série dans l’IDE Arduino. Vous verrez :

COM6
Send
Bluetooth connected! Temperature: 24.50 °C Temperature: 24.80 °C Temperature: 25.10 °C
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Personnalisation créative - Adaptez le code à votre projet

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

// 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");

Envoyer des mises à jour de la température

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

Gérer les demandes de température

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

Exemples de programmation

Capteur de température DS18B20

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

Capteur DHT22 en 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); } } }

Dépannage

Problèmes courants

  1. Impossible de trouver l'appareil dans l'application
  • Assurez-vous que l'Arduino UNO R4 WiFi est sous tension et que le sketch est téléversé
  • Assurez-vous que le Bluetooth de votre téléphone est activé
  • Sur Android 11 et les versions antérieures, activez également les services de localisation

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

  • Vérifier que send() est appelé dans la boucle
  • Vérifier le minutage de l'intervalle de mise à jour
  • S'assurer que bluetoothServer.loop() est appelé
  1. La température affiche une plage incorrecte
  • Vérifiez les valeurs minimales et maximales dans le constructeur
  • Assurez-vous que la chaîne d'unité est correcte
  • La valeur de la température doit être comprise dans la plage configurée

4. La valeur mesurée par le capteur est NaN

  • Vérifier les connexions du câblage du capteur
  • Vérifier l'alimentation du capteur
  • Ajouter une vérification isnan() avant l'envoi

5. Échec du téléversement ou carte non reconnue

  • Installer le dernier package de cartes Arduino UNO R4 via le gestionnaire de cartes
  • Essayez un câble USB ou un port différent

Idées de projets

  • Moniteur de température ambiante
  • Contrôleur du climat de serre
  • Thermomètre réfrigérateur/congélateur
  • Écran de station météorologique
  • Moniteur de température d'aquarium

Prochaines étapes

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

  1. Jauge analogique Bluetooth - Pour l'affichage de jauges polyvalentes
  2. Traceur Bluetooth - Pour l'enregistrement de la température au fil du temps
  3. Tableau Bluetooth - Pour l'affichage multi-capteurs
  4. Plusieurs applications Bluetooth - Combiner la température avec d'autres applications

Assistance

Pour une aide supplémentaire :

  • Vérifiez la documentation de référence de l'API
  • Consultez les tutoriels de DIYables
  • 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 !