L’objectif de ce premier essai est de commander un store motorisé par le biais d’un arduino commandé en bluetooth d’un smartphone android.

L’objectif

Le moteur du store est relié à 4 fils (voir l’article de Fanch ici) :

  • un fil jaune/ vert de terre
  • un fil bleu de neutre
  • un fil noir pour un des sens de rotation
  • un fil marron pour l’autre sens

Le moteur contient des fins de course, on n’a donc pas besoin de les gérer.

L’objectif est donc de commander deux relais par l’intermédiaire d’un arduino équipé de bluetooth. Un relais sera relié au fil noir, l’autre au fil marron.

Prototypes

J’utilise deux relais « solid state » G3NA-220B (fiche technique ici, en pdf). Ils sont un peu surdimensionnés mais utiles en attendant la réception d’autres relais.

prototype n°1 : 2 lampes par liaison série

Commande de deux lampes par arduino en liaison série

Je n’ai pas respecté les codes couleur… A revoir pour la version définitive !

Ce sketch (test-fanch-serie.ino) allume la lampe « Montée » lorsque je tape 0 dans la console série. SI je tape 1, c’est la lampe descente qui s’allume.

Ajout d’un module bluetooth

Paramétrage du module (HC-06) selon les modalités décrites dans cet article. Attention n°1 le sketch doit être changé pour que BTSerie.begin(9600);   et non 57600 baud puisqu’un module neuf est paramétré par défaut à 9600 bauds.

Pour une raison que j’ignore, le sketch ne répondait à aucune autre instruction que AT (il répondait OK. J’ai donc modifié le sketch pour envoyer les instructions au HC-06 directement dans le setup…

J’ai donc modifié le sketch pour que le setup fasse les réglages suivants en direct, sans que j’ai à saisir des choses dans la console série.

  • Demande le N° de version
  • donne le nom store au module HC-06
  • donne la vitesse 57600 baud au HC-06
BTSerie.print("AT+VERSION"); 
delay(1000); 
BTSerie.print("AT+NAMEstore"); 
delay(1000);
BTSerie.print("AT+BAUD7"); 
delay(1000);

La console série affiche alors OKlinvorV1.8OKsetnameOK57600, donc les instructions ont été prises en compte.

Le sketch correspondant est celui-ci : BlueTooth-AT-commands-2016-05-22.ino

J’éteinds l’arduino. Je le redémarre. Le module ne communique maintenant plus qu’à 57600 baud avec l’arduino.

Proto n°2 : Interaction avec une appli Android

J’ajoute d’abord le module bluetooth HC-06 paramétré précédemment.

Commande de deux lampes par arduino Uno en bluetooth (HC-06)

Commande de deux lampes par arduino Uno en bluetooth (HC-06)

Je vais utiliser l’application android JoystickBluetooth Commander (que j’utilise déjà dans le NoRobo – cf cet article).

I faut que :

  • appui sur bouton 1 = montée pendant 3 secondes
  • appui sur bouton 2 = descente pendant 3 secondes
  • un deuxième appui sur l’un des deux boutons annule l’ordre
  • si bouton 1 allumé, on ne peut pas simultanément descendre
  • si bouton 2 allumé, on ne peut pas simultanément monter

en pseudocode, ça veut dire ce qui suit :

bool up = false;            
bool down = false;

Si up est true ou down est true (il faut bouger le store)

   si up est true ET down est true 
     on a un big problème, le moteur va devenir fou
   sinon
     allumer ou éteindre selon la valeur de up ou de down

Le sketch (test-fanch-BT-1.ino) permet de réaliser ça avec l’application Joystick Bluetooth commander connectée au module bluetooth « store » réglé à une vitesse de 57600 bauds.

Et voilà le résultat :

l'écran du smartphone android

l’écran du smartphone android

Le résultat : la lampe "descente" est allumée

Le résultat : la lampe « descente » est allumée

Ca fonctionne correctement car il est effectivement impossible d’allumer les deux lampes à la fois (ce qui casserait le moteur).

Maintenant, il n’y a plus qu’à tester in situ !

Print Friendly, PDF & Email
0 0 votes
Évaluation de l'article
2
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x