VidéoSurveillance avec RaspBerry Pi et MotionEyeOs

Vidéo Surveillance avec RaspBerry Pi utilisant MotionEyeOs le système d’exploitation pour Motion.

Installation de MotionEyeOs sur ‘RaspBerry Pi B+’ avec Module Caméra + gestion d’une Caméra IP.

Ce projet va décrire la réalisation d’une caméra de sécurité en utilisant un RaspBerry Pi B+ et un module caméra.

Le sommaire est très simple :

  1. Un peu de blabla
  2. Le tutorial

Ça devrait aller 😉

Un peu de blabla

Dans les suites de mes bidouilles de vidéosurveillance, j’ai fini par craquer … et … j’ai acheté un module caméra pour RaspBerry Pi.
Bon … OK … j’avoue, je n’ai pas pris le module officiel … qui me semblait trop cher (pour moi, pas de réel intérêt = dépense inutile) et … j’ai pris le “DIYmall Module Caméra Raspberry Pi” à 14,42 Euros sur Amazon.

Commandé le 16/10 et reçu le 19/10/2016 au soir.

J’ai d’abord installé le module sur un RaspBerry Pi B+ qu’on m’a gentiment donné (objet de récup ; Merci Karen A) car j’y avais mis ma carte micro SD contenant RaspBian avec une version de Motion efficace : Motion savait lire le flux de ma Caméra IP pour analyse complémentaire.
Mais “Pourquoi utiliser Motion en complément puisque la caméra IP est est autonome et envoie des photos sur détection de mouvement ?” me direz-vous ?
Tout simplement afin de m’envoyer un SMS d’alerte via un système d’API de free puisque je n’ai pas de forfait internet sur mon SmartPhone.
Pas bête le gars 🙂

Puis, j’ai testé kerberos.io, mais je dois être naze et je n’ai pas dû savoir y faire ; j’ai abandonné (en plus, j’ai un vrai problème avec l’anglais :-s … Peuvent pas parler Français ?!?).

Je connais Motion et je ‘gère’ un peu le sujet. MAIS, sous Jessie (dernière version en date de Debian et RaspBian), nous n’avons plus FFMPEG dans les dépôts officiels. Même si j’ai réussi à réinstaller un Motion sur un portable LinuxMint (basé sur Debian), j’ai préféré lâché l’affaire (utiliser les dépôts non officiels, je préfère éviter ; je ne suis pas assez compétents pour mesurer les risques éventuels).

(Edit du 10/12/2016 : Voyez la page Installation de Motion sur RaspBerry Pi3 puisque ça “refonctionne sans bidouillage” ; cool)

J’ai donc testé, dans la nuit du 24 au 25/10/2016, LE truc qui me tentait (en fait, y en a d’autres, mais je n’ai pas envie d’exploser toutes mes cartes SD et toutes mes nuits de sommeil … 😉 … Je bosse le jour tout de même !).
LE truc dont je viens vous parler, c’est Motion mais en tant qu’OS que Système d’Exploitation à part entière (pas ‘OS’ ; on est en France).

Et ce Motion un peu magique s’appelle MotionEyeOs

L’avantage ?

Système léger car comme cela ne nécessite pas RaspBian (ou autre GNU/Linux), le système est concentré sur le seul job à faire. Pratique pour recycler un vieux RaspBerry Pi+ forcément poussif.

L’inconvénient ?

Ce RaspBerry Pi ne sera plus multi-taches et ne fera QUE de la vidéo-surveillance.

Bon, bref, vous me connaissez, je cause, je cause et je vous fatigue (si, si, je sais, je ne suis pas dupe) …

Dans mes recherches, j’ai trouvé des trucs en anglais qui parlaient de  MotionEyeOs et expliquaient +/- l’installation.

Sauf que ça n’a pas fonctionné du premier coup ! Et quand on n’est pas informaticien et pas doué en anglais, ben … Faut adapter tout seul.

Donc, je vais, ici, me noter comment j’ai fait pour pouvoir le refaire.

Et comme ‘ce qui est fait est fait et n’est plus à faire’ … ben … si je le fais, vous n’aurez pas à le faire puisque cela sera déjà fait. Pfff … Pffff …

Heu … Toujours là ???

OK, bon, cette fois, on y va !

