22 mai 2026

7. Protocole Bluetooth et tests

Commandes disponibles, scenarios de validation et diagnostic des pannes entre application, HC-05, firmware et moteur.

BluetoothTestsFirmwareDiagnostic

7. Protocole Bluetooth et tests

Ce document decrit les commandes echangees entre l'application mobile et le firmware, puis propose une methode de test progressive.

1. Principe du protocole

Le protocole est volontairement minimal. L'application envoie des caracteres ASCII via Bluetooth Classic. Le module HC-05 les transmet au port serie de l'ATmega.

Le firmware lit ensuite ces caracteres avec Serial.read() et Serial.parseInt().

2. Commandes disponibles

Commande Sens Exemple
U Monter tant que la commande est repetee appui maintenu sur MONTER
D Descendre tant que la commande est repetee appui maintenu sur DESCENDRE
S Stop moteur relachement du bouton
S1 a S10 Sauvegarder la position actuelle creation d'un profil
P1 a P10 Revenir a une position sauvegardee appui sur un profil

3. Pourquoi les commandes sont courtes

Une commande courte est plus facile a traiter sur microcontroleur :

  • peu de texte a recevoir ;
  • peu de parsing ;
  • moins de latence ;
  • comportement facile a verifier avec un terminal serie ;
  • code firmware plus simple a expliquer.

Le systeme n'a pas besoin d'envoyer un objet JSON complet pour dire "monter". Un caractere suffit.

4. Test 1 : application seule

Objectif : verifier que l'application demarre.

Etapes :

  1. Installer les dependances avec npm install.
  2. Brancher le telephone Android.
  3. Lancer npm run android.
  4. Verifier que l'ecran affiche la liste des appareils appaires ou le bouton de rafraichissement.

Si l'application ne demarre pas, regarder d'abord Metro, Gradle et les permissions Android.

5. Test 2 : Bluetooth sans moteur

Objectif : verifier que l'application se connecte au HC-05.

Etapes :

  1. Appairer le HC-05 dans les parametres Android.
  2. Ouvrir l'application.
  3. Appuyer sur Rafraichir les appareils.
  4. Selectionner le module HC-05.
  5. Verifier que l'application affiche l'etat connecte.

Si le HC-05 n'apparait pas, l'appairage Android est probablement absent ou les permissions Bluetooth ne sont pas acceptees.

6. Test 3 : reception serie

Objectif : verifier que le firmware recoit les caracteres.

Avant de brancher le moteur, il est possible d'ajouter temporairement des traces serie dans le firmware, ou de tester avec un terminal Bluetooth.

Commandes a envoyer :

U
D
S
S1
P1

Le but est de verifier que chaque commande arrive complete et dans le bon ordre.

7. Test 4 : moteur sans profil

Objectif : verifier le sens et l'arret moteur.

Etapes :

  1. Placer la banquette dans une zone sure.
  2. Appuyer brievement sur MONTER.
  3. Relacher et verifier l'arret.
  4. Appuyer brievement sur DESCENDRE.
  5. Relacher et verifier l'arret.
  6. Couper l'application pendant un mouvement pour verifier que le watchdog arrete le moteur.

Si le mouvement est inverse, corriger le cablage ou les fonctions moveUp() / moveDown().

8. Test 5 : sauvegarde et rappel de profil

Objectif : verifier le lien entre profil mobile et position embarquee.

Etapes :

  1. Placer la banquette a une position connue.
  2. Creer un profil dans l'application.
  3. Deplacer la banquette ailleurs.
  4. Appuyer sur le profil.
  5. Verifier que la banquette revient vers la position sauvegardee.

Si la banquette s'arrete trop tot ou trop tard, verifier :

  • la valeur du potentiometre ;
  • la tolerance TOLERANCE ;
  • le sens de comparaison dans le mode profil ;
  • la stabilite mecanique.

9. Diagnostic rapide

Symptome Cause probable Verification
Le HC-05 n'apparait pas pas appaire ou permission refusee parametres Android + permissions
Connexion impossible mauvais module ou HC-05 occupe redemarrer module et app
Les boutons ne font rien commande non envoyee ou firmware non flashe logs React Native + Arduino IDE
Le moteur ne s'arrete pas commande S non recue ou cablage pont en H tester watchdog et stopMotor()
Le profil ne revient pas EEPROM ou potentiometre lire analogRead(PIN_POT)
Mouvement inverse sens moteur inverse cablage ou fonctions moteur

10. Ameliorations possibles du protocole

Le protocole actuel suffit au projet, mais il peut evoluer :

  • ajouter un accuse de reception, par exemple OK:S1 ;
  • ajouter un retour de position, par exemple POS:512 ;
  • ajouter une commande de calibration ;
  • ajouter une verification de limites min/max ;
  • envoyer l'etat du firmware a l'application.

Ces evolutions doivent rester progressives. Avant d'ajouter un protocole plus riche, il faut conserver un comportement moteur fiable avec les commandes simples.