Tutoriel ESP32 37/55 - Utiliser l'application Bluetooth avec ESP32 BLE | Kit d'apprentissage IoT ESP32 de SunFounder

Tutoriel ESP32 37/55 - Utiliser l'application Bluetooth avec ESP32 BLE | Kit d'apprentissage IoT ESP32 de SunFounder

Dans ce tutoriel, nous explorerons comment utiliser l'ESP32 en tant que serveur Bluetooth pour envoyer et recevoir des messages d'une application mobile. Cela permet une communication interactive entre votre carte ESP32 et votre appareil mobile, ce qui en fait un ajout polyvalent à vos projets IoT. À la fin de cette leçon, vous serez en mesure d'envoyer du texte de votre appareil mobile à l'ESP32 et de le voir affiché sur le moniteur série.

bluetooth_bleuclair

Nous utiliserons l'application LightBlue Explorer, disponible à la fois sur iOS et Android, pour communiquer avec l'ESP32. Ce tutoriel est fondamental pour comprendre la communication Bluetooth Low Energy (BLE) et prépare le terrain pour des projets plus avancés. Pour un guide visuel, veuillez vous référer à la vidéo à (dans la vidéo à 02:00).

Matériel expliqué

Le composant principal de ce projet est le microcontrôleur ESP32, qui intègre à la fois des capacités Wi-Fi et Bluetooth. Cela permet à l'ESP32 d'agir en tant que serveur, recevant et envoyant des données sans fil. La fonctionnalité Bluetooth intégrée de l'ESP32 prend en charge le BLE, ce qui le rend efficace pour les applications à faible consommation d'énergie.

En plus de l'ESP32, nous utiliserons un appareil mobile avec l'application LightBlue installée. Cette application permet aux utilisateurs de se connecter à l'ESP32 et d'envoyer des données via Bluetooth. L'intégration de ces composants permet une communication fluides entre l'ESP32 et les appareils mobiles, améliorant l'interaction utilisateur.

Détails de la fiche technique

Fabricant Espressif Systems
Numéro de pièce ESP32-WROOM-32
Tension logique/IO 3,3 V
Tension d'alimentation 3,0 - 3,6 V
Courant de sortie (par canal) 40 mA
Courant de crête (par canal) 160 mA
Directives sur la fréquence PWM 1 kHz
Seuils de logique d'entrée 0,2 VCC (bas) , 0,8 VCC (haut)
Chute de tension / RDS(on)/ saturation 0,1 V
Limites thermiques 125 °C
Colis QFN48
Notes / variantes ESP32-WROOM-32, ESP32-WROVER

  • Assurez une alimentation électrique stable (3,3 V) pour éviter les baisses de tension.
  • Utilisez des condensateurs pour le découplage près des broches d'alimentation.
  • Maintenez une dissipation thermique adéquate si vous utilisez un courant élevé.
  • Soyez prudent avec les niveaux de tension des broches GPIO ; elles tolèrent 3,3 V.
  • Utilisez des résistances pull-up ou pull-down selon les besoins pour les configurations GPIO.
  • Surveillez les connexions BLE ; assurez-vous que l'application est correctement appariée.
  • Vérifiez que les UUID des services et des caractéristiques sont uniques.
  • Vérifiez régulièrement le moniteur série pour les messages de débogage.
  • Envisagez d'utiliser un analyseur logique pour le dépannage de signaux complexes.

Instructions de câblage

Le câblage pour ce projet est simple puisque l'ESP32 se connecte principalement via USB pour l'alimentation et la programmation. Connectez l'ESP32 à votre ordinateur à l'aide d'un câble micro USB. Assurez-vous que le port USB fournit une puissance suffisante (typiquement 5 V). Le moniteur série sera utilisé pour le débogage, donc aucune connexion matérielle supplémentaire n'est nécessaire pour cette application.

Lors de l'utilisation de l'ESP32 avec des composants externes dans de futurs projets, n'oubliez pas de connecter les broches de masse à une masse commune. Cela garantit que l'ESP32 et tous les capteurs ou modules connectés partagent le même point de référence. De plus, si vous utilisez une batterie, connectez la borne positive à la broche 3.3 V et la borne négative à une broche de masse sur l'ESP32.

Exemples de code et guide étape par étape

Le code fourni initialise le serveur Bluetooth, configure les services et caractéristiques nécessaires, et gère les messages entrants. Les identifiants clés incluentbleName, qui définit le nom de l'appareil Bluetooth, etreceivedText, qui stocke le message entrant de l'application mobile.

const char *bleName = "ESP32_Bluetooth";
String receivedText = "";

Lesetup()La fonction initialise la communication série et la configuration BLE. Ceci est crucial pour établir une connexion avec l'application LightBlue.

void setup() {
  Serial.begin(115200);  // Initialize the serial port
  setupBLE();            // Initialize the Bluetooth BLE
}

Dans leloop()fonction, le code vérifie les messages entrants. Si un nouveau message est reçu, il est imprimé sur le moniteur série et une notification est envoyée à l'appareil BLE connecté.

if (receivedText.length() > 0 && millis() - lastMessageTime > 1000) {
    Serial.print("Received message: ");
    Serial.println(receivedText);
    pCharacteristic->setValue(receivedText.c_str());
    pCharacteristic->notify();
    receivedText = "";
}

Pour une compréhension complète, reportez-vous au code complet qui se charge ci-dessous l'article. Cela vous fournira tous les détails nécessaires pour réaliser le projet avec succès.

Démonstration / À quoi s'attendre

Après une mise en œuvre réussie, vous devriez être en mesure d'envoyer des messages depuis l'application LightBlue vers l'ESP32. Au fur et à mesure que vous tapez un message, comme "Bonjour", il apparaîtra sur le moniteur série. De plus, vous pouvez envoyer des messages de retour vers l'application, confirmant la communication bidirectionnelle. Si vous rencontrez des problèmes tels que des messages qui n'apparaissent pas, assurez-vous que l'ESP32 est correctement appairé avec l'application et que les UUID correspondent.

Horodatages vidéo

  • 00:00 Début
  • 2:10 Introduction au projet
  • 2:45 Page de documentation
  • 4:04 code Arduino
  • 6:31 Installation de l'application Bluetooth
  • 7:12 Sélection du tableau ESP32 et du port COM
  • 8:54 Démonstration du projet

Images

bluetooth_lightblue
bluetooth_lightblue
838-ESP32 Tutorial 37/55- Arduino code for Bluetooth app test
Langue: C++
Copié !

Ressources et références

Fichiers📁

Aucun fichier disponible.