PiCatchU

image principale PiCatchU

Difficulté:

Système de Surveillance piloté par un Raspberry Pi


PiCatchU, prononcez Pi-Catch-You, “You” désignant les potentiels voleurs, est un petit système de pilotage de caméras de surveillance.
J’ai eu l’idée de ce petit bricolage après le passage de 2 démarcheurs d’une société de télésurveillance me proposant de réinstaller l’intégralité de mon équipement existant de télésurveillance pour la modique somme de 1300€ pour au final l’ajout d’une caméra. Donc, j’ai conservé mon système actuel qui fonctionne et j’ai ajouté des petites caméras que je gère moi-même.


Voici les spécifications:
L’appui sur ON de la télécommande déclenche une temporisation de 20 secondes au bout de laquelle le système de détection de mouvement des caméras se met en fonction.
Si le système de détection est en fonction, l’appui sur OFF l’arrête.
Si pendant les 20 secondes de temporisation, le bouton OFF de la télécommande est utilisé, le système de détection ne se met pas en fonction.
La mise en fonction du système de détection consiste:
– à envoyer une commande URL aux caméras pour les mettre en mode détection de mouvement
– à scruter régulièrement par SSH le contenu de 2 répertoires sur le NAS pour détecter la présence de nouveaux fichiers signes de détection par les caméras.
Que le système soit en mode détection ou non, le programme envoie quotidiennement un SMS de « vie » à mon numéro de téléphone via l’API SMS Web Free.
En cas de détection de mouvement par une caméra, celle-ci envoie un mail à mon adresse contenant 6 images autour de la détection. Parallèlement elle enregistre une vidéo et des photos sur un répertoire dédié du NAS.
En mode détection de mouvement, le programme scrute le contenu des répertoires du NAS où les caméras stockent leurs fichiers et s’il détecte que le nombre de fichiers a augmenté, il envoie un SMS de « détection » à mon numéro de téléphone via l’API SMS Web Free.
Cas de panne:
Si le Raspberry Pi tombe en panne ou n’est plus alimenté, les caméras fonctionnent toujours et peuvent envoyer les mails et stocker des photos et vidéos.

Matériel :

Budget : Non défini

  • Le système se compose de:– un Raspberry Pi 2 avec une clé USB Wifi et une alimentation 5V – 50€ environ– un récepteur 433Mhz avec 2 télécommandes (1 pour moi et une pour ma chère épouse) – 30€
  • http://www.amazon.fr/Canal-Mini-T%C3%A9l%C3%A9commande-commutateur-%C3%89metteur/dp/B00EAW0400/ref=sr_1_fkmr3_2?ie=UTF8&qid=1441361299&sr=8-2-fkmr3&keywords=commutateur+telecommande+433+5v– des caméras IP Dlink DCS-933L (compatibles MyDlink pour leur service de surveillance intégré) 50€ par caméra environ.– un NAS (Netgear ReadyNas DUO dans mon cas – Pris Non Inclus)– une boboxe internet (Freebox dans mon cas – Prix non inclus)– un smartphone (Prix non inclus)

Etape 1 : Installation du système Rapbian


La première étape consiste à installer un Système Linux Raspbian, par exemple Jessie, sur un Raspberry Pi 2.
Télechergez Jessie sur le sur officiel de Raspberry : https://www.raspberrypi.org/downloads/raspbian/
Suivez le Tuto d’installation de l’image mémoire sur une carte Micro SD (à partir de Windows par exemple) : https://www.raspberrypi.org/documentation/installation/installing-images/windows.md
Après une petite configuration lors de la première installation, il est plus simple de passer le clavier en version française AZERTY. Vous pouvez suivre le tuto suivant :
http://www.framboise314.fr/la-framboise314-speak-french-un-clavier-azerty-pour-le-raspberry-pi/

