Arduino Nano - BLE

Ce tutoriel vous explique comment utiliser un Arduino Nano pour contrôler un module BLE HM-10. En détail, nous allons apprendre :

Arduino Nano BLE

Le but de ce tutoriel est de :

Il est important de prendre en compte que ce tutoriel est axé sur le Bluetooth Low Energy (BLE, Bluetooth 4.0). Si vous avez besoin d'informations concernant le Bluetooth classique (Bluetooth 2.0), veuillez consulter le tutoriel similaire Arduino Nano - Bluetooth.

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×HM-10 Bluetooth Module
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

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 agit comme un convertisseur de série à Bluetooth Low Energy. Il a la capacité de :

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

Lorsqu'un Arduino Nano est utilisé pour communiquer avec une application smartphone (Android/iOS), les étapes suivantes ont lieu :

  • L'Arduino Nano est connecté au 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'Arduino Nano à l'application smartphone en les transmettant au Serial/SoftwareSerial
  • Les données sont reçues de l'application smartphone par l'Arduino Nano en les lisant depuis le Serial/SoftwareSerial
  • Aucun code BLE supplémentaire n'est nécessaire sur l'Arduino Nano.

Le schéma des broches du module BLE HM-10

Brochage BLE

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

  • Broche BKR : Cette broche est utilisée pour contrôler le comportement du module. Les débutants doivent ignorer cette broche.
  • Broche RX : C'est une broche de données série, qui doit être connectée à la broche TX de l'Arduino Nano. Les données reçues de cette broche seront envoyées au Bluetooth.
  • Broche TX : C'est une broche de données série, qui doit être connectée à la broche RX de l'Arduino Nano. Les données reçues via BLE seront envoyées à cette broche sous forme de données série.
  • Broche GND : C'est une broche d'alimentation, qui doit être connectée au GND de la source d'alimentation.
  • Broche VCC : C'est une broche d'alimentation, qui doit être connectée à 3,3V de la tension d'alimentation.
  • Broche STATE : Cette broche indique les états de fonctionnement :
    • Clignotement en mode veille - impulsion de 500 ms répétée ;
    • Activé en état de connexion - niveau haut.

    ※ NOTE THAT:

    • Seulement quatre broches sont nécessaires pour le HM-10, qui sont VCC, GND, RX et TX.
    • Certains producteurs fabriquent le HM-10 avec uniquement ces quatre broches.

À propos de l'application Moniteur série Bluetooth

Pour utiliser l'application Bluetooth Serial Monitor, vous devez d'abord connecter votre carte Arduino Nano à un module Bluetooth HM-10. Ensuite, téléchargez et installez l'application sur votre smartphone. Enfin, ouvrez l'application et établissez une connexion avec le module Bluetooth HM-10.

Une fois les étapes terminées, vous pourrez transmettre et recevoir des données depuis l'Arduino Nano comme si vous utilisiez le moniteur série dans l'IDE Arduino, sans avoir à apporter de modifications au code existant de l'Arduino Nano ou à ajouter du code spécifique au Bluetooth.

Diagramme de câblage

Schéma de câblage Arduino Nano BLE

This image is created using Fritzing. Click to enlarge image

Le Tableau de Câblage. Une Table pour Câbler

Arduino Nano 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 Nano peut utiliser d'autres broches en substituant l'objet Serial par une alternative telle que Serial1, Serial2 ou SoftwareSerial (si disponible).

Comment programmer pour le Bluetooth

Aucune programmation Bluetooth spécifique n'est requise, seule la programmation série est nécessaire.

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

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

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

Étapes rapides

  • Numérisez les appareils disponibles et sélectionnez le module HM-10.

Pour utiliser le code et établir une connexion entre une carte Arduino Nano et un smartphone via BLE, suivez ces étapes :

  • Téléchargez et installez l'application Bluetooth Serial Monitor sur votre smartphone.
  • Selon le schéma de câblage, connectez le module Bluetooth HM-10 à la carte Arduino Nano.
  • Ouvrez l'IDE Arduino, copiez le code fourni, et téléversez-le sur la carte Arduino Nano. Si vous rencontrez des difficultés pour téléverser le code, déconnectez les broches TX et RX du module Bluetooth, téléversez 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 passez en mode BLE.
  • Recherchez les dispositifs disponibles et sélectionnez le module HM-10.
Application de moniteur série Bluetooth
  • Connectez le smartphone au module Bluetooth HM-10.
Surveillance du jumelage du moniteur série Bluetooth
  • Jetez un œil au résultat sur l'application Android.
Application de surveillance série Bluetooth
  • Jetez un œil à la sortie affichée dans 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 prenez les mesures nécessaires et exécutez le code, vous verrez que les données affichées sur le moniteur série de l'IDE Arduino et sur l'application Android seront les mêmes.

L'application Bluetooth envoie des données à l'Arduino Nano

Le code ci-dessous effectue les tâches suivantes :

  • Envoi de données depuis l'application Bluetooth vers la carte Arduino Nano
  • La carte Arduino Nano lisant les données entrantes puis envoyant une réponse au dispositif Bluetooth.
/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-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 Nano et une application Android :

  • Lancez l'IDE Arduino et copiez le code fourni.
  • Cliquez sur le bouton Upload pour transférer le code sur la carte Arduino Nano.
  • Ouvrez le moniteur série depuis l'IDE Arduino.
  • Démarrez l'application Android et appairez-la avec le module Bluetooth HM-10 en suivant les instructions données dans un exemple précédent.
  • Après la connexion, tapez "LED ON" ou "LED OFF" dans l'application Android et appuyez sur le bouton "ENVOYER".
Application Moniteur Série Bluetooth
  • La carte Arduino Nano recevra les données et imprimera une réponse sur le port série. Ensuite, ces données seront transmises à l'application Bluetooth. Enfin, le résultat pourra être consulté sur 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
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  

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

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

Le code d'exemple suivant pour Arduino Nano utilise les commandes « ON » et « OFF » obtenues via l'application Bluetooth Serial Monitor pour allumer/éteindre une LED intégrée.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-ble */ #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define LED_PIN 12 // The Arduino Nano pin connected to the LED SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); pinMode(LED_PIN, OUTPUT); // set the digital pin as output: } 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 plus d'informations sur les instructions dans le tutoriel intitulé Arduino Nano contrôle une LED via Bluetooth/BLE. Pour un examen plus détaillé des instructions, reportez-vous au tutoriel Arduino Nano contrôle une LED via Bluetooth/BLE.

Code Arduino Nano - Contrôler un moteur servo avec une application smartphone via BLE

i. Le code Arduino Nano ci-dessous est utilisé pour recevoir une valeur d'angle de l'application Bluetooth Serial Monitor. 2. Cette valeur d'angle est ensuite utilisée pour contrôler l'angle d'un moteur servo.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-ble */ #include <Servo.h> #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define SERVO_PIN 12 // The Arduino Nano pin connected to the servo motor 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(SERVO_PIN); } 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 obtenir un regard plus détaillé sur les instructions dans le tutoriel Arduino Nano contrôle un moteur servo via Bluetooth/BLE. Pour une étude approfondie des instructions, veuillez consulter le tutoriel Arduino Nano contrôle un moteur servo via Bluetooth/BLE. Si vous souhaitez mieux comprendre les instructions, veuillez vous référer au tutoriel Arduino Nano contrôle un moteur servo via Bluetooth/BLE.

Si vous trouvez l'application Bluetooth Serial Monitor utile, veuillez la noter 5 étoiles sur Play Store. Votre appréciation est très appréciée !

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!