Dans cet article nous allons mettre en place un module d’ouverture/fermeture de porte de garage avec un système de vérification d’état.

Imaginez, vous prenez votre iDevice (iPhone, iPad ou même votre Apple Watch) et vous prononcez : « Siri, ouvre le garage » … … … et votre garage s’ouvre tel le sésame d’Ali Baba 😎 . Vous êtes au bureau et vous voulez être sûr que votre garage est bien fermé, votre iDevice vous le dira. Votre voisin vous téléphone car il veut enfin vous remettre la tondeuse à gazon qu’il vous a emprunté il y a 6 mois, et vous 😯 , vous n’êtes pas à la maison ! No Problem, vous prenez votre iDevice, et vous lui ouvrez le garage. C’est-il pas beau ça ?!

Prérequis pour ce tutoriel : Installation du Homebridge

Lorsque ce système sera monté sur ma porte de garage je ferais une vidéo, en attendant en voici une petite de l’installation sur ma planche de test :

1: Matériel nécessaire

La plupart de ces éléments vous pourrez soit les trouver chez votre magasin d’électronique préféré, soit sur internet, sur un grand site de vente aux enchères, suivez mes liens 🙂

  • Un Raspberry Pi avec Homebridge préinstallé;
  • Un module Optocoupleur Trigger High (disponible ici) avec 1, 2, 4, 8 ou 16 relais, selon l’ampleur de votre projet :). Prenez bien des Trigger High ou Low ET High, mais pas un simple Trigger Low (voir pourquoi plus loin dans l’article);
  • Deux capteurs magnétiques (disponible ici);
  • Du câble en longueur suffisante;
  • Une alimentation 5v, (en vente ici)  personnellement j’ai pris une de 5A 25W, mais une de 2A suffit amplement pour ce petit projet;
  • Une résistance de 150 Ω;
  • Une résistance de 270 Ω;
  • Deux résistances de 1 kΩ;
  • Deux résistances de 10 kΩ (les résistances sont disponibles ici);
  • Un photocoupleur SFH620A donc le schéma est le suivant (disponible ici) ;
  • Et une porte de garage motorisée évidemment;
2: Installation du plug-in Garage Door

On ne va pas réinventer la roue, on va utiliser le code déjà créé par un généreux programmeur (Pojo) qui le met à notre disposition sur le site NPMJS et GitHub.

2.1: Petites remarques

2.1.1 : Sur la page de son plug-in (source), Pojo indique que lors du démarrage du Raspberry Pi (modèle 1 je suppose), certains GPIO (General Purpose Input/Output) passent à l’état 1, ce qui peut bien poser des problèmes lors des coupures de courant, imaginez : Une coupure de courant survient dans votre habitation, lorsque le courant revient, le Raspberry Pi redémarre, et sans rien demander à personne, votre porte de garage s’ouvre… ça risque d’être très ennuyant.

Les GPIO à éviter sont les suivant :

  • GPIO0/2
  • GPIO1/3
  • GPIO4
  • GPIO7
  • GPIO8

J’avoue ne pas avoir pris le temps de tester ce qu’il en est exactement, c’est pourquoi dans un premier temps je ne vais pas les utiliser, et si plus tard je dois utiliser un de ceux-là, je documenterais plus cette partie.

2.1.2 : On va devoir créer et éditer des fichiers, voici une petite liste des commendes que nous utiliserions :

  • Ouverture ou création du fichier avec un éditeur, avec les droits « Super User » : sudo nano monfichier
  • Sauvegarde des modifications : ctrl + o
  • Sortir de l’éditeur : ctrl + x

J’utilise l’éditeur « nano » mais il y en a d’autre comme : VI, VIM, etc… alors utilisez celui que vous préférez.

OK, fini les remarques, les choses sérieuses commencent à partir d’ici.

2.2: Initialisation des connecteurs (Pin)

Pour ce T.P. nous allons donc utiliser les connecteurs suivants :

  • GPIO23 (pin 16) : pour le « DoorSwitchPin »
  • GPIO24 (pin 18) : pour le « OpenDoorSensorPin »
  • GPIO25 (pin 22) : pour le « ClosedDoorSensorPin »

« DoorSwitchPin », « ClosedDoorSensorPin » et « OpenDoorSensorPin » sont les noms des connecteurs utilisés dans le code du plug-in, on verra donc ce que c’est plus bas dans le point 2.3.

Ci-dessous, vous pouvez voir les emplacements des GPIO des Raspberry Pi 1 Model A+, Raspberry Pi 1 Model B+, Raspberry Pi 2 Model B et le Raspberry Pi 3 Model B. Notez que le Raspberry Pi de 1er génération a moins de GPIO’s  :

