Arduino UNO R4 WiFi Exemple Moniteur Bluetooth - Tutoriel Moniteur Série Sans Fil via BLE

Vue d'ensemble

L'exemple Moniteur Bluetooth offre un moniteur série sans fil accessible via l'application DIYables Bluetooth STEM. Conçu pour Arduino UNO R4 WiFi utilisant BLE (Bluetooth Low Energy) pour transmettre en temps réel des messages d'état, des sorties de débogage et des lectures de capteurs sans fil vers votre smartphone. Recevez également des commandes texte depuis l'application. Parfait pour le débogage sans fil, la surveillance à distance et la journalisation système.

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

Arduino UNO R4 WiFi Exemple Moniteur Bluetooth - Tutoriel Moniteur Série Sans Fil via BLE

Fonctionnalités

  • Moniteur Série Sans Fil : Transmettez des messages texte vers votre téléphone
  • Communication Bidirectionnelle : Envoyez des commandes depuis l'application vers Arduino
  • Transmission Temps Réel : Sortie continue comme le Moniteur Série
  • Gestion des Commandes : Traitez les commandes texte depuis l'application
  • Fonctionne sur Android et iOS : BLE est supporté sur les deux plateformes
  • Aucun Appairage Requis : BLE se connecte automatiquement sans appairage manuel
  • Faible Consommation : BLE consomme moins d'énergie que le Bluetooth Classique

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 utilisation de l'Arduino UNO R4 WiFi, consultez notre guide Arduino UNO R4 WiFi Getting Started pour apprendre les bases.
  • Connectez la carte Arduino UNO R4 WiFi à votre ordinateur avec 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 bibliothèque DIYables Bluetooth
  • 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.
Arduino UNO R4 dépendance DIYables Bluetooth

Code BLE

  • Dans l'IDE Arduino, allez à File Examples DIYables Bluetooth ArduinoBLE_Monitor exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Arduino
