Aujourd’hui on va apprendre à comment utiliser appinventor et créer une application android pour commander un module bluetooth HC-05 avec un arduino.
Créer son application android facilement pour commander son arduino en bluetooth c’est la classe, je te montre donc comment commencer avec appinventor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | // Made by https://retroetgeek.com String mode = ""; String color = ""; void setup() { Serial.begin (9600); } void loop() { RetroEtGeekSerial(); //&mode:auto&color:10 //exemple de condition if( mode == "auto"){ // mon action mode = ""; } if( color == "quelquechose"){ // mon action color = ""; } } void RetroEtGeekSerial(){ if (Serial.available()){ String inputString = ""; long temps = millis(); // boucle blocage temps bandeau led /* while(millis() < temps + 1000){ if (Serial.available()){ //Serial.println("OK"); inputString = Serial.readString(); } } */ // fin boucle blocage led inputString = Serial.readString();// sans boucle blocage temps bandeau led char inputChar[inputString.length()+1] ; inputString.toCharArray(inputChar,inputString.length()+1); // lit toute les commandes separes par des & // Read each command pair char* command = strtok(inputChar, "&"); // boucle sur toutes les commandes while (command != 0) { // decoupe command en deux valeurs , separateur : // Split the command in two values char* valueCommand = strchr(command, ':'); if (valueCommand != 0) { *valueCommand = 0; ++valueCommand; // aiguillage par rapport a la valeur de command if(String(command) == "mode"){ mode = String(valueCommand) ; }else if(String(command) == "color"){ color = String(valueCommand) ; //secondHand = atoi(valueCommand); } } // Recherche une nouvelle commande separes pas un & // Find the next command in input string command = strtok(0, "&"); } delay(500); } } |
Matériel Nécessaire
- 1 arduino
- 1 module bluetooth HC05
- un bandeau led WS2811
- une alimentation bandeau led
Câblage
- Vcc sur le 3,3Volt ( Brancher sur le 5V si le module ne s’allume pas )
- Gnd sur le Gnd
- RXD sur le pin 1
- TXD sur le pin 0
Attention pour chaque Téléversement du programme sur l’arduino il faut déconnecter l’alimentation du module bluetooth car ici on est connecté sur le Serial de l’arduino.
Le but de ce tuto est de créer une application android pour communiquer avec notre arduino, nous allons passer au code arduino et créer une fonction pour recevoir plusieurs informations sous forme de “requête”.
Le format des informations est le suivant “&mode:auto&color:10” ce qui correspond à mettre un type d’information suivi de sa valeur.Ici j’envoie une information “mode” avec comme valeur “auto” et j’envoie aussi une autre information “color” avec comme information “10”.
A chaque nouvelle information que je souhaite ajouter je dois utiliser un “&”, le séparateur entre le type d’information et l’information est le “:”.Si je souhaite ajouter une information comme l’intensité avec pour valeur 255 ma “requête” ressemblera à “&mode:auto&color:10&intensite:255” .
Dans le programme je commence en créant 2 variable en String qui vont contenir mes informations mode et color ( voir requête ).
Dans le setup il ne faut pas oublier d’utiliser le Serial car on va utiliser le serial de l’arduino mais on va y connecter le bluetooth dessus.
Dans la boucle loop j’appelle ma fonction RetroEtGeekSerial, c’est dans cette fonction que je vais récupérer les données envoyées.
A toi de placer cette fonction ou tu en a besoin dans ton programme.
Comment la fonction se décompose , j’ai une première condition pour savoir si la connexion est disponible avec “Serial.available”.
Je récupère les données envoyées dans le serial avec “Serial.readString()” et j’enregistre l’information dans “inputString”.
Je vais avoir une séparation d’information avec les “&” avec “strtok(inputChar, “&”)” et je vais boucler pour récupérer les commandes et les valeurs.
J’ai un autre découpage pour les “:” avec “strchr(command, ‘:’)”.
Mais la partie la plus importante qui nous intéresse est la condition de triage des données reçues, j’ai des conditions de tri pour l’information mode et color.
Ma condition ici est “if(String(command) == “mode”)” donc si l’information est mode alors j’affecte la valeur reçue dans une variable ici “mode = String(valueCommand)”.
Et pour toutes nouvelles informations supplementaire je vais devoir rajouter des “else if” et affecter l’information reçue à sa variable.
Globalement c’est tout ce qu’il y a à savoir sur le code partie arduino, si je veux rajouter des données je crée une variable “String” et je crée une nouvelle condition “else if” sans oublier de modifier la valeur de condition et d’affecter la valeur reçue à la variable désirée.
Pour la création de l’application android pour commander un arduino, j’ai utilisé appinventor, cela permet de créer rapidement et sans connaissance une application.
Je ne vais pas décrire comment faire cette application sur le blog car tout est une question de bloc, je t’invite a visualiser la vidéo pour comprendre le système de code bloc.
Avec ce programme sous android je commande une girlande led rgb adressable, c’est une guirlande WS2811.
J’ai utilisé la librairie fastled sous arduino et j’ai modifié le programme pour commander en bluetooth la guirlande.
Je te donne tous les codes arduino, android et appinventor pour que tu puisse toi aussi créer ton application et commander ton arduino.
Pour installer l’apk android je t’invite à regarder la vidéo
Télécharger:
- Serial Complexe
- Guirlande led bluetooth ws2811
- Programme android et appinventor
(MD5 zip : c6a1a58a3b0f788634629b2ef164f050 )
🔗 Pour aller plus loin avec Arduino et le module Bluetooth HC-05
Si tu débutes avec le module HC-05 ou que tu veux approfondir son fonctionnement, je te recommande aussi ces deux tutoriels complémentaires :
👉 Présentation du module Bluetooth HC-05 pour Arduino
Tu découvriras les caractéristiques techniques du module, ses différents modes (maître/esclave) et ses applications dans des projets connectés.
👉 Configurer le module HC-05 pour Arduino (mode AT, câblage, code)
Un guide pratique pour initialiser ton module, modifier son nom, son code PIN, ou sa vitesse de communication, et le connecter facilement à ton Arduino.
Ces articles t’aideront à mieux comprendre et exploiter les possibilités du HC-05 dans tes projets DIY. 🔧📱
📌 FAQ : Questions fréquentes sur AppInventor, Arduino et le module HC-05
Q : Est-ce que AppInventor est gratuit ?
R : Oui, AppInventor est un outil de développement gratuit développé par le MIT. Il permet de créer des applications Android sans écrire une seule ligne de code, via un système de blocs visuels.
Q : Quel module Bluetooth utiliser avec Arduino ?
R : Le module HC-05 est le plus couramment utilisé pour une communication Bluetooth classique avec Arduino. Il est économique, simple à configurer, et compatible avec AppInventor.
Q : Est-ce que le HC-05 fonctionne avec iPhone ?
R : Non, le HC-05 utilise la norme Bluetooth SPP (Serial Port Profile), qui n’est pas prise en charge par iOS. Il fonctionne uniquement avec les appareils Android.
Q : Peut-on modifier le nom ou le code PIN du module HC-05 ?
R : Oui, en accédant au mode AT du module, on peut changer son nom, son mot de passe (PIN), et d’autres paramètres comme la vitesse de transmission. Un tutoriel est disponible ici :
👉 Configurer le module HC-05 pour Arduino
Q : Faut-il une bibliothèque spéciale pour communiquer entre Arduino et AppInventor ?
R : Non, la communication se fait via liaison série classique (Serial). Il suffit d’envoyer ou de lire des caractères depuis l’Arduino et de les traiter côté AppInventor avec les blocs Bluetooth.
N’hésitez pas à poser vos questions sur les réseaux sociaux de la chaîne instagram , twitter , facebook ,youtube ; si vous ne comprenez pas certaines parties du tutoriel n’hésitez pas , me dire ce que vous aimeriez que je crée pour en faire des vidéos tutoriel et à partager les projets que vous aimeriez créer etc…
Comme toujours allez sur la page de C’est quoi Retro et Geek pour connaître tout ce que je recherche à faire sur la chaîne.
Merci les RetroGeeker et RetroGeekeuse