Il est conseillé d’attribuer une adresse IP fixe au Raspberry Pi pour pouvoir le contacter par la suite par SSH via Mobaxterm par exemple. Je préfère attribuer une adresse IP fixe depuis la Freebox pour garder la configuration réseau par défaut du Raspberry Pi (client DHCP), car … il n’y a rien à faire côté Raspberry !
Il suffit de connaitre l’adresse MAC du Wifi du Raspberry. Pour ce, tapez ifconfig dans un terminal du Raspberry Pi :
>ifconfig
et notez la valeur de HWaddr sur la ligne de wlan0. Par exemple 00:0f:60:03:9d:f2 dans le cas suivant :
wlan0 Link encap:Ethernet HWaddr 00:0f:60:03:9d:f2

Coté serveur DHCP de la freebox attribuez une adresse fixe exemple 192.168.0.19 à l’adrese MAC notée pour la clé Wif

Testez la connexion SSH au Raspberry Pi via Mobaxterm (depuis un PC windows par exemple) :
http://mobaxterm.mobatek.net/download-home-edition.html

Etape 2 : Installer le package python WGET

Le programme Python créé par votre serviteur nécessite le package WGET pour réaliser des commandes URL, aux caméras mais aussi à Free pour l’envoi de SMS.
– Depuis le Raspberry Pi, via l’explorateur internet, téléchargez le package Wget à partir de cette adresse : https://pypi.python.org/pypi/wget ou alors directement en cliquant ici : https://pypi.python.org/packages/source/w/wget/wget-3.2.zip

– Dans un terminal du Raspberry, décompressez le fichier wget-3.2.zip :
>unzip wget-3.2.zip

– Dans le sous-répertoire wget-3.2 tapez:
>sudo python setup.py install

Etape 3 : Installer le logiciel PiCatchU.py comme un service

Depuis le site GitHub: https://github.com/damiengdl/PiCatchU téléchargez :
– PyCatchU.py : le programme python de pilotage du système de surveillance
– picatchu : le fichier nécessaire à l’installation du service au démarrage

Editez le fichier PyCatchU.py et indiquez les adresses IP des caméras, du NAS et vos différents users et mots de passe:
user = ‘user des caméras’ (j’ai mis le même user et mot de passe aux caméras)
password = ‘mot de passe des caméras’
user_chez_free = ‘identifiant chez free’ (voir l’étape 5 :Activation du service SMS chez Free)
pasword_sms_chez_free = ‘mot de passe du service SMS chez Free’
addressCam = [‘Unused’,’IP Caméra 1′, ‘IP Caméra 2’]
addressNAS = ‘Adresse IP du NAS’

Copiez le fichier dans /usr/bin:
>sudo cp PiCatchU.py /usr/bin

Puis activez le programme comme un service:
>sudo cp pucatchu /etc/init.d
>cd /etc/init.d
>chmod 755 /etc/init.d/picatchu
>update-rc.d picatchu defaults

Pour plus de détails sur l’installation d’un service, si nécessaire, consultez le tuto suivant:
http://www.pihomeserver.fr/2013/05/27/raspberry-pi-home-server-lancer-un-programme-automatiquement-au-demarrage/

Le Soft est Prêt !

Etape 4 : Activer le service de notification par SMS chez Free


Grâce à cette étape, le PiCatchU pourra vous envoyer des SMS sur détection ou juste pour vous dire qu’il est toujours vivant.
Cette étape consiste à vous identifier sur votre interface FreeMobile : https://mobile.free.fr/moncompte/
Le plus dur dans cette étape consiste à retrouver son user et son mot de passe FreeMobile mais là je ne peux rien pour vous 😉

Dans les options, d’activer la notification par SMS. C’est gratuit !
Notez le mot de passe fourni par Free (partie entourée sur l’image).
Le user Free est simplement l’identifiant de votre compte FreeMobile.

Pour plus de détails sur l’activation de la notification pas SMS on peut se référer au Tuto suivant :
http://www.freenews.fr/freenews-edition-nationale-299/free-mobile-170/nouvelle-option-notifications-par-sms-chez-free-mobile-14817

Les autres opérateurs proposent sans doute des services équivalents mais je n’ai pas exploré le sujet.

Etape 5 : Branchement du récepteur 433Mhz

