ESP8266 - Bluetooth basse énergie

Ce tutoriel vous explique comment utiliser l'ESP8266 pour contrôler le module BLE HM-10. En détail, nous apprendrons :

ESP8266 NodeMCU BLE

Le but de ce tutoriel est de :

Il est important de savoir que ce tutoriel concerne spécifiquement le Bluetooth Low Energy (BLE, ou Bluetooth 4.0). Si vous avez besoin d'informations sur le Bluetooth Classique (Bluetooth 2.0), veuillez consulter un tutoriel similaire ESP8266 - Bluetooth.

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×HM-10 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 HM-10

Le HM-10 est un module BLE série qui fonctionne comme un adaptateur série vers Bluetooth Low Energy. Il réalise les tâches suivantes :

  • Prendre des données depuis la broche RX série et les envoyer à un appareil connecté, comme un smartphone, via BLE.
  • Recevoir des données via BLE (de l'appareil appairé) et les transmettre à la broche TX série.

Lorsqu'un ESP8266 est utilisé pour communiquer avec une application smartphone (Android/iOS), les étapes suivantes se produisent :

  • Une connexion est établie entre l'ESP8266 et le module Bluetooth HM-10 via les broches Serial/SoftwareSerial
  • Le module Bluetooth HM-10 est appairé avec l'application smartphone
  • Les données sont envoyées de l'ESP8266 à l'application smartphone en les envoyant au Serial/SoftwareSerial
  • Les données sont reçues de l'application smartphone par l'ESP8266 en les lisant depuis le Serial/SoftwareSerial
  • Aucun code BLE supplémentaire n'est nécessaire sur l'ESP8266.

Brochage du module BLE HM-10

Brochage BLE

Le module HM-10 BLE possède 6 broches :

  • La broche BKR est utilisée pour contrôler le comportement du module. Si vous êtes débutant, vous pouvez ignorer cette broche.
  • La broche RX est la broche de données série et doit être connectée à la broche TX de l'ESP8266. Les données reçues de cette broche seront envoyées au Bluetooth.
  • La broche TX est la broche de données série et doit être connectée à la broche RX de l'ESP8266. Les données reçues via BLE seront envoyées à cette broche sous forme de données série.
  • La broche GND est la broche d'alimentation et doit être connectée au GND de la source d'alimentation.
  • La broche VCC est la broche d'alimentation et doit être connectée à 3,3V de la tension d'alimentation.
  • La broche STATE indique les états de fonctionnement :
    • Clignote en mode veille - elle répètera une impulsion de 500 ms;
    • Allumée en état de connexion - elle sera à un niveau haut.

    ※ NOTE THAT:

    Seulement quatre broches sont nécessaires pour le HM-10 : VCC, GND, RX et TX.

    Certains fabricants du HM-10 le fabriquent avec seulement ces quatre broches.

À propos de l'application Moniteur Série Bluetooth

Pour utiliser l'application Bluetooth Serial Monitor, vous devez d'abord connecter l'ESP8266 à un module Bluetooth HM-10. Ensuite, téléchargez et installez l'application sur votre smartphone. Enfin, ouvrez l'application et connectez-la au module Bluetooth HM-10.

Une fois ces étapes terminées, vous pourrez transmettre et recevoir des données depuis l'ESP8266 comme si vous utilisiez le moniteur série dans l'IDE Arduino, sans avoir besoin de modifier le code de votre ESP8266 ou d'ajouter un quelconque code relatif au Bluetooth.

Diagramme de câblage

Schéma de câblage ESP8266 NodeMCU BLE

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.

Un tableau de câblage est un type de tableau qui affiche les connexions entre différents composants. Un tableau de câblage est un tableau qui montre les liens entre divers composants.

ESP8266 Pins HM-10 Bluetooth Pins
Pin D7 TX
Pin D6 RX
5V VCC
GND GND
BKR (NOT connected)
STATE (NOT connected)

※ NOTE THAT:

Le code ESP8266 peut être modifié pour utiliser d'autres broches en remplaçant l'objet Serial par une option alternative, telle que Serial1, Serial2 ou SoftwareSerial (si disponible).

Comment programmer pour le Bluetooth

Aucune programmation spéciale pour le Bluetooth n'est requise ; seule la programmation série est nécessaire.

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

Pour envoyer des données depuis une carte ESP8266 vers une application Bluetooth sur un smartphone, le code suivant peut être utilisé. Cet exemple montre la transmission du message « ESP8266 ici, donne-moi des ordres ! » de l'ESP8266 vers l'application smartphone toutes les secondes.

/* * 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-ble */ #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 l'ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
  • Câblez les composants comme indiqué dans 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.

Pour configurer une carte ESP8266 afin de communiquer avec un smartphone via BLE, suivez ces étapes :

  • Téléchargez l'application Bluetooth Serial Monitor et installez-la sur votre smartphone.
  • Connectez le module Bluetooth HM-10 à la carte ESP8266 conformément au schéma de câblage.
  • Ouvrez l'IDE Arduino, copiez le code fourni ci-dessus et téléchargez-le sur la carte ESP8266. Si vous ne parvenez pas à télécharger le code, déconnectez les broches TX et RX du module Bluetooth, téléchargez le code, puis reconnectez les broches RX/TX.
  • Lancez le moniteur série sur l'IDE Arduino.
  • Sur votre smartphone, ouvrez l'application Bluetooth Serial Monitor et sélectionnez le mode BLE.
Application de surveillance série Bluetooth
  • Connectez le smartphone au module Bluetooth HM-10.
Moniteur série Bluetooth en appairage
  • Examinez le résultat de l'application Android.
Application de surveillance série Bluetooth
  • Examinez les résultats affichés sur le moniteur série de l'IDE Arduino.
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  

Si vous suivez les étapes mentionnées et exécutez le code, vous remarquerez que les données affichées sur le moniteur série de l'IDE Arduino et l'application Android sont identiques.

L'application Bluetooth envoie des données à ESP8266

Les étapes suivantes sont prises par le code :

  • Transmettre des données de l'application Bluetooth au module ESP8266
  • Le module ESP8266 lit les données entrantes et envoie une réponse au dispositif 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-ble */ #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é dans le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez l'Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, par exemple NodeMCU 1.0 (Module ESP-12E), et son port COM respectif.

Voici comment utiliser le code avec l'ESP8266 et une application Android :

  • Commencez par ouvrir l'IDE Arduino et copiez le code fourni.
  • Cliquez sur le bouton Upload pour transférer le code sur la carte ESP8266.
  • Ouvrez maintenant le moniteur série sur l'IDE Arduino.
  • Ensuite, ouvrez l'application Android et associez-la au module Bluetooth HM-10 en suivant les instructions d'un exemple précédent.
  • Enfin, tapez "LED ON" ou "LED OFF" dans l'application Android et appuyez sur le bouton "ENVOYER".
Application Moniteur Série Bluetooth
  • La carte ESP8266 recevra les données, puis imprimera une réponse sur le port série. Cette réponse sera envoyée à l'application Bluetooth, et le résultat pourra être consulté sur l'application Android.
Application de moniteur série Bluetooth
  • Examinez les données affichées sur le moniteur série de l'IDE Arduino.
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  

Une fois que vous aurez suivi les étapes ci-dessus, vous observerez que les informations affichées sur le moniteur série de l'Arduino IDE et l'application Android sont identiques.

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

Cet exemple de code ESP8266 utilise les commandes "ON" et "OFF" qui sont reçues via l'application Bluetooth Serial Monitor pour allumer ou éteindre une LED intégrée.

/* * 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-ble */ #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 examiner de plus près les instructions en visitant le tutoriel ESP8266 contrôle LED via Bluetooth/BLE. Pour mieux comprendre les instructions, consultez le tutoriel ESP8266 contrôle LED via Bluetooth/BLE. Pour un examen approfondi des instructions, référez-vous au tutoriel ESP8266 contrôle LED via Bluetooth/BLE.

Code ESP8266 - Contrôlez un moteur Servo avec une application smartphone via BLE

i. Le code ESP8266 ci-dessous est destiné à recevoir une valeur d'angle. 2. Cette valeur est envoyée via l'application Bluetooth Serial Monitor. 3. La valeur de l'angle est utilisée pour contrôler l'angle d'un 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-ble */ #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 trouver plus d'informations sur les instructions dans le tutoriel intitulé ESP8266 contrôle un moteur servo via Bluetooth/BLE. Pour un examen plus détaillé des instructions, veuillez consulter le tutoriel ESP8266 contrôle un moteur servo via Bluetooth/BLE.

Si vous trouvez l'application Bluetooth Serial Monitor utile, montrez votre appréciation en lui donnant une évaluation de 5 étoiles sur Play Store. Votre soutien est grandement apprécié !

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!