L’objectif de Gladys est de nous aider au quotidien en diffusant des alertes ( nouveaux messages, rappels de rendez-vous ou de notes, réveils, etc.. ). Mais il est inutile de diffuser ces alertes si le propriétaire n’est pas là et que l’appartement est vide ! Dans ce tuto nous allons voir comment savoir si l’appartement est occupé grâce à un détecteur de mouvement.Le capteur de mouvement utilisé dans ce tutoriel peut être acheté ici pour environ 3-4$.

détecteur mouvement

Le montage

Le montage est très simple, il suffit de connecter les ports du détecteur directement au GPIOs du Raspberry Pi en suivant le schéma suivant :

Schéma montage GPIO détecteur mouvement

Vous remarquerez deux vis oranges sur le capteur :

  • La première sert à régler la sensibilité du capteur ( la valeur par défaut est 50% )
  • La deuxième sert à ajuster la durée pendant laquelle le capteur va monter à 3V en sortie quand il a détecté un mouvement. ( Par défaut, quelques secondes )

Le code Python

Pour le script je remercie l’auteur de cet article pour cet excellent script que j’ai adapté selon mes besoins. Vous pouvez télécharger le script commenté ici. Que ce passe-il dans ce script ? En fait le capteur attend qu’il y ait un mouvement. Dès qu’un mouvement est détecté, une requête est faite à un fichier PHP sur le Raspberry afin de “prévenir” qu’un mouvement a été détecté, pour que le Raspberry Pi puisse l’enregistrer.

Je vous laisse faire une petite API adapté à vos besoins, cela se fait en quelques lignes de Node.js/PHP/ce que vous voulez :)

Interprétations

Quand un mouvement est détecté, plusieurs interprétations peuvent être faites, je les ai regroupées dans un tableau :

Un mouvement est détecté

Un mouvement est détecté
Contexte/Historique Interprétation Conséquence
Nous sommes dans la journée, et le Raspberry a vu un mouvement il y a moins de 5 minutes L'utilisateur est dans son appartement, il n'est pas sorti ( ou peu longtemps ). On ne fait rien
Nous sommes dans la journée, et le dernier mouvement remonte il y a plus de 40 minutes L'utilisateur était sorti, et il vient de rentrer. On l'accueil avec un "Bienvenue Monsieur" et on lui diffuse les messages qu'il a reçu pendant son absence.
Nous sommes la nuit (ou le matin assez tôt). Le dernier mouvement remonte à moins de 8heures (ou 10 heures pour les dormeurs !) L'utilisateur était en train de dormir, et il vient de se réveiller. Suivant ses préférences : si un réveil est en cours, on coupe le réveil car l'utilisateur est debout.
Sinon on ne fait rien de particulier
Nous sommes la nuit (ou le matin assez tôt). Le dernier mouvement remonte à plus de 8heures (ou 10 heures) L'utilisateur n'a pas dormi chez lui ce soir là ( car le dernier mouvement date trop ), et il rentre chez lui. ( Il pouvait être en vacances, ou parti en week end ) On l'accueil suivant l'heure, on lui diffuse les messages qu'il a reçu en son absence.

Conclusion

Comme vous pouvez le voir, les possibilités de scénarios sont infinis ! Rien qu’en sachant si l’utilisateur est là ou pas, Gladys est capable d’interpréter ce qu’à fait l’utilisateur, et donc d’agir en conséquence.

Avec ces infos, il devient possible de désactiver les notifications quand l’utilisateur n’est pas là. Imaginons notre utilisateur a réglé son réveil à 8H, mais pour une raison x ou y, il dort chez un ami. Gladys comprend que l’utilisateur n’est pas là, et en conséquence il peut décider de ne pas lancer le réveil, car l’appartement est vide ! Idem pour tout autre notification, car diffuser quelques chose dans une pièce vide, c’est inutile ;) Autre scénario : L’utilisateur part, mais oublie de couper la musique. Au bout d’un certain temps, Gladys comprends qu’il n’y a plus personne dans l’appartement et naturellement coupe le son!

Voilà, c’est la fin du tuto n°6 ! J’espère qu’il vous a plu et qu’il vous aideras dans vos projets. N’hésitez pas à laisser un commentaire si vous avez des questions/idées/remarques/améliorations ou si juste ce tuto vous a plu !