Note
Bonjour, bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi & Arduino & ESP32 sur Facebook ! Plongez plus profondément dans Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez les problèmes après-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 avant-premières.
Réductions spéciales : Profitez de réductions exclusives sur nos derniers produits.
Promotions festives et cadeaux : Participez à des cadeaux et des promotions de fêtes.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !
7.2 Contrôle Bluetooth de LED RGB¶
Ce projet est une extension d’un projet précédent (7.1 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 avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DANS CE KIT |
LIEN |
|---|---|---|
Kit de démarrage ESP32 |
320+ |
Vous pouvez également les acheter séparément aux liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
Étapes de fonctionnement
Construisez le circuit.
Ouvrez le fichier
7.2_bluetooth_rgb_led.inositué dans le répertoireesp32-starter-kit-main\c\codes\7.2_bluetooth_rgb_led, ou copiez le code dans l’IDE Arduino.Pour éviter les conflits de UUID, il est recommandé de générer aléatoirement trois nouveaux UUID en utilisant le Online UUID Generator fourni par le Bluetooth SIG, et de les remplir dans les lignes de code suivantes.
Note
Si vous avez déjà généré trois nouveaux UUID dans le projet 7.1 Bluetooth, alors 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 carte et le port corrects, puis cliquez sur le bouton Upload.
Après avoir téléchargé le code 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 CONNECT. Si vous ne le voyez pas, essayez de rafraîchir la page plusieurs fois. Lorsque « Connected to device! » apparaît, la connexion Bluetooth est réussie. Faites défiler vers le bas pour voir les trois UUID définis dans le code.
Appuyez sur l’UUID d’envoi, puis définissez le format des données sur « UTF-8 String ». 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 (7.1 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.
Analysons le code étape par étape :
Ajoutez de nouvelles variables globales pour les broches LED RGB, les canaux PWM, la fréquence et la résolution.
... // Définir les broches de la LED RGB const int redPin = 27; const int greenPin = 26; const int bluePin = 25; ...
Dans la fonction
setup(), les canaux PWM sont initialisés avec la fréquence et la résolution prédéfinies. Les broches LED RGB sont ensuite attachées à leurs canaux PWM respectifs.void setup() { ... ledcAttach(redPin, freq, resolution); ledcAttach(greenPin, freq, resolution); ledcAttach(bluePin, freq, resolution); }
Modifiez la méthode
onWritedans la classeMyCharacteristicCallbacks. Cette fonction écoute les données provenant de la connexion Bluetooth. En fonction de la chaîne reçue (comme"led_off","red","green", etc.), elle contrôle la LED RGB.// Définir les callbacks de la caractéristique BLE class MyCharacteristicCallbacks : public BLECharacteristicCallbacks { void onWrite(BLECharacteristic *pCharacteristic) { std::string value = std::string(pCharacteristic->getValue().c_str()); 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); // Violet Serial.println("purple"); } } };
Enfin, une fonction est ajoutée pour définir la couleur de la LED RGB.
void setColor(int red, int green, int blue) { // Pour les LEDs RGB à anode commune, utilisez 255 moins la valeur de la couleur ledcWrite(redPin, red); ledcWrite(greenPin, green); ledcWrite(bluePin, 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 sous forme de chaînes pour changer la couleur d’une LED RGB. L’ESP32 renvoie également la chaîne reçue au client, permettant à ce dernier de savoir quelle opération a été effectuée.

