Étape 1: HC-06 et Arduino
Bluetooth est un type de communication sans fil utilisée pour retransmettre la voix et données à haute vitesse en utilisant les ondes de la radio. Il est largement utilisé dans les téléphones mobiles pour effectuer des appels, casque d’écoute et de partager des données. Ce type de communication est un moyen bon marché et facile de contrôler quelque chose à distance en utilisant arduino.
HC-06 module possède 4 broches pour être connecté à l’arduino, ils sont :
- RXD
- TXD
- SCR
- GND
RXD recevra des données d’arduino ; TXD envoie des données à arduino ; SCR est le bloc d’alimentation (3.3V 6,6) et GND est au sol.
Vous je dois faire attention quant au niveau RXD, certains modules travaillent avec 5V, mais celui-ci fonctionne avec 3.3V et arduino TX enverra un signal de 5V, alors il a besoin d’un diviseur de tension.
Diviseur de tension avec R1 = 300Ω:
Vout = R2/(R2+R1) * Vin
3.3 = R2/(R2+300) * 5
3.3 * R2 + 990 = 5 * R2
R2 = 990/1.7
R2 ~ 600Ω
Si vous avez une résistance différente :
R2 = (3.3 * R1) / 1.7Ω
Mise en place :
1ª connecter le module SC-06 (voir Pict.) :
Arduino---HC-06
RX---TXD
TX---RXD
+ 5V---VCC
GND---GND
2ª C code :
L’esquisse de ce projet est très simple, tout ce que vous avez à faire est de vérifier le port série, si la donnée n’est disponible.
À l’aide d’un téléphone android avec un apk de bluetooth spp, la commande est envoyée au bluetooth (RX/TX). Ce qui se passe, c’est que le module bluetooth communique avec bluetooth android en utilisant un profil appelé SPP (Serial Port Profile). Il émule un Port USB connecté à l’arduino et android.
Définir toutes les goupilles et les variables.
char command; String string;#define led 8
La vitesse de transmission par défaut du module HC-06 est 9600. Le code d’installation Sub :
void setup(){Serial.begin(9600); pinMode(led, OUTPUT);}
Boucle de Sub :
void loop(){ if (Serial.available() > 0) {string = "";} while(Serial.available() > 0) { command = ((byte)Serial.read()); if(command == ':') { break; } else { string += command; } delay(1); } if(string == "LO") { LEDOn(); } if(string =="LF") { LEDOff(); } }
Il existe deux fonctions dans le code. En fait, leur nom dit tout.
void LEDOn() { digitalWrite(led, HIGH); } void LEDOff() { digitalWrite(led, LOW); }