Note
Bonjour et bienvenue dans la communauté Facebook des passionnés de SunFounder Raspberry Pi, Arduino et ESP32 ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez les problèmes post-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre & Partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.
Promotions festives et cadeaux : Participez à des cadeaux et promotions de fêtes.
👉 Prêt à explorer et à créer avec nous ? Cliquez sur [here] et rejoignez-nous aujourd’hui !
Leçon 45 : Contrôle d’une LED RGB par Bluetooth
Ce projet est une extension d’un projet précédent(Leçon 44 : Bluetooth), ajoutant des configurations de LED RGB et des commandes personnalisées telles que « led_off », « red », « green », etc. Ces commandes permettent de contrôler la LED RGB en envoyant des commandes depuis un appareil mobile utilisant LightBlue.
Composants nécessaires
Pour ce projet, nous aurons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DE CE KIT |
LIEN |
|---|---|---|
Kit Universel de Capteurs pour Makers |
94 |
Vous pouvez également les acheter séparément via les liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
ESP32 & Carte de développement (ESP32) |
|
- |
Étapes d’opération
Construisez le circuit.
Ouvrez le fichier
Lesson_45_Bluetooth_RGB.inositué dans le répertoireuniversal-maker-sensor-kit\esp32\Lesson_45_Bluetooth_RGB, ou copiez le code dans l’IDE Arduino.Pour éviter les conflits d’UUID, il est recommandé de générer aléatoirement trois nouveaux UUIDs en utilisant le Online UUID Generator fourni par le SIG Bluetooth, et de les insérer dans les lignes de code suivantes.
Note
Si vous avez déjà généré trois nouveaux UUIDs dans le projet Leçon 44 : Bluetooth, vous pouvez continuer à les utiliser.
#define SERVICE_UUID "your_service_uuid_here" #define CHARACTERISTIC_UUID_RX "your_rx_characteristic_uuid_here" #define CHARACTERISTIC_UUID_TX "your_tx_characteristic_uuid_here"
Sélectionnez la bonne carte et le bon port, puis cliquez sur le bouton Téléverser.
Après que le code ait été téléversé avec succès, activez le Bluetooth sur votre appareil mobile et ouvrez l’application LightBlue.
Sur la page Scan, trouvez ESP32-Bluetooth et cliquez sur CONNECTER. Si vous ne le voyez pas, essayez de rafraîchir la page plusieurs fois. Lorsque l’indication « Connecté à l’appareil ! » apparaît, la connexion Bluetooth est réussie. Faites défiler vers le bas pour voir les trois UUIDs configurés dans le code.
Tapez sur l’UUID d’envoi, puis réglez le format des données sur « Chaîne UTF-8 ». Vous pouvez maintenant écrire ces commandes : « led_off », « red », « green », « blue », « yellow », et « purple » pour voir si la LED RGB répond à ces instructions.
Comment ça marche ?
Ce code est une extension d’un projet précédent(Leçon 44 : Bluetooth), ajoutant des configurations de LED RGB et des commandes personnalisées telles que « led_off », « red », « green », etc. Ces commandes permettent de contrôler la LED RGB en envoyant des commandes depuis un appareil mobile utilisant LightBlue.
Décomposons le code étape par étape :
Ajoutez de nouvelles variables globales pour les broches de la LED RGB, les canaux PWM, la fréquence et la résolution.
... // Définir les broches LED RGB const int redPin = 27; const int greenPin = 26; const int bluePin = 25; // Définir les canaux PWM const int redChannel = 0; const int greenChannel = 1; const int blueChannel = 2; ...
Dans la fonction
setup(), les canaux PWM sont initialisés avec la fréquence et la résolution prédéfinies. Les broches de la LED RGB sont ensuite attachées à leurs canaux PWM respectifs.void setup() { ... // Configurer les canaux PWM ledcSetup(redChannel, freq, resolution); ledcSetup(greenChannel, freq, resolution); ledcSetup(blueChannel, freq, resolution); // Attacher les broches aux canaux PWM correspondants ledcAttachPin(redPin, redChannel); ledcAttachPin(greenPin, greenChannel); ledcAttachPin(bluePin, blueChannel); }
Modifiez la méthode
onWritedans la classeMyCharacteristicCallbacks. Cette fonction écoute les données provenant de la connexion Bluetooth. Selon la chaîne reçue (comme"led_off","red","green", etc.), elle contrôle la LED RGB.// Définir les callbacks de caractéristique BLE class MyCharacteristicCallbacks : public BLECharacteristicCallbacks { void onWrite(BLECharacteristic *pCharacteristic) { std::string value = pCharacteristic->getValue(); if (value == "led_off") { setColor(0, 0, 0); // éteindre la LED RGB Serial.println("RGB LED turned off"); } else if (value == "red") { setColor(255, 0, 0); // Rouge Serial.println("red"); } else if (value == "green") { setColor(0, 255, 0); // Vert Serial.println("green"); } else if (value == "blue") { setColor(0, 0, 255); // Bleu Serial.println("blue"); } else if (value == "yellow") { setColor(255, 150, 0); // Jaune Serial.println("yellow"); } else if (value == "purple") { setColor(80, 0, 80); // Pourpre Serial.println("purple"); } } };
Enfin, ajoutez une fonction pour régler la couleur de la LED RGB.
void setColor(int red, int green, int blue) { // Pour les LEDs RGB à anode commune, utiliser 255 moins la valeur de la couleur ledcWrite(redChannel, red); ledcWrite(greenChannel, green); ledcWrite(blueChannel, blue); }
En résumé, ce script permet un modèle d’interaction de contrôle à distance, où l’ESP32 fonctionne comme un serveur Bluetooth Low Energy (BLE).
Le client BLE connecté (comme un smartphone) peut envoyer des commandes en chaîne pour changer la couleur d’une LED RGB. L’ESP32 fournit également un retour au client en renvoyant la chaîne reçue, permettant ainsi au client de savoir quelle opération a été effectuée.