Une idée intéressante du PiCatchU est d’intégrer le récepteur 433Hz dans le boitier du Raspberry Pi.
J’ai choisi un récepteur en 5V pour pouvoir l’alimenter avec les bornes du GPIO.

La puissance en 5V du GPIO étant assez faible, le récepteur 433Mhz est un peu “mou du genou” : il faut être relativement proche (3 – 4 mètres) ou n’être séparé que d’une porte pour que le récepteur capte la télécommande. Du coup j’ai branché les 2 broches 5V à l’entrée du récepteur. Ça a l’air d’être un peu mieux mais dans mon prochain prototype, j’alimenterai directement le récepteur 433Mhz avec une alimentation 5V, comme me l’a conseillé le constructeur du récepteur.

La synchro entre les télécommandes et le récepteur est assez touchy mais on finit par y arriver :
Pour synchroniser le bouton ON de la télécommande, appuyer 2 secondes sur le petit bouton du récepteur (entouré en vert sur la deuxième image), une LED clignote puis appuyez sur le bouton ON de la télécommande, la LED cesse de clignoter.
C’est le même procédé pour le bouton OFF.
Et il faut répéter le processus pour la deuxième télécommande.

La documentation peut être trouvée ici :
http://www.safaridrives.co.uk/manuals/DC3-5V-1CH.doc

J’ai également prévu une diode pour faire joli mais surtout pour indiquer que le système est en mode détection.
A l’appui sur le bouton ON de la télécommande, la LED clignote pendant 20 secondes avant de contacter les caméras pour vous laisser le temps de sortir de chez vous.

Etape 6 : Installer le service SSH sur le NAS


Cette étape dépend de votre type de NAS. Certains pourront déjà disposer d’un service SSH intégré. Auquel cas vous pourrez passer cette étape. Dans mon cas, il a fallu installer ce service pour permettre au Raspberry Pi d’y accéder.

Sur le NAS Netgear ReadyNas Duo, pour installer le service SSH procédez comme suit.
Téléchargez le add-on EnableRootSSH à cette adresse http://www.readynas.com/?p=4203
Récupérez le fichier EnableRootSSH_1.0.bin corespondant à votre hardware.
Attention, ceci peut constituer une faille sur votre NAS car il donne accès au compte root avec le mot de passe du compte admin.
Veillez à ce que le NAS ne soit pas directement visible de l’extérieur de votre équipement informatique.
Par ailleurs, notez que votre serviteur décline toute responsabilité en cas de hack de votre NAS.
Pour l’installer l’add-on, ouvrir l’onglet de l’interface HTML présentée dans l’image et cliquez sur le bouton entouré en vert.
Chargez EnableRotSSH.bin pour l’installer.

L’accès au NAS en SSH pourra se faire via Mobaxterm avec les identifiants : root/mode de passe du user Admin.

Etape 7 : Permettre l’accès SSH au NAS depuis le Raspberry Pi

Pour permettre l’accès au NAS, il faut générer une clé publique sur le Raspberry Pi et la copier sur le NAS.
Génération de la clé publique sur le Raspberry Pi :
>sudo ssh-keygen -t dsa

Cela génère des fichiers dans les répertoires sous /root
Attention, si vous essayez d’aller y jeter un œil, vous aurez du mal car il faut être root.
Donc dans un premier temps copiez le fichier à un endroit simple d’accès sur le Raspberry par exemple comme ceci:
> sudo cp /root/.ssh/id_dsa.pub /home/pi
Vous récupérez le fichier id_dsa.pub dans votre home directory /home/pi
Affichez le fichier:
>cat id_dsa.pub
Vous obtenez la clé publique du root. Quelque chose de ce type sur 4 ou 5 lignes:
ssh-dss bla bla bla
bla bla bla
bla bla bla == root@hostname

Connectez vous en SSH sur le NAS
Copiez ce texte dans le fichier /root/.ssh/authorized_keys sur le NAS.

Etape 8 : Configuration FTP des Caméras

Là encore, la procédure dépendra du type de vos caméras. Pour ma part, j’ai utilisé des caméras D-Link DCS-933L.
Il est nécessaire de les configurer pour que les images et vidéos soient copiées par FTP sur des répertoires du NAS.

