:::: MENU ::::

TIP : Activer/Désactiver le point d’accès WiFi via un bouton

Dans le cadre de certains projets il est intéressant de pouvoir exécuter une action sur notre Raspberry via un simple bouton poussoir. Un exemple avec un point d’accès WiFi qu’on ne souhaiterai rendre accessible qu’à la demande pour collecter des données ou effectuer une opération d’administration sur un Raspberry « autonome ». On va voir rapidement avec un petit script Python que l’on peut effectuer ce genre de chose. Dans cet exemple mon besoin est de pouvoir activer uniquement mon point d’accès WiFi quand je souhaite collecter des données sur mon installation Raspberry.

Création du script

Sur une distribution Raspbian (Lite ou non) les outils Python sont déjà installés. On peut donc passer directement à la création du script.

A l’emplacement de votre choix, créer un nouveau fichier .py, dans mon cas  /home/pi/WiFiButton.py.

Ce script va vérifier l’état du GPIO18. Si un contact est fait entre le GPIO18 et la borne GROUND alors on vérifie l’état du daemon  hostapd. Si l’état running  est renvoyé par la commande alors on stop le service, sinon on le start.

Une LED verte (sur le GPIO24) s’allume également à la suite de la commande start et s’éteint si c’est une commande stop. Ne pas oublier la résistance dans le montage pour la LED (ici 100 ohms).

Création du Daemon

Ce script doit « boucler » en permanence pour vérifier l’état de notre bouton. On va donc le transformer en daemon pour qu’il soit initié au démarrage et fonctionne en arrière plan.

Ajouter les droits d’exécution au script :

Supprimer le démarrage automatique du daemon hostapd au boot afin que le fonctionnement soit uniquement manuel :

On crée un nouveau service :

On change les droits du fichier de service :

Enfin on recharge l’ensemble des daemons, on active le démarrage de notre nouveau service au démarrage et on lance le service.

A propos de l'auteur :

Manu

Jeune diplômé en informatique de l'eXia.CESI, et passionné par le monde informatique et ses applications dans la vie quotidienne. Chez moi sont hébergées deux RPi, l'une dédié multimédia, l'autre centre domotique. J'ai également conçu une solution de monitoring de chaufferie collective où notre chère carte fruité est le point central.


2 Comments

  • Avatar Répondre Ter |

    Bonjour.
    je suis assez novice en raspberry, mais ca va, je penses quand même comprendre un peu…
    je viens de suivre votre tuto sur le bouton pour le wifi, je l’ai fait chez moi, mais j’ai aucune réaction d’activation/désactivation du wifi de la raspberry. je n’ai juste pas désactivé d’office au démarrage de la pi.
    vous êtes le seul tuto que j’ai trouvé sur le sujet.
    je précise que je suis sur une raspberry b, mais le gpio est le même pour la première partie.
    que ce soit bien clair aussi, c’est bien un « bouton poussoir » que vous utilisez…

    • Manu Répondre Manu |

      Bonjour,

      J’utilise effectivement un bouton poussoir, qui est fermé uniquement quand on reste appuyé dessus. Il n’a qu’une seule position « stable », ouverte.
      Le tuto ayant deux ans, il est possible que des modifications sur les versions de Raspbian plus récentes empêchent son bon fonctionnement.
      Que renvoi la commande sudo systemctl status WiFiButton.service ?

Laissez un commentaire