Tutorial d’installation de MotionEyeOs sur RaspBerry

  1. Télécharger la version de MotionEyeOs qui convient sur le dépôt MotionEyeOs de GitHub.
  2. Extraire l’image proprement (pour moi, sur LinuxMint, c’est juste un clic droit puis ‘Extraire ici’)
  3. Insérer la carte microSD et utiliser le programme etcher (disponible sur https://etcher.io) pour écrire très simplement l’image sur la carte SD. 
  4. Une fois l’image écrite, etcher indique que c’est terminé et la carte peut être retirée.
  5. Insérer la dans le RaspBerry Pi et démarrer (avec un écran et un clavier, plus facile la 1ère fois).
  6. Laisser bosser 3 minutes pour activation (d’où le conseil de l’écran car on visualise cette séquence de boot) … Et … Voilà !!!

Comme j’avais déjà demandé à ma FreeBox de coller l’adresse IP 192.168.0.18 à ce Raspberry (filtrage par son adresse Mac) = facile ; même pas besoin de chercher ; accès immédiat depuis FireFox.

Sinon, vous pouvez très simplement faire un ~ $ ifconfig puisque vous serez en mode console (j’ai testé, ça fonctionne).

Depuis un autre équipement, il faut juste taper l’adresse http://192.168.0.18 dans un navigateur et attendre quelques secondes.

L’accès est sans mot de passe :
utilisateur = “admin” et pas de mot de passe ; il faut valider et c’est tout.

Là, le premier truc que je fais, c’est de cliquer sur l’icône avec les 3 lignes (en haut à gauche) puis sur General Settings afin de créer un mot de passe pour le compte admin mais aussi de créer un utilisateur.

Immédiatement après cela, cliquer sur le “Apply” lancera une invit’ “This will reboot the system. Continue?“. Je vous aide ? Cliquez sur “Yes” ! (les couleurs sont celles réellement utilisées ou presque)

Après, il y a plein d’options ; presque trop (surtout que c’est de l’Anglais …).

Je vais y revenir, mais je vous décris les 2 “systèmes mis en place.

  1. Dans la version simple, j’active le Fast Network Camera dans Expert Settings afin de passer en simple streaming en haute qualitée (1280×960 avec 30 images/secondes) avec 1 seconde de latence en réseau local. De ce fait, je ne vois que l’image du module caméra.
  2. Dans la version “parano”, j’ai activé la détection de mouvement pour l’image liée au module Caméra mais aussi pour le flux vidéo de ma caméra IP. Ces 2 flux sont visibles en interne + en externe. J’avais également mis en place un système de notification SMS en cas de détection de mouvement en ajoutant un script en bash d’alerte par SMS dans motion (simple script, si je sais le faire, vous saurez le faire ; on y reviendra plus bas*) mais MotionEyeOS ne sait pas executer mon script qui contient un ‘wget’ non installé sur MotionEyeOS.

A noter que, en mode streaming simple, le flux (belle qualité mais détection désactivée) est accessible via le port 8081.

En mode “détection”, le module caméra est visible sur le port 8081 et la caméra IP sur le port 8082.

Enfin, pour accéder en mode admin depuis l’extérieur, j’ai basculé l’interface du port 80 (par défaut) sur un autre port ; du coup, j’accède, en local, à l’administration via 192.168.0.18:XXXX mais l’accès en ssh est toujours en ~ $ ssh admin@192.168.0.18 ; je confirme. (défaut pour l’extérieur, la connexion est en http et non https)

Edit du 28/10/2016 :
Bizarrement, en mode Fast Network Camera j’ai bien accès en local au panel admin ainsi que le visuel de la PiCam.
Mais, via Internet, l’accès est OK en mode admin … mais … l’image ne passe pas … alors qu’elle est (au même moment) bien visible en local.
Bizarre, bizarre. (on verra si ça change après une mise à jour)

* L’exécution du script n’est pas faisable directement dans MotionEyeOs car ce n’est pas une distribution GNU/Linux traditionnelle. Donc je ne peux pas installer ‘wget’ qui est indispensable pour envoyer un SMS grâce à l’API de FreeMobile et je ne peux pas non plus installer ‘mplayer’ pour que la notification balance un son en local.
Tant pis.
Voici tout de même la démarche car ça fonctionne dans un Motion ou un MotionEye installé sur Raspbian, alors ça peut vous servir. Personnellement, je fais exécuter ces scripts par un vieux PC portable qui tourne sous Raspbian x86 et qui analyse les flux de 3 caméras : celle du Raspberry Pi B (qui est en simple flux) + celle de ma Caméra IP + la caméra du garage (raspberry Pi Zero en vision nocturne).
Je ne vous mets qu’un seul script, mais j’en ai 3 : notification.sh ; notification2.sh et notification3.sh ; j’adapte juste le texte pour savoir de “qui” je reçois le SMS 😉

Dans Motion Notifications vous avez le Run A Command à passer sur “on” et le Command à renseigner.

Par exemple, on décide de mettre “/pi/notifications/notification.sh”.

Donc, en ssh ou en mode console, on va créer le dossier “notifications” en faisant

mkdir notifications

Puis on tape

cd notifications

pour se rendre dans ledit dossier.

Ensuite, on se fait un petit

sudo nano notification.sh

pour créer le fichier “notifications.sh” et l’ouvrir (en mode console).

Ensuite, on écrit son script. Pour moi, c’est :

#!/bin/sh

# Script pour jouer un son

mplayer /home/pi/notifications/fichier-son-voulu.mp3

# Script pour envoyer une notification SMS lors d'une détection de mouvement par 'MotionEyeOs'

wget --no-check-certificate "https://smsapi.free-mobile.fr/sendmsg?user=X&pass=X&msg=Alarme%20Salon"

Pour enregistrer, faire “Ctrl” + “x” puis “y” (ou “o”) puis “Entrée”.

Ensuite (important), appliquer un chmod +x afin de rendre votre script exécutable.

Il suffit, tout simplement, de faire :

sudo chmod +x notification.sh

(avec un espace entre “chmod” et “+x”)

Et on teste avec un (si on est toujours dans “pi@raspberrypi:~/notifications $”)

bash notification.sh

si on est ressorti, on tape le chemin complet donc :

bash /home/pi/notifications/notification.sh

En complément, je vous invite à lire l’article “VideoSurveillance sous Linux avec Motion et gestion des alertes par SMS

–> A suivre <–
Ou pas ; cette page est déjà trop longue ; désolé pour vous, Pauvre Lecteur,

Edit du 03/11/2017 :
Je viens d’aider Jean-Christophe C, un ami du Net connu sur un forum “Raspberry”, à réaliser l’intégration d’un caméra IP autonome dans motionEye sur Raspbian.
Pour être sûr = je viens de refaire la procédure sur mon Raspberry Pi3.
Chez moi, ça fonctionne … D’ailleurs, le téléphone de ma femme vient de sonner en recevant le SMS d’alerte … pas cool … il est 00h18 …
Idiot de tel ; je venais de lui dire de baisser le son !
Pour vous aider vous = je note le résumé de mes courriels nocturnes.
 
Sur son Raspbian, on commence par
pi@raspberrypi:~ $ sudo apt-get update && sudo apt-get upgrade
Pour faire la mise à jour
 
puis

pi@raspberrypi:~ $ sudo apt-get install wget
Pour installer la fonction wget
 
puis

 

pi@raspberrypi:~ $ mkdir notifications

puis

pi@raspberrypi:~ $ cd notifications/
puis
pi@raspberrypi:~/notifications $ sudo nano notification.sh 
Pour le script, il faut noter EXACTEMENT :
 
#!/bin/sh

# Script pour jouer un son

mplayer /home/pi/notifications/SF-sirene1.mp3

# Script pour envoyer une notification SMS lors d'une détection de mouvement par 'MotionEyeOs'

wget --no-check-certificate "https://smsapi.free-mobile.fr/sendmsg?user=X&pass=X&msg=Alors%20Alban%20il%20assure%20?%20"
En remplaçant user=X
par user=ton-truc-à-toi
Et en remplaçant pass=X 
par pass=ton-truc-à-toi
 
puis
pi@raspberrypi:~/notifications $ bash notification.sh 
Alors ?
Heureux ?
 
P.S. : Oui, le texte “Alors Alban il assure ?” peut être modifié ; je ne vous en voudrais pas si vous le faites 😀
 

A propos de Alban

Papa de 4 enfants étant lui même resté un enfant. Tombé par obligation dans l'informatique à 22 ans pour le boulot et s'étant "un peu" pris au jeu ... Pas un génie de l'informatique (loin de là), mais intéressé et carrément orienté Linux et entraide.

4 commentaires à propos de “VidéoSurveillance avec RaspBerry Pi et MotionEyeOs”

  1. Rétroliens : Caméra de surveillance miniature – TREVILLY.COM

  2. Rétroliens : Installation de Motion sur RaspBerry Pi3 – TREVILLY.COM

  3. Rétroliens : TimeLapse grâce au RaspBerry Pi – TREVILLY.COM

  4. Rétroliens : Ventilateur pour RaspBerry Pi3 – TREVILLY.COM

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*