ESP8266 - Bluetooth

Ce tutoriel vous explique comment utiliser l'ESP8266 pour contrôler le module Bluetooth HC-05. Plus précisément, nous apprendrons :

ESP8266 NodeMCU Bluetooth

L'objectif de ce tutoriel est de :

Ce tutoriel se concentre sur le Bluetooth classique (Bluetooth 2.0). Si vous recherchez des informations sur le Bluetooth Low Energy - BLE (Bluetooth 4.0), veuillez consulter ce tutoriel similaire : ESP8266 - Bluetooth Low Energy

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×HC-05 Bluetooth Module
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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.

À propos du module Bluetooth HC-05

HC-05 est un module Bluetooth série qui fonctionne comme un convertisseur série vers Bluetooth. Il a la capacité de :

  • Prendre les données du broche RX série et les transmettre à l'appareil apparié (tel qu'un smartphone) via Bluetooth.
  • Recevoir les données de Bluetooth (de l'appareil apparié) et les transférer au broche TX série.

Plus précisément, lorsque l'ESP8266 communique avec une application smartphone (Android/iOS) :

  • Il se connecte au module Bluetooth HC-05 via ses broches Serial/SoftwareSerial.
  • Le module Bluetooth HC-05 est appairé avec l'application pour smartphone.
  • Pour envoyer des données à l'application pour smartphone, l'ESP8266 les envoie simplement via le Serial/SoftwareSerial.
  • Pour recevoir des données de l'application pour smartphone, l'ESP8266 les lit depuis le Serial/SoftwareSerial.
  • Aucun code Bluetooth spécial n'est nécessaire sur l'ESP8266.

Brochage du module Bluetooth HC-05

Brochage Bluetooth

Le module Bluetooth HC-05 dispose de 6 broches :

  • Broche Enable/Key : Cette broche est utilisée pour basculer entre le mode Données (fixé à LOW) et le mode Commande (fixé à HIGH). Si elle n'est pas connectée, elle sera par défaut en mode Données.
  • Broche VCC : broche d'alimentation, elle doit être connectée au +5V de la tension d'alimentation.
  • Broche GND : broche d'alimentation, elle doit être connectée au GND de la source d'alimentation.
  • Broche TX : broche de données série, elle doit être connectée à la broche RX de l'ESP8266. Les données reçues via Bluetooth seront envoyées à cette broche sous forme de données série.
  • Broche RX : broche de données série, elle doit être connectée à la broche TX de l'ESP8266. Les données reçues de cette broche seront envoyées au Bluetooth.
  • État : La broche d'état est connectée à la LED embarquée, elle peut servir de retour pour vérifier si le Bluetooth fonctionne correctement.

Néanmoins, pour les opérations de base, seulement quatre broches du module Bluetooth HC-05 doivent être connectées à l'ESP8266.

Le module Bluetooth HC-05 comporte deux composants intégrés :

  • Une LED qui indique l'état du module :
    • Un clignotement toutes les deux secondes signifie que le module est en mode Commande
    • Un clignotement rapide indique qu'il attend une connexion en mode Données
    • Un clignotement deux fois par seconde signifie que la connexion en mode Données a réussi
  • Un bouton qui peut être utilisé pour contrôler la broche Clé/Activation afin de sélectionner le mode de fonctionnement (mode Données ou mode Commande)

Comment ça marche

Le module Bluetooth HC-05 dispose de deux modes de fonctionnement :

  • Mode de données utilisé pour échanger des données avec l'appareil apparié.
  • Mode commande utilisé pour configurer les paramètres.

Heureusement, le module Bluetooth HC-05 peut fonctionner avec l'ESP8266 sans nécessiter de configuration, en utilisant les paramètres par défaut.

Paramètres par défaut du HC-05

Default Bluetooth Name “HC-05”
Default Password 1234 or 0000
Default Communication Slave
Default Mode Data Mode
Default Data Mode Baud Rate 9600, 8, N, 1
Default Command Mode Baud Rate 38400, 8, N, 1

À propos de l'application Bluetooth Serial Monitor

L'application Bluetooth Serial Monitor est une application mobile dont l'interface utilisateur ressemble au moniteur série de l'IDE Arduino. Elle peut être utilisée pour communiquer avec l'ESP8266 via Bluetooth sans nécessiter de code spécial pour le module Bluetooth dans le code ESP8266. Pour ce faire, les étapes suivantes doivent être suivies :

  • Connectez le ESP8266 au module Bluetooth HC-05
  • Installez l'application Bluetooth Serial Monitor sur votre smartphone
  • Ouvrez l'application et associez-la au module Bluetooth HC-05

Désormais, vous pouvez transmettre et recevoir des données depuis l'ESP8266 tout comme vous le feriez avec le moniteur série de l'IDE Arduino. Vous n'avez pas besoin d'apporter des modifications à votre code ESP8266 existant ni d'ajouter du code Bluetooth à votre nouveau code ESP8266.

Diagramme de câblage

Schéma de câblage Bluetooth ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Tableau de câblage. Schéma de câblage. Tableau des câblages.

ESP8266 Pins HC-05 Bluetooth Pins
Pin D7 TX
Pin D6 RX
5V VCC
GND GND
Enable/Key (NOT connected)
State (NOT connected)

※ NOTE THAT:

Vous pouvez utiliser d'autres broches ESP8266 en modifiant l'objet Serial dans le code ESP8266 pour un autre, tel que Serial1, Serial2, ou SoftwareSerial s'il est disponible.

Comment programmer pour le Bluetooth

Aucune programmation spécifique au Bluetooth n'est nécessaire. Nous devons juste utiliser le code série.

L'ESP8266 envoie des données à l'application Bluetooth sur le smartphone.

Afin de transmettre des données depuis un ESP8266 vers une application Bluetooth sur un smartphone, le code suivant doit être utilisé sur l'Arduino :

Dans ce cas, nous ferons en sorte que l'ESP8266 transmette « ESP8266 ici, donne-moi des ordres ! » à l'application Bluetooth sur un smartphone à des intervalles d'une seconde.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); } void loop() { Serial.println("ESP8266 here, command me!"); bluetooth.println("ESP8266 here, command me!"); delay(1000); }

Étapes rapides

Pour commencer avec ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est la première fois que vous utilisez ESP8266.
  • Câblez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Installez l'application Bluetooth Serial Monitor sur votre smartphone. Connectez le module Bluetooth HC-05 à l'ESP8266 selon le schéma de câblage. Copiez le code et ouvrez-le avec Arduino IDE. Cliquez sur le bouton Upload de l'Arduino IDE pour téléverser le code sur l'ESP8266. Si le téléversement échoue, déconnectez les broches TX et RX du module Bluetooth, téléversez le code, puis reconnectez à nouveau la broche RX/TX. Ouvrez le moniteur série sur Arduino IDE. Ouvrez l'application Bluetooth Serial Monitor sur votre smartphone et sélectionnez le mode Bluetooth classique.
Application de moniteur série Bluetooth
  • Connectez-le avec le module Bluetooth HC-05.
Surveillance d'appairage du moniteur série Bluetooth
  • Consultez le résultat sur l'application Android.
Application Moniteur Série Bluetooth
  • Visualisez le résultat sur le moniteur série de l'environnement de développement intégré ESP8266.
COM6
Send
ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous observerez que les informations affichées sur le moniteur série de l'IDE Arduino et l'application Android sont les mêmes.

L'application Bluetooth envoie des données à ESP8266

Le code suivant permet :

  • Envoi de données depuis une application Bluetooth vers un ESP8266
  • Lecture des données par l'ESP8266, suivie de l'envoi d'une réponse à l'application Bluetooth
/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); } void loop() { bluetooth.println(F("ESP8266 here, command me!")); if (bluetooth.available()) { // if there is data comming String command = bluetooth.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { bluetooth.println("LED is turned OFF"); // reports action to smartphone app // TODO: control your LED here } else if (command == "LED ON") { bluetooth.println("LED is turned ON"); // reports action to smartphone app // TODO: control your LED here } } delay(500); }

Étapes rapides

  • Câblez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Copiez le code et ouvrez-le avec Arduino IDE.
  • Cliquez sur le bouton Upload sur Arduino IDE pour compiler et téléverser le code vers l'ESP8266.
  • Ouvrez le moniteur série sur Arduino IDE.
  • Connectez l'application Android au module Bluetooth HC-05, comme dans l'exemple précédent.
  • Une fois connecté, tapez soit "LED ON" soit "LED OFF" sur l'application Android et appuyez sur le bouton "ENVOYER".
Application de moniteur série Bluetooth
  • L'ESP8266 reçoit les données et imprime la réponse sur le port série. Ces données sont ensuite envoyées à l'application Bluetooth, et le résultat peut être visualisé sur l'application Android.
Application de surveillance série Bluetooth
  • Consultez le résultat dans la fenêtre du moniteur série de l'environnement de développement intégré ESP8266.
COM6
Send
ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! LED ON LED is turned ON ESP8266 here, command me! ESP8266 here, command me! ESP8266 here, command me! LED OFF LED is turned OFF ESP8266 here, command me! ESP8266 here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous observerez que les informations affichées sur le moniteur série de l'IDE Arduino et l'application Android sont les mêmes.

Code ESP8266 - Contrôler une LED avec une application smartphone via Bluetooth

Ce code exemple ESP8266 répondra à deux commandes : « ON » et « OFF ». Lorsqu'elles sont reçues, ces commandes seront utilisées pour allumer ou éteindre une LED intégrée via l'application Bluetooth Serial Monitor.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module #define LED_PIN 8 SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin as a digital output pin } void loop() { if (bluetooth.available()) { // if there is data comming String command = bluetooth.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { digitalWrite(LED_PIN, LOW); // turn off LED bluetooth.println("LED is turned OFF"); // reports action to smartphone app } else if (command == "LED ON") { digitalWrite(LED_PIN, HIGH); // turn on LED bluetooth.println("LED is turned ON"); // reports action to smartphone app } } }

Vous pouvez trouver une explication plus détaillée des instructions dans le tutoriel ESP8266 contrôle LED via Bluetooth/BLE.

Code ESP8266 - Contrôler un moteur servo avec une application smartphone via Bluetooth

Ce code ESP8266 ci-dessous reçoit la valeur de l'angle depuis l'application Bluetooth Serial Monitor afin de contrôler l'angle du moteur servo.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-bluetooth */ #include <SoftwareSerial.h> #include <Servo.h> #define SOFT_RX D7 // The ESP8266 pin connected to the TX of the bluetooth module #define SOFT_TX D6 // The ESP8266 pin connected to the RX of the bluetooth module SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); Servo servo; // create servo object to control a servo int pos = 0; // variable to store the servo position void setup() { Serial.begin(9600); bluetooth.begin(9600); servo.attach(11); // attaches the servo on pin 11 to the servo object } void loop() { if (bluetooth.available()) { // if there is data comming int angle = bluetooth.parseInt(); if (angle >= 0 && angle <= 180) { servo.write(angle); // rotate servo bluetooth.print("Rotated servo to angle: ");// reports action to smartphone app bluetooth.println(angle); } else { bluetooth.print("Invalid angle: ");// reports invalid value to smartphone app bluetooth.println(angle); } } }

Vous pouvez consulter les instructions en détail dans le tutoriel ESP8266 contrôle un moteur servo via Bluetooth/BLE. Pour un examen plus approfondi des instructions, consultez le tutoriel ESP8266 contrôle un moteur servo via Bluetooth/BLE. Si vous avez besoin de voir les instructions plus en profondeur, référez-vous au tutoriel ESP8266 contrôle un moteur servo via Bluetooth/BLE. Pour obtenir une vue plus complète des instructions, rendez-vous sur le tutoriel ESP8266 contrôle un moteur servo via Bluetooth/BLE.

Si vous trouvez l'application Bluetooth Serial Monitor utile, merci de lui donner une note de 5 étoiles sur Play Store. Nous apprécions votre soutien !

Vidéo

Références de fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!