commander des relais 220V avec arduino Nano et bluetooth

commander des relais 220V avec arduino Nano et bluetooth

Commander deux relais 220 V à partir d’un arduino Nano, avec un téléphone android connecté en bluetooth : c’est possible pour moins de 10 €. Voici le tutoriel complet.

Cet article est l’aboutissement d’un travail d’essais et recherches relatés dans des articles précédents :

Maintenant je fais la synthèse pour une réutilisation dans d’autres configurations.

Avant toute chose, RAPPEL : on travaille avec du 220V et les risques sont réels !

Attention Danger électrique

Commander deux relais 220V avec un arduino Nano

Le schéma de connexions :

relais arduino 5V - 220V lampes

Les photos du montage :

J’ai enfermé toutes les connexions 220 V dans une boîte en plastique. L’arduino (puis le module bluetooth) sont à l’extérieur de la boîte.

Le montage sécurisé dans une boîte

Photo du premier essai :

J’ai préféré brancher l’arduino sur une alimentation USB spécifique (pas mon ordinateur) et je me suis installée sur la terrasse. Noter que la boîte en plastique sécurise bien l’installation 220V.

Relais 220V Essai sécurisé

Le sketch arduino :

test-fanch-relais-new.ino, un sketch qui allume une lampe lorsque le signal envoyé par l’arduino est LOW.

Commander par bluetooth et smartphone Android

Le schéma de montage (côté faible tension – le cablage haute tension n’est pas modifié) est le suivant :

Schéma arduino Nano - relais 220V et bluetooth HC-05

Quant au sketch, c’est celui que j’ai utilisé précédemment avec deux relais plus gros, mais il y a une différence essentielle : l’allumage est réalisé lorsque l’arduino envoie un signal LOW et non pas HIGH comme avec les autres relais.

Notre nouvel algorithme est donc légèrement différent :

bool up = true;          // pas d'ordre de montée
bool down = true;        // pas d'ordre de descente

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

   si up est false ET down est false 
     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 qui fonctionne est celui ci : Relais-BT-V1-2016-06-05.ino

Le résultat :

Lorsque j’appuie sur le bouton « UP » de mon smartphone,

Le bouton "HAUT" est appuyé

la lampe « UP » s’allume !

La lampe "UP" est allumée

Et si j’allume les deux boutons à la fois, il ne se passe rien, tout comme s’ils sont tous deux éteints. Tout fonctionne donc correctement.

Et maintenant ?

En cas d’utilisation d’un autre modèle de relais, bien vérifier si c’est un signal LOW ou HIGH qui génère l’allumage.

Pour une utilisation définitive, il faudra réaliser un boîtier plus compact et plus sécurisé. On pourra s’inspirer des plans suivants :

On en profitera pour admirer cette belle boîte qui permet de transporter un arduino Uno et un breadboard sur 3dhubs.

Tout est prêt maintenant pour que Fanch puisse mettre son store chez lui en tant que prototype !

Commander un arduino avec une application android

Commander un arduino avec une application android

Commander un arduino avec l’application Blueterm

J’ai fait mes premiers essais avec cette application car j’avais déjà eu l’occasion de la tester sur un arduino et j’étais certaine qu’elle fonctionnerait ici.

L’application Blueterm (disponible ici pour android) permet d’envoyer des caractères un à un en connexion série bluetooth.

Le sketch complet est disponible ici, sur GitHub. Voici quelques explications sur son fonctionnement.

Utiliser la librairie SoftwareSerial.h

#include <SoftwareSerial.h>  demande à l’arduino d’utiliser la librairie SoftwareSerial.h. Cette librairie est très utile car elle permet d’avoir plusieurs liaisons série entre l’arduino et divers appareils.

Ensuite, nous déclarons deux connexions séries distinctes :

Entre le module bluetooth et l’arduino :

SoftwareSerial AlSerial(2, 3); déclare une liaison série qui se fait via les ports 2 (correspondant à un « TX » de l’arduino) et 3 (RX de l’arduino).

AlSerial.begin(57600);  déclare que cette liaison se fera à 57 600 bauds. Evidemment, cette vitesse doit être celle à laquelle on a réglé le module bluetooth précédemment.

La variable Btate prend la valeur de ce qui est écrit dans l’application android : int Btate = AlSerial.read() ;

Si cette variable est égale à « a », la led est allumée par la commande digitalWrite(WhiteLed, HIGH);

Entre l’ordinateur et l’arduino, par USB : application android blueterm

Serial  n’est pas déclaré car c’est une liaison par défaut.

Serial.begin(57600);  déclare que cette liaison se fera à 57 600 bauds.

Serial.println(« Setup fait. »);  imprime sur la console de l’ordinateur le texte « Setup fait. »

Et ça fonctionne !

Sur mon téléphone, si je tape « a », la led s’allume et « r » l’éteint.

C’est pareil dans la console série de l’ordinateur.

Avec l’application JoyStick Bluetooth Commander

Cette application est beaucoup plus sophistiquée puisqu’elle permet d’utiliser jusqu’à 6 boutons et un joystick pour commander notre arduino.

L’application android JoystickBluetooth Commander est disponible ici, sur google Play.

Un sketch arduino d’exemple est récupérable ici. C’est ce sketch que j’ai utilisé comme base pour réaliser mon propre sketch.

Mon sketch est disponible sur GitHub ici. J’ai réglé le bouton 1 pour qu’il allume la led de l’arduino (#13) et le bouton 2 pour qu’il allume la led connectée au port 7 de l’arduino. Les données dans les champs data1 et data2 sont bidon, générées par deux fonctions intégrées au sketch. Data3 contient un message généré lorsqu’on actionne un bouton, par l’intermédiaire de la variable displayStatus .

Voici le résultat sur mon téléphone android. Je viens d’appuyer sur le bouton B2 et le champs « Data3 » indique « White LED <ON> pour m’en informer. Comme B1 et B2 sont appuyés, la led blanche branchée sur le port #7 et la led intégrée à l’arduino sont toutes deux allumées. Tout fonctionne donc parfaitement.

Ecran de l'application Bluetooth Android vers Arduino

Ca fonctionne aussi bien avec le module hc-05 qu’avec le module hc-06.

Et maintenant

Je vais pouvoir utiliser ce que j’ai appris ici pour commander un robot par mon téléphone android. Ce robot fait l’objet d’une série d’articles, dont le premier est Robot arduino – étape 0.

 

Arduino et bluetooth (HC-06 ou HC-05)

Arduino et bluetooth (HC-06 ou HC-05)

Pour beaucoup d’applications, il est utile de déconnecter l’arduino de l’ordinateur pour lui donner de la mobilité. Je veux donc pouvoir utiliser des applications android permettant de commander un montage arduino. Dans cette première partie d’une série () sur le bluetooth et arduino, j’explique comment régler les modules HC-O6 ou HC-05 (commandes AT).  (suite…)