Arduino - BLE

Dans ce tutoriel, nous allons apprendre :

Arduino BLE

La portée de ce tutoriel :

Il est important de noter que ce tutoriel couvre spécifiquement le Bluetooth Low Energy (BLE, Bluetooth 4.0). Si vous recherchez des informations sur le Bluetooth classique (Bluetooth 2.0), veuillez consulter un tutoriel similaire Arduino - Bluetooth.

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×HM-10 Bluetooth Module
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

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 convertisseur de série à Bluetooth Low Energy. Il effectue les actions suivantes :

  • Reçoit des données de la broche RX série et les transmet à un appareil appairé tel qu'un smartphone via BLE
  • Reçoit des données de BLE (de l'appareil appairé) et les envoie à la broche TX série.

Plus précisément, lors de l'utilisation d'un Arduino pour communiquer avec une application smartphone (Android/iOS), ce qui suit se produit :

  • L'Arduino se connecte au module Bluetooth HM-10 via les broches Serial/SoftwareSerial.
  • Le module Bluetooth HM-10 est appairé avec une application smartphone.
  • L'Arduino envoie des données à l'application smartphone en les envoyant au Serial/SoftwareSerial.
  • L'Arduino reçoit des données de l'application smartphone en les lisant depuis le Serial/SoftwareSerial.
  • Aucun code BLE supplémentaire n'est requis sur l'Arduino.

Brochage

Brochage BLE

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

  • Broche BKR : pour contrôler le comportement du module. Ignorez cette broche si vous êtes débutant.
  • Broche RX : Broche de données série, connectez cette broche à la broche TX de l'Arduino. Les données reçues de cette broche seront envoyées au Bluetooth.
  • Broche TX : Broche de données série, connectez cette broche à la broche RX de l'Arduino. Les données reçues via BLE seront envoyées à cette broche sous forme de données série.
  • Broche GND : broche d'alimentation, connectez cette broche à la GND de la source d'alimentation.
  • Broche VCC : broche d'alimentation, connectez cette broche à 3,3V de la tension d'alimentation.
  • Broche STATE : Indique les états de fonctionnement :
    • Clignote en mode veille - impulsion répétée de 500 ms ;
    • Allumé en état de connexion - niveau haut.

    ※ NOTE THAT:

    • Nous n'avons besoin d'utiliser que 4 broches : VCC, GND, RX, TX
    • Certains fabricants produisent le HM-10 avec seulement quatre broches.

À propos de l'application Moniteur Série Bluetooth

L'application Bluetooth Serial Monitor est une application mobile qui imite l'apparence du Serial Monitor dans l'IDE Arduino. Elle permet de communiquer avec une carte Arduino via Bluetooth sans nécessiter de code supplémentaire dans le sketch Arduino. Pour l'utiliser, suivez ces étapes :

  • Connectez l'Arduino à un module Bluetooth HM-10
  • Téléchargez et installez l'application Bluetooth Serial Monitor sur votre smartphone
  • Ouvrez l'application et connectez-la au module Bluetooth HM-10

Avec ces étapes complétées, vous pouvez maintenant envoyer et recevoir des données depuis l'Arduino comme si vous utilisiez le moniteur série dans l'IDE Arduino, sans avoir besoin de modifier votre code Arduino existant ou d'ajouter un code spécifique pour le Bluetooth.

Diagramme de câblage

Schéma de câblage Arduino BLE

This image is created using Fritzing. Click to enlarge image

La table de câblage

Arduino Pins HM-10 Bluetooth Pins
RX (Pin 0) TX
TX (Pin 1) RX
5V VCC
GND GND
BKR (NOT connected)
STATE (NOT connected)

※ NOTE THAT:

Le code Arduino peut utiliser d'autres broches en remplaçant l'objet Serial par une alternative telle que Serial1, Serial2 ou SoftwareSerial (si disponible).

Comment programmer pour le Bluetooth

Aucun code Bluetooth spécialisé n'est nécessaire, seul le code série est requis.

Arduino envoie des données vers l'application Bluetooth sur Smartphone

Pour transmettre des données d'une carte Arduino à une application Bluetooth sur un smartphone, le code Arduino suivant peut être utilisé. Cet exemple montre l'envoi du message « Arduino ici, donne-moi des ordres ! » de l'Arduino à l'application smartphone toutes les secondes.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino/arduino-ble */ void setup() { Serial.begin(9600); } void loop() { Serial.println("Arduino here, command me!"); delay(1000); }

Étapes rapides

Pour utiliser le code et connecter une carte Arduino à un smartphone via BLE, suivez ces étapes :

  • Installez l'application Moniteur Série Bluetooth sur votre smartphone.
  • Connectez le module Bluetooth HM-10 à la carte Arduino selon le schéma de câblage fourni.
  • Ouvrez l'IDE Arduino, copiez le code fourni ci-dessus et téléchargez-le sur la carte Arduino. 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.
  • Ouvrez le Moniteur Série sur l’IDE Arduino.
  • Sur votre smartphone, ouvrez l'application Moniteur Série Bluetooth et sélectionnez le mode BLE.
Application de surveillance série Bluetooth
  • Associez le smartphone au module Bluetooth HM-10.
Surveillance de l'appairage du moniteur série Bluetooth
  • Observez le résultat sur l'application Android.
Application de surveillance série Bluetooth
  • Observez le résultat sur le moniteur série de l'IDE Arduino.
COM6
Send
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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

Application Bluetooth envoie des données à Arduino

Le code ci-dessous effectue les actions suivantes :

  • Envoyez des données de l'application Bluetooth à la carte Arduino
  • La carte Arduino lira les données entrantes puis enverra une réponse au dispositif Bluetooth.
/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino/arduino-ble */ // NOTE: change the Serial to other Serial/Software Serial if you connects Bluetooth module to other pins void setup() { Serial.begin(9600); } void loop() { Serial.println(F("Arduino here, command me!")); if (Serial.available()) { // if there is data comming String command = Serial.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { Serial.println("LED is turned OFF"); // reports action to smartphone app // TODO: control your LED here } else if (command == "LED ON") { Serial.println("LED is turned ON"); // reports action to smartphone app // TODO: control your LED here } } delay(500); }

Étapes rapides

Voici les étapes pour utiliser le code avec Arduino et une application Android :

  • Ouvrez l'IDE Arduino et collez le code fourni ci-dessus.
  • Cliquez sur le bouton Upload pour charger le code sur la carte Arduino.
  • Ouvrez le Moniteur Série dans l'IDE Arduino.
  • Ouvrez l'application Android et associez-la au module Bluetooth HM-10 en suivant les instructions fournies dans un exemple précédent.
  • Une fois connecté, tapez "LED ON" ou "LED OFF" dans l'application Android et appuyez sur le bouton "ENVOYER".
Application Moniteur Série Bluetooth
  • La carte Arduino recevra les données, imprimera une réponse sur le port série. Ces données seront envoyées à l'application Bluetooth.
  • Vérifiez le résultat sur l'application Android.
Application de surveillance série Bluetooth
  • Vérifiez le résultat sur le moniteur série de l'IDE Arduino.
COM6
Send
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! LED ON LED is turned ON Arduino here, command me! Arduino here, command me! Arduino here, command me! LED OFF LED is turned OFF Arduino here, command me! Arduino here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Lorsque vous aurez complété les étapes ci-dessus, vous remarquerez que les informations affichées sur le moniteur série de l'IDE Arduino et sur l'application Android seront les mêmes.

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

Le code d'exemple Arduino suivant utilise les commandes "ON" et "OFF" reçues via l'application Bluetooth Serial Monitor pour allumer/éteindre une LED intégrée.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino/arduino-ble */ // NOTE: change the Serial to other Serial/Software Serial if you connects Bluetooth module to other pins #define LED_PIN 8 void setup() { Serial.begin(9600); pinMode(LED_PIN, OUTPUT); // set the digital pin as output: } void loop() { if (Serial.available()) { // if there is data comming String command = Serial.readStringUntil('\n'); // read string until meet newline character if (command == "OFF") { digitalWrite(LED_PIN, LOW); // turn off LED Serial.println("LED is turned OFF"); // reports action to smartphone app } else if (command == "ON") { digitalWrite(LED_PIN, HIGH); // turn on LED Serial.println("LED is turned ON"); // reports action to smartphone app } } }

Vous pouvez voir les instructions plus en détail dans le tutoriel Arduino contrôle LED via Bluetooth/BLE.

Code Arduino - Contrôler un moteur Servo avec une application pour smartphone via BLE

Le code Arduino suivant reçoit une valeur d'angle de l'application Bluetooth Serial Monitor pour contrôler l'angle d'un moteur servo.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino/arduino-ble */ // NOTE: change the Serial to other Serial/Software Serial if you connects Bluetooth module to other pins #include <Servo.h> Servo servo; // create servo object to control a servo int pos = 0; // variable to store the servo position void setup() { Serial.begin(9600); servo.attach(11); // attaches the servo on pin 11 to the servo object } void loop() { if (Serial.available()) { // if there is data comming int angle = Serial.parseInt(); if (angle >= 0 && angle <= 180) { servo.write(angle); // rotate servo Serial.print("Rotated servo to angle: ");// reports action to smartphone app Serial.println(angle); } else { Serial.print("Invalid angle: ");// reports invalid value to smartphone app Serial.println(angle); } } }

Vous pouvez voir les instructions plus en détail dans le tutoriel Arduino contrôle un moteur servo via Bluetooth/BLE.

Si l'application Bluetooth Serial Monitor vous est utile, veuillez lui donner une note de 5 étoiles sur Play Store. Merci !

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!