Ce projet détaille la réalisation d’un mini système d’alarme à l’aide d’un Mac équipé d’une webcam.

Étant actuellement en résidence universitaire, je tiens à être certain que personne ne peut accéder à ma chambre pendant mon absence sans autorisation. Pour cela, j’ai mis en place un système de surveillance sur mon MacBook. Le principe est le suivant :

Pendant mon absence, la webcam est orientée vers l’entrée de la chambre, un logiciel tourne en arrière-plan et est programmé pour enregistrer une vidéo à chaque détection de mouvement. Dans le même temps, un script Shell tourne en boucle et vérifie le nombre de fichiers présents dans un répertoire donné. Si ce nombre de fichiers change, cela signifie qu’un mouvement a été détecté. À ce moment, le script envoie une notification push sur mon iPhone, puis un fichier son est exécuté afin de prévenir l’individu qu’il n’a pas le droit d’entrer et que j’en ai été informé.

Evocam

Le logiciel de détéction vidéo que j’ai utilisé est EvoCam. Il est paramétré pour enregistrer une vidéo à chaque mouvement puis prononcer une phrase à l’aide de voiceOver (synthèse vocale sur Mac).

Le Script shell

#!/bin/bash
echo "Start"
sleep 15    #Donne 15 secondes pour quitter la chambre
i=0
nbfichier=`ls  | wc -l`     #Compte le nombre de fichier dans le répertoire
open -a /Applications/EvoCam.app    #Ouvre EvoCam
while :    #Boucle infinie
do
  echo "-----------------";
  echo $i;
  let i++;
  if [ "`ls  | wc -l`" != "$nbfichier" ]   #Si le nombre de fichiers actuel et différent du nombre de fichiers précédent, alors exécuter l'alarme
    then
    echo "New alarm !!!"
    curl -k https://prowl.weks.net/publicapi/add -F apikey=YOUR_API_KEY -F application="Alarme" -F event="" -F priority="1" -F description="Quelqu'un est rentré dans la chambre"          #Envoi de la notification Push iPhone avec Prowl
    sleep 4    #Attente de 4 secondes
    open -a /Applications/vlc.app /Users/clement/Temps/Camera/aswer_the_phone.aiff     #Ouverture du fichier son avec VLC
  fi
  nbfichier=`ls  | wc -l`;
  echo "Nombre de fichier : ";
  echo $nbfichier;
  sleep 2
done

Remarque : n’oubliez pas de renseigner votre API_Key pour l’utilisation de Prowl (pour plus d’information, consulter ce post)

Pour lancer le système il suffit d’exécuter le script dans le bon répertoire (en ayant pris soin de rendre le fichier exécutable). Ensuite vous avez 15 secondes pour quitter la chambre.