Sur le NAS, créez 2 répertoires :
/Partage/Cam1
/Partage/Cam2
Configurez le NAS pour autoriser le flux FTP vers le répertoire /Partage comme l’indique la copie d’écran du NAS.

Il est présupposé que les caméras sont bien installées avec l’utilisation du service MyDlink. Tout ceci est bien précisé dans la documentation d’installation des caméras.
Comme pour le Raspberry Pi, laissez les caméras en mode DHCP client et attribuez une adresse IP fixe à chaque caméra du côté serveur DHCP de la Freebox.

Sur les Caméras, via l’interface HTML, configurez le FTP comme il est indiqué sur la copie d’écran. Cette page permet de tester et de mettre au point le flux FTP des caméras vers le NAS.
Vous devez renseigner :
– le User/Mot de passe autorisé à faire du FTP, les répertoires cibles du FTP,
– le mode de protocole FTP (passif)- activer l’envoi de photos et de vidéos sur détection de mouvement et sonores.
Vérifier que la caméra 1 copie ses fichiers sur /Partage/Cam1 et que la 2 copie ses fichiers dans /Partage/Cam2.

Etape 9 : Dernières étapes facultatives

Le Raspberry Pi, un fois en opération n’aura pas besoin de son environnement graphique. Vous pourrez le désactiver via le programme de configuration:
>sudo raspi-config
puis sélectionnez “Boot Options” puis “B1 Console”

De même, il n’est pas nécessaire d’overclocker à donf le Raspberry Pi. La fréquence minimale suffit.
Donc sous raspi-config selectionnez “Overclock” et “None”.
Cela devrait placer le Raspberry à 700 Mhz.

Etape 10 : PiCatchU – Attaque éclair !

On peut maintenant retirer l’écran, le clavier et la souris du Raspberry.
Un petit reboot (à la prise) et notre PiCatchU est prêt !
Pour le contacter si besoin, utilisez MobaXterm pour ouvrir une session SSH et revenir le configurer.

Si vous sortez de chez vous, un petit appui sur le bouton ON de la télécommande !
Le PiCatchU vous contactera par SMS en cas de détection. Il vous contactera également tous les jours à 15h07 pour vous signaler qu’il fonctionne bien. Pourquoi 15h07 ? Et pourquoi pas ? 😉

En cas de SMS, vous pourrez aller lire vos mails sur votre smartphone préféré pour vérifier la prise de photos.
Si vous voulez être rassuré également, l’appli MyDlink permettra de voir la vidéo en direct toujours depuis votre smartphone.

What’s next ?
Je souhaiterais maintenant me passer de ma télécommande ! C’est à dire récupérer le signal de mise en fonction et d’arrêt de mon système d’alarme pour activer ou désactiver mon PiCatchU. A suivre donc…

Sources :

https://www.raspberrypi.org/, http://www.framboise314.fr/, http://www.pihomeserver.fr/, http://www.freenews.fr/, http://www.readynas.com/, http://mobaxterm.mobatek.net/


Merci pour le partage et effectivement le Raspberry Pi permet de belles économies quand on bidouille un peu 🙂
J'aime le nom Piiiiii Catch UUUUUUUUUUUUUU, souriez vous êtes filmé !

Merci Ipxav pour ton commentaire très sympa !
J'ai cherché un nom pour mon montage et j'ai été inspiré en cherchant dans les jouets de mes enfants 😉
A+

T'as cherché dans mes jouets? :p

Je suis tombé sur tout un tas de cartes Pokemon Ex 😉
Elle sont pas à toi ? 😉

Ces tutoriels devraient vous plaire

vignette Fabriquer une lampe à lave
Fabriquer une lampe à lave
vignette Écran Tactile et Raspberry Pi
Écran Tactile et Raspberry Pi
vignette Connecter un  écran LCD en I2C
Connecter un écran LCD en I2C
avaatar Damien Gautier de Lahaut

Damien Gautier de Lahaut

Suivre

Vues: 1670
Mis en favoris: 1

Découvrez d'autres tutoriels de

Damien Gautier de Lahaut

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers