Ceci est une ancienne révision du document !
Un module bluetooth permet une communication entre la carte Arduino et un smartphone ou un ordinateur sans avoir à connecter un câble.
Vous trouverez un lien sur un tutoriel sur la manière d'utiliser un module BlueTooth avec une carte Arduino:
Les caractéristiques du module-bluetooth-hc-06 :
Il faut suivre le tutoriel donné sur le lien suivant :
Le programme initial permettant de donner un nom, un code PIN, etc. au module Bluetooth :
#include <SoftwareSerial.h> SoftwareSerial hc06(2,3); void setup(){ //Initialize Serial Monitor Serial.begin(9600); Serial.println("ENTER AT Commands:"); //Initialize Bluetooth Serial Port hc06.begin(9600); } void loop(){ //Write data from HC06 to Serial Monitor if (hc06.available()){ Serial.write(hc06.read()); } //Write from Serial Monitor to HC06 if (Serial.available()){ hc06.write(Serial.read()); } }
Le code Arduino est téléchargeable ici : init_hc-06.zip
Voici un programme permettant de contrôler la LED de la carte (connectée à la patte N°13). Le programme permet par exemple de d'allumer ou d'éteindre la LED, ainsi que de faire clignoter la LED à une période définie par un utilisateur. La vidéo suivante montre son fonctionnement :
Il faut d'abord télécharger une application sur votre smartphone permettant le dialogue entre votre smartphone et le module Bluetooth. Par exemple l'application :
#include <SoftwareSerial.h> SoftwareSerial hc06(2, 3); String cmd = ""; float sensor_val = 0; // faire clignoter clignoter la led byte led = 13; int Tblink = 100; float isBlink = false; // drapeau pour lancer le clignotement... ou non void setup() { // pin 13 OUTPUT pinMode(led, OUTPUT); //Initialize Serial Monitor Serial.begin(9600); //Initialize Bluetooth Serial Port hc06.begin(9600); } void loop() { //Read data from HC06 while (hc06.available() > 0) { cmd += (char)hc06.read(); } //Select function with cmd if (cmd != "") { Serial.print("Command recieved : "); Serial.println(cmd); // We expect ON or OFF from bluetooth if (cmd == "ON") { Serial.println("Function is on"); digitalWrite(13, HIGH); // alumer la led isBlink = false; // arrêter le clignotement } else if (cmd == "OFF") { Serial.println("Function is off"); digitalWrite(13, LOW); // éteindre la led isBlink = false; // arrêter le clignotement } else { // convertir la comande en un entier int x = cmd.toInt(); // conversion de la chaine de caractère en un entier if (x >= 0 && x <= 10000) { // si la commande est un nombre entre 0 et 10000 (soit 10s) Tblink = x; clignoterLed(13, x, x); isBlink=true; } else { Serial.println("Function is off by default"); } } cmd = ""; //reset cmd } // gestion du clignotement if (isBlink) { clignoterLed(led,Tblink,Tblink); } // Simulate sensor measurement sensor_val = (float)random(256); // random number between 0 and 255 //Write sensor data to HC06 hc06.print(sensor_val); delay(100); }
Le code Arduino est téléchargeable ici : test_send_recieve_hc06_clignoter_led.zip
Reprendre le montage précédent et y incorporer un potentiomètre branché sur A0 comme l'image suivante :
télécharger le programme Arduino sur le lien suivant :
Il est possible de connecter directement les broches RX et TX du module BT respectivement aux pattes digitales TX et RX de la carte Arduino. Dans ce cas, la communication série s'effectue directement via la classe “Serial” incluse dans la carte. Le schéma est le suivant :
Le programme et les explications permettant de contrôler une LED est le suivant :
Le code Arduino est le suivant :
// définition de la broche 13 de la carte en tant que variable const int led_rouge = 13; String message; // fonction d'initialisation de la carte void setup() { pinMode(led_rouge, OUTPUT); // initialisation de la broche 13 comme étant une sortie Serial.begin(9600); // initialisation de la liaison série } void loop() { if (Serial.available() > 0 ) //Si un message a été reçu faire ceci { message=Serial.readString(); // lire le message if(message=="1"){ digitalWrite(led_rouge, HIGH); // allume la LED } if(message=="0"){ digitalWrite(led_rouge, LOW); // éteint la LED } } }
Dans ce code, il est nécessaire cette fois-ci que l'application Android envoie “1” pour allumer la LED et “0” pour l'éteindre.
Nous allons créer une application Android permetant de dialoguer avec une carte Arduino via un module Bluetooth. L'outil en ligne MIT App Inventor offre une manière graphique très élégante de fabriquer une application Android:
Vous trouverez un tutoriel très simple en français sur la construction d'une application permettant de contrôler deux boutons (ON/OFF), de recevoir et d'afficher des données envoyées par une carte Arduino via un module Bluetooth :
Nous allons utiliser le programme Arduino précédemment écrit permettant d'allumer et d'éteindre une LED (patte 13) et d'envoyer des données lues sur un potentiomètre via le port Bluetooth.
Le programme Arduino est téléchargeable sur ce lien :
Grace à l'outil en ligne MIT App Inventor il est possible de créer une application permettant de se connecter au module Bluetooth, comprenant deux boutons ON et OFF permettant d’allumer ou d'éteindre la LED 13, et permettant d'afficher les données envoyées par la carte:
MIT App Inventor permet de designer l'interface de l'application en sélectionnant les boutons et les fonctionnalités :
A chaque composant correspond une description détaillée qu'il est possible de customiser. Par exemple ici pour le bouton ON :
La programmation de l'application s'effectue sous Scratch qui est une programmation graphique par bloc comme le montre l'image suivante :
Vous pouvez télécharger l'application Android sur le lien suivant :
Le projet développé sur l'outil en ligne MIT App Inventor peut être modifié en téléchargeant le lien suivant :
Une version différente du projet est disponible sur ces liens :
Il est possible de visualiser l'application Android créée directement sur votre ordinateur à l'aide d'un émulateur Android. Les informations d'installation sont disponibles sur ce lien :
L'installation sur Windows est disponible sur le lien suivant :
Voici quelques tutoriels permettant d'insérer un slider dans l'application:
La nouvelle application est basée sur le même programme que la partie précédente. On y insère un slider permettant d'envoyer la période de clignotement entre 0 et 1000ms. L'interface de l'application est la suivante :
le programme et l'application sont disponibles sur les liens suivants:
Le programme est effectué sous Scratch :
Ce programme peut ensuite être modifié pour contrôler un moteur, un servomoteur, la couleur d'une LED multicolore, ou toute autre application nécessitant l'utilisation d'un paramètre.
Voici un lien expliquant comment accéder aux images et au sons sur App Inventor 2 :
En s'inspirant des affiches interactives, il est possible de créer des objets interactifs capables de réagir en lançant un médiat (son, vidéo, animation). Cette interaction intervient par exemple lorsque la valeur renvoyée par la mesure d'un paramètre associée à un capteur est inférieure à un seuil.
On choisit exemple un capteur de distance à ultrason.
Le système comporte deux cartes Arduino
Dans l'IDE d'Arduino, aller dans Croquis> Inclure une bibliothèque > Gérer les bibliothèques :
Dans le moteur de recherche du Gestionaire de bibliothèque, taper le nom du module Bluetooth (ici hc-06) :
Installer la librairie “DabbleESP32”, en cliquant sur le bouton “Installer”.
Nous disposons maintenant de tous les exemples de cette librairie :
Cette librairie permet maintenant de contrôler certains capteurs et actionneurs (LED,etc.) branchée sur la carte Arduino. Pour cela, il suffit de télécharger l'interface de Dabble sur votre Smartphone :
Data sheet :
Tutoriel Arduino :
Tutoriel en PDF :
Un tutoriel en vidéo :
L'installation du module Bluetooth HC05, c'est à dire la connexion et le test de ce composant est accessible sur le tutoriel de Gotronic :
La carte Arduino nano BLE contient un module Bluetooth intégré. La documentation de la carte Arduino Nano BLE est disponible sur le lien suivant : https://store.arduino.cc/arduino-nano-33-ble
Le schéma des pattes d'entrée et sortie est le suivant :
Les schémas de câblage et fritzing sont disponibles sur le lien suivant : https://store.arduino.cc/arduino-nano-33-ble :
La librairie permettant de contrôler la carte depuis l'IDE est la suivante : ArduinoBLE library
Tutoriel Seeeduino :