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 :
Ç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
- Télécharger la version de MotionEyeOs qui convient sur le dépôt MotionEyeOs de GitHub.
- Extraire l’image proprement (pour moi, sur LinuxMint, c’est juste un clic droit puis ‘Extraire ici’)
- 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.
- Une fois l’image écrite, etcher indique que c’est terminé et la carte peut être retirée.
- Insérer la dans le RaspBerry Pi et démarrer (avec un écran et un clavier, plus facile la 1ère fois).
- 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.
- 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.
- 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,
pi@raspberrypi:~ $ sudo apt-get update && sudo apt-get upgrade
pi@raspberrypi:~ $ sudo apt-get install wget
pi@raspberrypi:~ $ mkdir notifications
puis
pi@raspberrypi:~ $ cd notifications/
pi@raspberrypi:~/notifications $ sudo nano notification.sh
#!/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"
pi@raspberrypi:~/notifications $ bash notification.sh
Bonjour,
je déterre un peu le sujet car j’ai un petit problème et je ne trouve pas de solution.
J’ai un RPi 3 Model B, Quad Core CPU 1.2 GHz, 1 GB RAM sur lequel j’ai installé MotionEyeOS avec 2 webcams noname.
Ce que je ne comprends pas, c’est qu’en connectant les 2 cams et en activant le wifi dans MEOS, j’arrive bien à avoir les deux images. Par contre, si je désactive le wifi mais que je branche un câble réseau, j’obtiens une caméra barrée sur les deux images.
Il me semblait pourtant avoir lu quelque part que le wifi consommait + de ressources que le RJ45 sur le RPi…
Y’aurait-il une astuce pour bénéficier des 2 cams avec RJ 45 ?
Merci d’avance.
Hello,
Commentaire qui était resté bloqué 😳
Tu as eu ta réponse ici depuis :
https://trevilly.com/videosurveillance-installation-de-motioneye-sur-debian-bullseye/#comment-5064
++
Rétroliens : Caméra de surveillance miniature – TREVILLY.COM
Rétroliens : Installation de Motion sur RaspBerry Pi3 – TREVILLY.COM
Rétroliens : TimeLapse grâce au RaspBerry Pi – TREVILLY.COM
Rétroliens : Ventilateur pour RaspBerry Pi3 – TREVILLY.COM