Arduino UNO R4 WiFi Bluetooth Jauge Analogique Exemple - Affichage de Jauge via BLE Tutoriel

Vue d'ensemble

L'exemple de Jauge Analogique Bluetooth fournit un affichage de jauge visuelle de style analogique via l'application DIYables Bluetooth STEM. Conçu pour Arduino UNO R4 WiFi utilisant BLE (Bluetooth Low Energy) — affichez n'importe quelle valeur analogique sur une belle jauge avec plage configurable et unité sur votre smartphone. Parfait pour les compteurs de vitesse, jauges de pression, affichages RPM, et toute valeur qui bénéficie d'une visualisation de style cadran.

Note : L'Arduino UNO R4 WiFi ne prend en charge que BLE (Bluetooth Low Energy). Il ne prend pas en charge le Bluetooth Classique. L'App DIYables Bluetooth prend en charge à la fois BLE et Bluetooth Classique sur Android, et BLE sur iOS. Comme cette carte utilise BLE, l'application fonctionne sur Android et iOS.

Arduino UNO R4 WiFi Bluetooth Jauge Analogique Exemple - Affichage de Jauge via BLE Tutoriel

Fonctionnalités

  • Affichage de Jauge Analogique : Belle jauge de style cadran sur smartphone
  • Plage Configurable : Définir des valeurs minimales et maximales
  • Unité Personnalisée : Afficher km/h, RPM, PSI, ou toute unité personnalisée
  • Mises à jour Rapides : Jusqu'à 5 mises à jour par seconde (intervalle de 200ms)
  • Demande à la Demande : L'application peut demander la valeur actuelle
  • Fonctionne sur Android & iOS : BLE est pris en charge sur les deux plateformes
  • Pas d'Appairage Nécessaire : BLE se connecte automatiquement sans appairage manuel

Matériel Requis

1×Arduino UNO R4 WiFi
1×Alternativement: DIYables STEM V4 IoT
1×Câble USB Type-C
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.

Code Arduino UNO R4 WiFi

Étapes Rapides

Suivez ces instructions étape par étape :

  • Si c'est votre première fois avec l'Arduino UNO R4 WiFi, consultez le Arduino UNO R4 - Installation du logiciel..
  • Connectez la carte Arduino UNO R4 WiFi à votre ordinateur en utilisant un câble USB.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino UNO R4 WiFi et le port COM approprié.
  • Naviguez vers l'icône Libraries dans la barre 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.
Arduino UNO R4 DIYables Bluetooth library
  • Il vous sera demandé d'installer d'autres dépendances de bibliothèque
  • Cliquez sur le bouton Install All pour installer toutes les dépendances de bibliothèque.
Arduino UNO R4 DIYables Bluetooth dependency

Code BLE

  • Dans l'IDE Arduino, allez à File Examples DIYables Bluetooth ArduinoBLE_AnalogGauge exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Arduino
