Arduino : utiliser un module Bluetooth HC-05

Par :
francoistonic
jeu, 22/10/2015 - 11:23
Niveau :
Facile

On me pose régulièrement la question : comment échanger, connecter avec un projet Arduino ? Le plus rapide et le moins cher est d’utiliser un module HC-05 qui apportera une connexion Bluetooth à votre IoT. Ce module est peu cher (environ 5 €, voire, -4 € en direct de Chine). De nombreux tutos et montages sont visibles sur le web.

Nous avons testé le montage avec une classique Arduino Uno, un module HC-05 et une LEB RGB.

Branchement du HC-05 :

RXD -> 11
TXD -> 10
GND -> GND côté digital
VCC -> 5V

Attention ne pas connecter les autres broches.

Branchement LED RGB :

GND -> GND
RED -> 5
GREEN -> 3
BLUE -> 4 

Le LED RGB contient 3 couleurs (rouge, vert, bleu) et nécessite 3 broches de connexion (1 par couleur). 

Le code est très simple. (voir ci-dessous) On utilise la librairie SoftwareSerial.h. On déclare les broches pour la réception et l’émission (RX / TX), on contrôle la présence du Bluetooth puis si tout est ok, on peut manipuler les LED RGB. La commande passe en émission, le HC-05 reçoit les données. En retour, la carte retourne les données que l’on aura codé.

Nous avons utilisé et adapté le code du montage présenté sur Instructables : http://www.instructables.com/id/Arduino-AND-Bluetooth-HC-05-Connecting-easily/

Nous vous conseillons tout d’abord de brancher l’Arduino en filaire pour charger le code sur la carte. Puis retirez le câble. 

- activer le Bluetooth sur votre machine

- si tout se déroule bien, vous trouverez la référence HC-05, connecter et jumeler (code de jumelage : 1234). Si tout est ok, la led rouge du HC-05 fera deux brefs clignotements à intervalles réguliers.

Dans Arduino IDE :

- dans le menu Outils -> Port, sélectionner HC-05-DevB (en général c’est cette référence qui est indiquée)

- afficher le moniteur série

- dans le champs saisissable du haut, vous pouvez maintenant envoyer les commandes 0, 1 ou 3. 

Ce projet a été testé sur OS X 10.10.5. L’exemple sur Instructables est donné pour Windows. 

François Tonic - Rédacteur ne chef de Programmez!

#include <SoftwareSerial.h>
#define GREEN 3
#define BLUE 4
#define RED 5
SoftwareSerial Genotronex(10, 11); // RX, TX
int ledpin = 13;
int BluetoothData;
void setup() {
  Genotronex.begin(9600);
  Genotronex.println("Bluetooth 0 1 ou 3 ..");
  pinMode(ledpin, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  pinMode(RED, OUTPUT);
  digitalWrite(GREEN, HIGH);
  digitalWrite(BLUE, HIGH);
  digitalWrite(RED, HIGH);
}
void loop() {
  if (Genotronex.available()) {
    BluetoothData = Genotronex.read();
    if (BluetoothData == '1') {
      digitalWrite(ledpin, 1);
      Genotronex.println("LED  On D13 ON ! ");
      digitalWrite(GREEN, HIGH);
      digitalWrite(BLUE, LOW);
      digitalWrite(RED, LOW);
    }
    if (BluetoothData == '0') {
      digitalWrite(ledpin, 0);
      Genotronex.println("LED  On D13 Off ! ");
      digitalWrite(GREEN, LOW);
      digitalWrite(BLUE, LOW);
      digitalWrite(RED, LOW);
    }
    if (BluetoothData == '3') {
      digitalWrite(ledpin, 0);
      Genotronex.println("LED  rouge ");
      digitalWrite(GREEN, LOW);
      digitalWrite(BLUE, LOW);
      digitalWrite(RED, HIGH);
    }
  }
  delay(100);
}