Afin que vos GPIO (23, 24 et 25) soient initialisés lors de chaque démarrage de votre Raspberry Pi, il faut les « exporter », et pour ce faire il faut créer un scripte dans « /etc/init.d ». Exécutez les commandes suivantes :

Entrez le bon répertoire avec : cd /etc/init.d

Créez le fichier pour le code en tapant: sudo nano garage-door-gpio

Coller dans ce fichier le code se trouvant ici : Code de Pojo adapté.

Tapez ensuite ctrl+o pour sauvegarder puis ctrl+x pour quitter l’éditeur.

J’ai adapté le code de Pojo car il lui manquait l’export du GPIO25 pour le détecteur de la porte « ouverte ».

Pour que ce scripte s’exécute lors du démarrage du Raspberri Pi, on va en faire un « Demon ». Un « Demon » est un processus qui s’exécute en tache de font, tels les « Services » sous Windows.

Pour cela, on va changer les droits sur ce fichier, tapez la commande suivante : sudo chmod 755 garage-door-gpio

Ensuite on créé un lien pour le gestionnaire des « Demon », tapez la commande : sudo update-rc.d garage-door-gpio defaults.

On va maintenant exécuter le programme avec la commande :  sudo /etc/init.d/garage-door-gpio start, suite à quoi, sur l’écran vous devriez voir s’afficher : [ ok ] Starting garage-door-gpio (via systemctl): garage-door-gpio.service.

Pour s’assurer que les GPIO sont bien exportés, tapez la commande suivante ls /sys/class/gpio/ directory , et vous devriez voir afficher : gpio23  gpio24 gpio25.

2.3: Installation du plug-in

On installe le plug-in de Pojo, avec la commande suivante : sudo npm install -g homebridge-rasppi-gpio-garagedoor

Une fois l’installation terminée, vous devriez avoir un message ressemblant à ça :

Maintenant que nous disposons d’un premier plug-in installé, il faut créer un fichier d’extension « .json » qui définit nos accessoires, ici, notre accessoire c’est notre porte de garage. Ce fichier devra s’appeler « config.json » et devra se trouver dans le répertoire ~/.homebridge/config.json.

On va donc se rendre dans ce répertoire avec la commande cd ~/.homebridge.

On s’assure que le fichier config.json n’existe pas déjà en tapant la commande  ls. S’il n’existe pas, on le créé avec : sudo nano config.json, s’il existe on l’édite avec la même commande 🙂

Ajoutez-y le code suivant : CODE;

Adaptez la valeur de la variable doorOpensInSeconds qui doit correspondre au temps (en secondes) qu’il faut pour la porte pour s’ouvrir.

Tapez ctrl+o puis ENTER pour sauvegarder vos modifications, puis ctrl+x pour quitter l’éditeur.

OK, on a bien travaillé, il est temps de tester ça.

Si votre Homebridge démarre au démarrage du Raspberry Pi (Demon), tapez la commande sudo /etc/init.d/homebridge stop pour le stopper, puis tapez la commande homebridge  pour le redémarrer.

Si tout a été installé et configuré convenablement, lorsque le Homebridge aura démarré, vous devriez voir ceci :

Le code encadré que vous voyez sur l’écran servira à installer notre accessoire dans l’application Home de notre iDevice (iPhone, iPad, etc.).

À ce point, nous pouvons conclure que le plug-in est correctement installé et configuré sur votre Raspberry PI.

Appuyer sur ctrl+c pour quitter le programme « home bridge » et passez au point suivant.

3: Finalisation et vérification du plug-in

Pour vérifier que tout fonctionne, on redémarre le Raspberry Pi avec sudo reboot now

Une fois redémarré on vérifie si homebridge a bien démarrer avec : sudo /etc/init.d/homebridge status

Si tout va bien, vous devriez voir un « Running » apparaître.

Vous avez bien travaillé, vous avez mérité une pause 🙂

4: Câblage

Dans cette partie nous allons voir comment câbler tout ça. Vu qu’un petit dessin vaut mieux qu’un long discours, ci-dessous vous trouverez un schémas représentant la concentrique à réaliser, avec un Raspberry Pi 1 (mod. B rev. 2) à gauche, et un Raspberry Pi 3 à droite :

     

OK, OK, c’est n’est pas très claire 😀 , c’est pourquoi, ci-dessous voici deux schémas bien plus claire, les composants ne sont pas exactement à la même place que sur les images ci-dessus, mais le câblage est identique :

Version sans planche d’essai :

Maintenant c’est à vous de jouer 🙂

Une fois le câblage réalisé, ajoutez votre nouvelle accessoire dans l’application Home.

N’hésitez pas à partager cet article.