/* * DIYables Bluetooth Library - Bluetooth Analog Gauge Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Analog Gauge feature: * - Display values on an analog meter/gauge * - Configurable range and unit * - Perfect for sensor monitoring (speed, pressure, voltage, etc.) * * 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: Analog sensor (potentiometer, pressure sensor, etc.) * * 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 the gauge * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothAnalogGauge.h> #include <platforms/DIYables_ArduinoBLE.h> // BLE Configuration const char* DEVICE_NAME = "Arduino_Gauge"; 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 Analog Gauge app instance (min=0, max=100, unit="km/h") DIYables_BluetoothAnalogGauge bluetoothGauge(0.0, 100.0, "km/h"); // Variables for gauge value float currentValue = 0.0; unsigned long lastUpdate = 0; const unsigned long UPDATE_INTERVAL = 200; // Update every 200ms // Optional: Analog input pin for sensor const int ANALOG_PIN = A0; // Function to read sensor value float readSensorValue() { // TODO: Replace with actual sensor reading // Examples: // - Pressure sensor: readPressure() // - Voltage sensor: analogRead(A0) * (5.0 / 1023.0) // - Speed sensor: calculateSpeed() // Option 1: Read from analog pin and map to gauge range // int rawValue = analogRead(ANALOG_PIN); // return map(rawValue, 0, 1023, 0, 100); // Option 2: Simulated data (sine wave) static float phase = 0; phase += 0.05; if (phase > 2 * PI) phase = 0; return 50 + 50 * sin(phase); // Oscillates between 0-100 } void setup() { Serial.begin(9600); while (!Serial); Serial.println("DIYables Bluetooth - Analog Gauge Example"); // Optional: Initialize analog pin // pinMode(ANALOG_PIN, INPUT); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add gauge app to server bluetoothServer.addApp(&bluetoothGauge); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); // Send initial value currentValue = readSensorValue(); bluetoothGauge.send(currentValue); Serial.print("Initial value sent: "); Serial.print(currentValue); Serial.print(" "); Serial.println(bluetoothGauge.getUnit()); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); // Optional: Handle requests for current value bluetoothGauge.onValueRequest([]() { currentValue = readSensorValue(); bluetoothGauge.send(currentValue); Serial.print("Value requested - Sent: "); Serial.print(currentValue); Serial.print(" "); Serial.println(bluetoothGauge.getUnit()); }); // You can change gauge configuration at runtime: // bluetoothGauge.setRange(0.0, 200.0); // Change range to 0-200 // bluetoothGauge.setUnit("mph"); // Change unit to mph // bluetoothGauge.setRange(0.0, 5.0); // For voltage (0-5V) // bluetoothGauge.setUnit("V"); Serial.println("Waiting for Bluetooth connection..."); Serial.print("Gauge range: "); Serial.print(bluetoothGauge.getMin()); Serial.print(" - "); Serial.print(bluetoothGauge.getMax()); Serial.print(" "); Serial.println(bluetoothGauge.getUnit()); } void loop() { // Handle Bluetooth server communications bluetoothServer.loop(); // Send gauge updates periodically (only when connected) if (bluetooth.isConnected() && millis() - lastUpdate >= UPDATE_INTERVAL) { lastUpdate = millis(); // Read sensor value currentValue = readSensorValue(); // Send to Bluetooth app bluetoothGauge.send(currentValue); // Print to Serial Monitor Serial.print("Gauge: "); Serial.print(currentValue, 1); Serial.print(" "); Serial.println(bluetoothGauge.getUnit()); } 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
  • Vérifiez le résultat sur le Moniteur Série. Cela ressemble à ceci :
COM6
Send
DIYables Bluetooth - Analog Gauge Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Application Mobile

  • Installez l'App DIYables Bluetooth sur votre smartphone : Android | iOS

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

  • Ouvrez l'App DIYables Bluetooth
  • Lors de la première ouverture de l'application, elle demandera des permissions. Veuillez accorder les suivantes :
    • Permission Appareils à Proximité (Android 12+) / Permission Bluetooth (iOS) - requis pour scanner et se connecter aux appareils Bluetooth
    • Permission Localisation (Android 11 et inférieur uniquement) - requis par les anciennes versions Android pour scanner les appareils BLE
  • Assurez-vous que Bluetooth est activé sur votre téléphone
  • Sur l'écran d'accueil, appuyez sur le bouton Connect. L'application va scanner les appareils BLE.
DIYables Bluetooth App - Home Screen with Scan Button
  • Trouvez et appuyez sur "Arduino_Gauge" dans les résultats de scan pour vous connecter.
  • Une fois connecté, l'application retourne automatiquement à l'écran d'accueil. Sélectionnez l'application Analog Gauge dans le menu des applications.
DIYables Bluetooth App - Home Screen with Analog Gauge App

Note : Vous pouvez appuyer sur l'icône paramètres sur l'écran d'accueil pour masquer/afficher les applications sur l'écran d'accueil. Pour plus de détails, voir le Manuel Utilisateur de l'App DIYables Bluetooth.

  • Vous verrez une jauge analogique affichant des valeurs avec un mouvement d'aiguille fluide, simulant un compteur de vitesse
DIYables Bluetooth App - Analog Gauge Screen

Maintenant regardez le Moniteur Série sur l'IDE Arduino. Vous verrez :

COM6
Send
Bluetooth connected! Gauge value: 50.00 km/h Gauge value: 59.76 km/h Gauge value: 68.78 km/h
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Personnalisation Créative - Adaptez le Code à Votre Projet

Configurer la Plage de Jauge et l'Unité

// Compteur de vitesse : 0-200 km/h DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 200.0, "km/h"); // Jauge de pression : 0-100 PSI DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "PSI"); // Jauge RPM : 0-8000 RPM DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 8000.0, "RPM"); // Pourcentage : 0-100% DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%");

Envoyer des Valeurs de Jauge

// Envoyer une valeur à la jauge bluetoothGauge.send(75.5); // Lire depuis un capteur et envoyer float sensorValue = analogRead(A0) * (100.0 / 1023.0); bluetoothGauge.send(sensorValue);

Gérer les Demandes de Valeur

bluetoothGauge.onValueRequest([]() { float value = readSensor(); bluetoothGauge.send(value); Serial.print("Requested: "); Serial.println(value); });

Exemples de Programmation

Jauge de Potentiomètre

DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%"); void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 200) { lastTime = millis(); float percent = analogRead(A0) * (100.0 / 1023.0); bluetoothGauge.send(percent); } }

Moniteur de Niveau de Batterie

DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%"); float readBatteryLevel() { float voltage = analogRead(A0) * (5.0 / 1023.0) * 2; // diviseur de tension float percent = map(voltage * 100, 300, 420, 0, 100); return constrain(percent, 0, 100); } void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 1000) { lastTime = millis(); bluetoothGauge.send(readBatteryLevel()); } }

Dépannage

Problèmes Courants

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

  • Assurez-vous que l'Arduino UNO R4 WiFi est alimenté et que le sketch est téléversé
  • Vérifiez que le Bluetooth de votre téléphone est activé
  • Sur Android 11 et inférieur, activez aussi les services de localisation

2. La jauge ne se met pas à jour

  • Vérifiez que send() est appelé dans la boucle
  • Vérifiez le timing de l'intervalle de mise à jour
  • Assurez-vous que bluetoothServer.loop() est appelé

3. La jauge affiche une mauvaise plage

  • Vérifiez les valeurs min/max dans le constructeur
  • Assurez-vous que la chaîne d'unité est correcte
  • Les valeurs hors plage seront limitées

4. L'aiguille saute de manière erratique

  • Ajoutez un lissage ou une moyenne aux lectures de capteur
  • Réduisez la fréquence de mise à jour si nécessaire
  • Vérifiez les entrées analogiques bruyantes

5. Le téléversement échoue ou la carte n'est pas reconnue

  • Installez le dernier package de carte Arduino UNO R4 via le Board Manager
  • Essayez un câble USB ou port différent

Idées de Projets

  • Compteur de vitesse pour voiture RC
  • Jauge de pression pour systèmes pneumatiques
  • Indicateur de niveau de batterie
  • Jauge RPM pour moteurs
  • Mesureur d'intensité du signal

Prochaines Étapes

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

  1. Bluetooth Temperature - Pour une jauge spécifique à la température
  2. Bluetooth Plotter - Pour les données dans le temps
  3. Bluetooth Slider - Pour renvoyer des valeurs vers Arduino
  4. Multiple Bluetooth Apps - Combiner la jauge avec d'autres applications

Support

Pour une aide supplémentaire :

  • Consultez la documentation de Référence API
  • Forums communautaires 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 !