« Dis Siri, déverrouille ma porte ! » Telle est la phrase que je prononce à chaque fois que je désire entrer dans ma chambre.
En effet, il y a peu de temps, j’ai décidé d’automatiser un geste quotidien grâce à la technologie HomeKit d’Apple. C’est une API qui, sur iOs, permet de partager ses appareils connectés entre les différentes applications et utilisateurs du foyer, et qui rend Siri, l’assistant vocal, capable d’interagir avec ces objets. Pour l’utiliser, rien de plus simple : il suffit d’acheter un appareil compatible, donc forcément très onéreux. J’ai donc opté pour construire le système manuellement.
Le système est basé sur un Raspberry Pi 2, connecté par ethernet à un routeur, de manière à récupérer les informations homekit. Dessus tourne un bridge node.js qui récupère les informations émises par L’API d’Apple. Lors de la commande d’ouverture ou de fermeture, le raspberry exécute un script Python qui fait changer la valeur d’un flux sur Adafruit IO, un service MQTT. Le Raspberry Pi est donc le récepteur des commandes de l’API.
Pour pouvoir utiliser la serrure, un électroaimant de porte est connecté, via des relais, à un module esp8266, lui-même connecté à Internet en Wifi. Lorsque le module détecte un changement de valeur du flux mqtt, provoqué par le raspberry pi, il ouvre ou ferme les relais, provoquant ainsi le verrouillage ou le déverrouillage de la porte.
L’intérêt d’utiliser un esp8266 et un raspberry pi, au lieu de connecter directement les relais aux broches gpio du raspberry pi, réside dans le fait que je n’aie pas de prise RJ45 dans ma chambre, et pas de dongle wifi pour mon raspberry. Il est donc connecté à la box dans une autre pièce et y agit comme un serveur, tournant 24h/24. Le esp8266, quant à lui, est équipé du wifi, ce qui me permet de le placer dans ma chambre pour sécuriser la porte !