Je fais partie depuis quelques temps d’un hackerspace de Limoges nommé le SmartLab. Les horaires du SmartLab sont variables et il nous fallait un moyen de nous prévenir entre nous qu’au moins un des membres était arrivé. Avec l’aide des autres membres, j’ai donc réalisé un centre de notification, le NotifCenter.

NotifCenter

Le NotifCenter, d’un point de vue fonctionnel

Notifications d’ouverture et de fermeture

A chaque fois que l’ont bascule d’un état (ouvert ou fermé) à l’autre, 4 évènements vont se produire :

  • Un e-mail est envoyé à tous les membres de la liste de notification pour signaler l’ouverture ou la fermeture du lab.
  • Un message est envoyé sur le canal IRC du lab.
  • Un message est envoyé sur le compte twitter du lab.
  • Un fichier son est joué dans le lab.

Modes debug et production

Très vite, pendant les phases de tests et de développements, des messages étaient envoyés en grand nombre sur les différentes canaux de communication. J’ai donc mis en place un mode debug dans lequel les notifications étaient envoyées uniquement sur un canal de test sur irc au lieu du canal principal, du mail et de twitter.

Gestion de l’alarme incendie

NotifCenter
Une fois ce boîtier installé, nous avons profité de sa position centrale dans le lab pour y adjoindre une alarme incendie. Par conséquent le boitier comporte également :

  • Un relai pour couper l’alimentation de l’alarme lorsque le lab est ouvert pour éviter qu’elle ne se déclenche à cause des fumées de soudure par exemple.
  • Quelle que soit la position de ce relai, nous pouvons :
    • forcer l’alimentation via un bouton de forçage;
    • couper l’alimentation via un bouton d’arrêt d’urgence.

Binouze !

Une fois les premières fonctionnalités en place, nous avons du régler le problème primordial d’un hackerspace : gérer le stock de bière !

Nous avons donc mis en place un décapsuleur sur lequel est fixé une puce RFID. À chaque fois que l’on boit une bière on passe le décapsuleur sur le boîtier, et cela décrémente le compteur de bières de 1. Un jeton RFID sert quant à lui à faire remonter le compteur de 10 unités.

Lorsque le compteur descend sous une certaine limite, un message est envoyé par mail, IRC et twitter (1 heure avant la prochaine ouverture) pour demander aux membres de ramener des bières.

Dashboard

Dashboard
Ensuite il a fallu afficher ce compteur sur un écran relié au boîtier. J’en ai profité pour réaliser un dashboard avec diverses informations :

  • La date et l’heure;
  • La météo;
  • Les indispensables gifs animés de chat (merci Pi3rrot pour l’idée 😉 );
  • Le compteur de bières sous forme de jauge;
  • Les derniers messages du bot IRC;
  • Les logs du serveur web.

BOT IRC

J’ai ensuite développé un bot pour piloter le NotifCenter depuis IRC, avec gestion des droits. On peut l’utiliser pour :

  • Lancer une notification d’ouverture ou de fermeture du lab ou bien demander l’état du lab;
  • Passer le NotifCenter en mode debug ou production (pour éviter de spammer tout le monde pendant les devs)
  • Demander ou modifier le nombre de bières en stock;
  • Jouer à la roulette russe : une commande permet de recharger l’arme ou de tirer. Lorsque l’on perd, on se fait kicker du chan avec insulte aléatoire à la capitaine Haddock à la clé. On peux également y jouer devant le dashboard en utilisant une carte RFID sur laquelle est dessiné un pistolet. Un son approprié est joué lors de la recharge, d’un clic ou d’un tir.

D’autre part, il envoie un message sur IRC dans certains cas :

  • Changement d’état du lab;
  • Modification du wiki du lab;
  • Commit sur le serveur git.

Le NotifCenter, d’un point de vue matériel

Les composants

Il s’agit d’un boîtier très simple d’apparence. Il comporte entre autres :

  • Un Raspberry Pi 2;
  • Un lecteur de carte RFID 125khz;
  • Une carte relai;
  • Une led verte pour indiquer que le lab est ouvert;
  • Une led rouge pour indiquer que le lab est fermé;
  • Un bouton vert pour ouvrir le lab;
  • Un bouton bleu pour fermer le lab;
  • Un interrupteur pour forcer l’alimentation de l’alarme incendie;
  • Un bouton d’arrêt d’urgence pour stopper l’alimentation de l’alarme incendie;

Le circuit

notifcenter

Le NotifCenter, d’un point de vue logiciel

Je cherchais une solution capable de réaliser un prototype rapidement. Et j’ai alors découvert Node-RED.

Node-RED

Node-RED est un « outil visuel de câblage de l’internet de objets ». Il est le cœur de l’architecture du NotifCenter.
Principaux nodes utilisés :

REDIS

REDIS est un « magasin de structure de données en mémoire, utilisé comme base de données, système de cache, et serveur de messages ».
RedisCommander

Tailon

Tailon est une webbapp auto-hébergée pour visualiser ou chercher dans des fichiers textes. Très simple a utiliser, elle nous a permis d’intégrer rapidement les log dans le dashboard.

tailon

Enregistrer

Le SmartLab NotifCenter ou comment se protéger de la pénurie de bières !
Étiqueté avec :                                                

6 pesnées sur “Le SmartLab NotifCenter ou comment se protéger de la pénurie de bières !

Laisser un commentaire