Outils pour utilisateurs

Outils du site


wiki:tutoriels:arduino:module-bleutooth

Ceci est une ancienne révision du document !


COMMUNIQUER AVEC UN SMARTPHONE VIA UN MODULE BLUETOOTH

  • Auteur : Damien MUTI DESGROUAS - Sevan Papazian (promo 2018)
  • Date : dernière mise à jour le 09/02/2021
  • Licence : libre !
  • Contexte : Apprentissage
  • Fichiers : liens éventuels
  • https:

Introduction

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 :

Utilisation du module HC06

Il faut suivre le tutoriel donné sur le lien suivant :

Schéma de câblage

Ce tutoriel donne le schéma de câblage :

Initialisation du module

Le programme initial permettant de donner un nom, un code PIN, etc. au module Bluetooth :

#include <SoftwareSerial.h>

SoftwareSerial hc06(2,3); // RX, TX

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

Problème de connexion

Dans une classe où il y a plusieurs modules BT, il est parfois difficile de trouver le module BT que vous avez connecté à votre carte. Sur les applications de communication Série en Bluetooth (Bluetooth Serial), il apparaît seulement plusieurs “HC-05”… Difficile de choisir. On peut s'en sortir si on connait l'adresse MAC (identifiant unique du matériel) du type : 7D:2C:55:C0:2E:83.

La solution est disponible sur cet Article : Forum Arduino

La liste de toutes les commandes AT pour le module BT en mode “commande” : Embedded Bluetooth Serial Communication Module - AT command set

Dialogue entre le smartphone et la carte Arduino

Contrôler une LED

Présentation

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 :

Arduino - module Bluetooth HC06 - Smartphone

Application Bluetooth Terminal

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 :

Programme

Il faut ensuite téléverser le code suivant sur la carte Arduino :

#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);
}

void clignoterLed(int led, int Ta, int Te) { // led : patte connécéet à la led, Ta: temps d'allumage, Te: temps led éteinte
  digitalWrite(led, HIGH);
  delay(Ta);
  digitalWrite(led, LOW);
  delay(Te);
}

Le code Arduino est téléchargeable ici : test_send_recieve_hc06_clignoter_led.zip

Lire les données d'un capteur : ici potentiomètre

Montage

Reprendre le montage précédent et y incorporer un potentiomètre branché sur A0 comme l'image suivante :

Algorithme
  • Lire les données sur le capteur (ici le potentiomètre)
  • envoyer les données via le port Bleutooth
  • Afficher les données sur un terminal Bluetooth d'un smartphone.
Programme

télécharger le programme Arduino sur le lien suivant :

Connection directe du module BT sur les pattes RX et TX de la carte

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 :

ICN au Lycée Valin

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.

Créer une application Android sur App Inventor 2

Présentation

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 :

Contrôler une LED et recevoir des données d'un capteur

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 :

Utiliser un slider horizontal pour contrôler la fréquence de clignotement d'une LED

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.

Gestion du Son et des images sur App Inventor 2

Application à un habit interactif - Bluetooth et Processing

Présentation

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.

Montage

Le système comporte deux cartes Arduino

Dabble : Une librairie spécifique pour contrôler la carte Arduino via un module Bluetooth

Installer la librairie Dabble

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 :

Utilisation d'un module HC-05

Bibliographie

Notice d'installation

L'installation du module Bluetooth HC05, c'est à dire la connexion et le test de ce composant est accessible sur le tutoriel de Gotronic :

Module HC-05 Grove BLE v1

Le tutoriel d'utilisation est le suivant : Wiki Seeeduino -Grove-BLE-dual_model-v1.0

Carte Arduino Nano BLE

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

Bibliographie

Tutoriel Seeeduino :

wiki/tutoriels/arduino/module-bleutooth.1652193877.txt.gz · Dernière modification: 2022/05/10 16:44 de damien.muti