/* * DIYables Bluetooth Library - Bluetooth Monitor Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Monitor feature: * - Send real-time status messages to the mobile app * - Display system information and sensor readings * - Receive and process commands from the app * - Perfect for debugging and system monitoring * * 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 * * 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 monitor output * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothMonitor.h> #include <platforms/DIYables_ArduinoBLE.h> // BLE Configuration const char* DEVICE_NAME = "Arduino_Monitor"; 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 Monitor app instance DIYables_BluetoothMonitor bluetoothMonitor; // Variables for demo unsigned long lastUpdate = 0; const unsigned long UPDATE_INTERVAL = 3000; // Send update every 3 seconds int messageCount = 0; bool ledState = false; void setup() { Serial.begin(9600); while (!Serial); Serial.println("DIYables Bluetooth - Monitor Example"); // Initialize built-in LED pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add monitor app to server bluetoothServer.addApp(&bluetoothMonitor); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); bluetoothMonitor.send("=== Arduino Monitor Connected ==="); bluetoothMonitor.send("System Ready"); bluetoothMonitor.send("Type HELP for available commands"); bluetoothMonitor.send(""); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); // Set up message handler for incoming commands bluetoothMonitor.onMonitorMessage([](const String& message) { Serial.print("Received command: "); Serial.println(message); handleCommand(message); }); Serial.println("Waiting for Bluetooth connection..."); } void handleCommand(const String& cmd) { if (cmd == "HELP") { bluetoothMonitor.send("Available Commands:"); bluetoothMonitor.send(" LED_ON - Turn LED on"); bluetoothMonitor.send(" LED_OFF - Turn LED off"); bluetoothMonitor.send(" STATUS - Show system status"); bluetoothMonitor.send(" CLEAR - Clear monitor (if supported)"); bluetoothMonitor.send(" HELP - Show this help"); } else if (cmd == "LED_ON") { digitalWrite(LED_BUILTIN, HIGH); ledState = true; bluetoothMonitor.send("✓ LED turned ON"); } else if (cmd == "LED_OFF") { digitalWrite(LED_BUILTIN, LOW); ledState = false; bluetoothMonitor.send("✓ LED turned OFF"); } else if (cmd == "STATUS") { showStatus(); } else if (cmd == "CLEAR") { // App should handle clearing the display bluetoothMonitor.send(""); } else { bluetoothMonitor.send("✗ Unknown command: " + cmd); bluetoothMonitor.send("Type HELP for available commands"); } } void showStatus() { bluetoothMonitor.send("=== System Status ==="); // LED Status bluetoothMonitor.send("LED State: " + String(ledState ? "ON" : "OFF")); // Uptime unsigned long uptime = millis() / 1000; bluetoothMonitor.send("Uptime: " + String(uptime / 3600) + "h " + String((uptime % 3600) / 60) + "m " + String(uptime % 60) + "s"); // Free Memory (approximate for AVR) #ifdef __AVR__ extern int __heap_start, *__brkval; int freeMemory = (int) &freeMemory - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); bluetoothMonitor.send("Free Memory: " + String(freeMemory) + " bytes"); #endif // Messages sent bluetoothMonitor.send("Messages Sent: " + String(messageCount)); bluetoothMonitor.send("===================="); } void sendPeriodicUpdate() { messageCount++; // Example of different message types if (messageCount % 3 == 0) { // Send status update bluetoothMonitor.send("[INFO] Heartbeat #" + String(messageCount)); } else if (messageCount % 5 == 0) { // Send simulated sensor reading int sensorValue = random(0, 1024); bluetoothMonitor.send("[SENSOR] Reading: " + String(sensorValue) + " (random demo value)"); } else { // Send timestamp bluetoothMonitor.send("[TIME] Uptime: " + String(millis() / 1000) + "s"); } // Optionally log to Serial as well Serial.print("Sent update #"); Serial.println(messageCount); } void loop() { // Handle Bluetooth server communications bluetoothServer.loop(); // Send periodic updates (only when connected) if (bluetooth.isConnected() && millis() - lastUpdate >= UPDATE_INTERVAL) { lastUpdate = millis(); sendPeriodicUpdate(); } 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 dans le Moniteur Série. Cela ressemble à ceci :
COM6
Send
DIYables Bluetooth - Monitor Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Application Mobile

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

Note : L'application DIYables Bluetooth supporte à la fois BLE et Bluetooth Classique sur Android, et BLE sur iOS. Puisque 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'application DIYables Bluetooth
  • Lors de la première ouverture de l'application, elle demandera des permissions. Veuillez accorder les suivantes :
    • Permission Nearby Devices (Android 12+) / permission Bluetooth (iOS) - requise pour scanner et se connecter aux appareils Bluetooth
    • Permission Location (Android 11 et antérieur uniquement) - requise 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.
Application DIYables Bluetooth - Écran d'accueil avec bouton Scan
  • Trouvez et appuyez sur "Arduino_Monitor" dans les résultats de scan pour vous connecter.
  • Une fois connecté, l'application retourne automatiquement à l'écran d'accueil. Sélectionnez l'application Monitor depuis le menu des applications.
Application DIYables Bluetooth - Écran d'accueil avec application Monitor

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, consultez le Manuel Utilisateur de l'Application DIYables Bluetooth.

  • Vous verrez des messages d'état s'afficher en continu dans l'affichage du moniteur
  • Tapez LED_ON dans le champ de saisie et appuyez sur Send — la LED intégrée de l'Arduino UNO R4 WiFi s'allumera, et le moniteur affichera un message de confirmation
Application DIYables Bluetooth - Écran Monitor

Maintenant regardez de nouveau le Moniteur Série dans l'IDE Arduino. Vous verrez :

COM6
Send
Bluetooth connected! Sent update #1 Sent update #2 Sent update #3
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Personnalisation Créative - Adaptez le Code à Votre Projet

Envoyer des Messages

// Envoyer des messages texte vers l'application bluetoothMonitor.send("System started"); bluetoothMonitor.send("Temperature: " + String(temp, 1) + " °C"); bluetoothMonitor.send("[ERROR] Sensor disconnected!");

Gérer les Commandes Entrantes

Utilisez le callback onMonitorMessage() pour recevoir les commandes tapées dans l'application Monitor et y réagir :

bluetoothMonitor.onMonitorMessage([](const String& message) { Serial.print("Received: "); Serial.println(message); if (message == "HELP") { bluetoothMonitor.send("Commands: LED_ON, LED_OFF, STATUS, HELP"); } else if (message == "LED_ON") { digitalWrite(LED_BUILTIN, HIGH); bluetoothMonitor.send("LED turned ON"); } else if (message == "LED_OFF") { digitalWrite(LED_BUILTIN, LOW); bluetoothMonitor.send("LED turned OFF"); } else if (message == "STATUS") { bluetoothMonitor.send("Uptime: " + String(millis() / 1000) + "s"); bluetoothMonitor.send("LED: " + String(digitalRead(LED_BUILTIN) ? "ON" : "OFF")); } else { bluetoothMonitor.send("Unknown command: " + message); } });

Vous pouvez ajouter autant de commandes personnalisées que nécessaire en ajoutant plus de blocs else if. Par exemple, ajoutez RELAY_ON / RELAY_OFF pour contrôler un relais, ou READ pour déclencher une lecture de capteur — n'importe quel mot que vous tapez dans l'application devient une commande.

Exemples de Programmation

Transmission d'État de Capteur

void loop() { bluetoothServer.loop(); static unsigned long lastUpdate = 0; if (bluetooth.isConnected() && millis() - lastUpdate >= 3000) { lastUpdate = millis(); int light = analogRead(A0); float voltage = analogRead(A1) * 5.0 / 1023.0; bluetoothMonitor.send("[SENSOR] Light: " + String(map(light, 0, 1023, 0, 100)) + "%"); bluetoothMonitor.send("[SENSOR] Voltage: " + String(voltage, 2) + "V"); bluetoothMonitor.send("[INFO] Uptime: " + String(millis() / 1000) + "s"); } delay(10); }

Journalisation Basée sur les Événements

const int BUTTON_PIN = 7; int lastButtonState = HIGH; void loop() { bluetoothServer.loop(); int buttonState = digitalRead(BUTTON_PIN); if (buttonState != lastButtonState) { lastButtonState = buttonState; if (buttonState == LOW) { bluetoothMonitor.send("[EVENT] Button pressed!"); } else { bluetoothMonitor.send("[EVENT] Button released"); } } delay(10); }

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 antérieur, activez également les services de localisation

2. Aucun message n'apparaît dans l'application

  • Vérifiez que bluetoothMonitor.send() est appelé
  • Vérifiez que bluetoothServer.loop() est dans la boucle principale
  • Confirmez la connexion dans le Moniteur Série

3. Les messages sont retardés

  • Réduisez l'intervalle de mise à jour pour des messages plus fréquents
  • Évitez d'envoyer trop de messages trop rapidement (BLE a des limites de bande passante)

4. Les commandes depuis l'application ne sont pas reçues

  • Vérifiez que le callback onMonitorMessage est configuré
  • Vérifiez le Moniteur Série pour la sortie des commandes reçues

5. La connexion se coupe fréquemment

  • Rapprochez-vous de l'Arduino (réduisez la distance)
  • Assurez-vous d'une alimentation USB stable

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

  • Installez le dernier package de carte Arduino UNO R4 via le Gestionnaire de Cartes
  • Essayez un autre câble USB ou port

Idées de Projets

  • Console de débogage sans fil
  • Enregistreur de données de capteurs
  • Moniteur de santé système
  • Système de notification d'événements
  • Interface de commande à distance

Prochaines Étapes

Après avoir maîtrisé l'exemple Moniteur Bluetooth, essayez :

  1. Bluetooth Chat - Pour la messagerie interactive bidirectionnelle
  2. Bluetooth Table - Pour l'affichage de données structurées
  3. Bluetooth Plotter - Pour la visualisation de données
  4. Applications Bluetooth Multiples - Combiner le moniteur avec d'autres applications

Support

Pour une aide supplémentaire :

  • Consultez la documentation de référence 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 !