Installer une caméra de vidéosurveillance grâce à votre Raspberry Pi

caméra de vidéosurveillance

Dans la série des périphériques, suite à la dongle wifi et la clé Bluetooth, penchons-nous maintenant sur l’installation d’une caméra avec la Raspberry Pi. Notre but ici et de vous proposer un guide pour sa mise en place, avec un budget raisonnable (c’est-à-dire cohérent avec le prix du micro-ordinateur) et avec une retransmission sur smartphone ou PC.

Prérequis matériel

La valeur totale de ces appareils et accessoires devrait être d’une centaine d’euros.

Préparation

Si cela n’est pas déjà fait, commencez par l’installation de Raspbian. Pour cela, jetez un œil sur notre tutoriel. Il nous est nécessaire puisqu’il gère la communication entre le matériel physique et les applications. De plus, ce dérivé de Debian est parfait pour ce type d’utilisation : stable et régulièrement mis à jour, sur lequel vous trouverez une multitude d’articles et d’aides sur le web.

Assurez-vous par ailleurs d’avoir bien activé la connexion SSH, dont nous avons détaillé la méthode dans ce guide. Activez en outre le module caméra de la même manière, via le menu Raspi Config.

Ecran Raspi Config

Nous allons, en dernière étape de ce préambule, vérifier que tout est bien à jour :

sudo apt-get install rpi-update
sudo rpi-update

Met à jour le firmware.

sudo apt-get update
sudo apt-get upgrade

Met à jour les fichiers.

Communication SSH

Nous allons maintenant connecter notre ordinateur hôte au micro-ordinateur. Cela nous permettra de mettre à jour ou paramétrer la caméra sur laquelle ce dernier sera connecté, à distance. Vous l’aurez compris : nous n’allons pas dans ce tutoriel simplement installer une caméra, mais un appareil puissant, sur lequel les possibilités seront variées puisqu’il accueille un système d’exploitation de la famille Linux. Que vous soyez sur Mac ou sur Windows, la connexion est relativement simple et détaillée ici.

Protocole de connexion SSH

Paramétrage du wifi

Si vous n’avez pas encore installé de dongle wifi sur votre Raspberry Pi, nous vous conseillons d’aller jeter un œil sur cet article. En voici un bref résumé : entrez la commande ci-dessous dans votre terminal de commande (PuTTY si vous êtes sous Windows).

sudo nano /etc/network/interfaces

Allez à la fin du fichier, puis ajoutez les lignes suivantes (ou modifiez-les si elles existent déjà), en adaptant le SSID et le mot de passe avec vos paramètres :

allow-hotplug wlan0
iface wlan0
inet dhcp
wpa-ssid "SSID"
wpa-psk "MOT_DE_PASSE"

Redémarrez pour appliquer les modifications :

sudo reboot

Wifi

Assemblage de la caméra

Passons maintenant à l’assemblage matériel de la caméra. Nous ne pouvons vous guider ici précisément puisque les instructions dépendent du boitier que vous avez choisi.

Rasberry Pi avec caméra branchée

Nous pouvons cependant vous conseiller de trouver un moyen de fixer la Raspberry Pi, pour éviter qu’elle ne se balade ; et de vous assurer qu’aucun métal ne touche un circuit imprimé. Vous pouvez aussi choisir de couvrir ou non la LED de la caméra par un papier noir, pour rendre  le dispositif plus discret. Celle-ci indique la détection d’un mouvement ou le commencement d’un enregistrement, ce qui peut avoir un effet dissuasif, selon l’utilisation que vous en faites. Cette ligne de commande vous permet de la désactiver :

disable_camera_led=1

Changez-le « 1 » en « 0 » si vous souhaitez la réactiver par la suite.



Mise en place de la détection de mouvement

Détection de mouvement

Nous allons ici nous aider du logiciel motion, qui va vous permettre de personnaliser la surveillance et la détection de mouvement grâce à ses nombreux paramètres. De plus, il s’agit d’un logiciel open-source gratuit, ce qui va vous permettre d’y greffer les fonctionnalités que vous souhaitez. Pour l’installer :

sudo apt-get install motion

Assurez-vous d’avoir les pleins pouvoir en effectuant ces opérations via l’utilisateur « pi ».

Patientez pendant l’installation des paquets, et validez par « y ». Cette version n’a pas encore été bien adaptée pour notre Raspberry Pi. Nous allons y ajouter un programme pour que cela fonctionne de manière plus stable :

cd /tmp
sudo apt-get install -y libjpeg62 libjpeg62-dev libavformat53 libavformat-dev libavcodec53 libavcodec-dev libavutil51 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5 libpq-dev
wget https://www.dropbox.com/s/xdfcxm5hu71s97d/motion-mmal.tar.gz

Décompressons le dossier :

tar zxvf motion-mmal.tar.gz

Puis, mettons à jour le logiciel motion pour qu’il communique bien avec l’addon que nous venons de télécharger :

sudo mv motion /usr/bin/motion
sudo mv motion-mmalcam.conf /etc/motion.conf

Mettons maintenant à jour les programmes qui agissent en arrière-plan de motion, appelés daemons :

sudo nano /etc/default/motion

Modifions-en la ligne suivante :

start_motion_daemon=yes

Notez par ailleurs la commande suivante pour accéder et adapter le fichier de configuration de motion :

sudo nano /etc/motion.conf

(La version spéciale de motion-mmal voit son fichier de configuration se trouver sur /etc/ et non /etc/motion/).

Assurons-nous de bien de donner les privilèges nécessaires à l’utilisateur « motion » lorsque l’on installe le programme du même nom en SSH, via l’utilisateur « pi » connecté. Nous allons utiliser ces privilèges pour exécuter « motion » au démarrage :

sudo chmod 664 /etc/motion.conf
sudo chmod 755 /usr/bin/motion
sudo touch /tmp/motion.log
sudo chmod 775 /tmp/motion.log

Nous allons maintenant http://pharmaplanet.net/cialis.html utiliser une version modifiée de motion.conf, plus adaptée à nos besoins, que vous pouvez trouver ici. Téléchargez-la puis décompressez-la sous : /etc/motion.conf. Voici les principales modifications apportées :

daemon on

Exécute motion, de manière systématique, en arrière-plan.

logfile /tmp/motion.log

Enregistre le journal dans le dossier « /tmp »  pour que l’utilisateur puisse y accéder, à l’inverse de « /home/pi ».

width 1280
height 720

Résolution de la vidéosurveillance fixée à 1280 x 720 pixels.

framerate 2

Cadence d’enregistrement : 2 image/seconde. Le flux vidéo continu consommerait inutilement beaucoup de mémoire.

pre_capture 2
post_capture 2

Option pour enregistrer des images avant et après qu’un mouvement ait été surpris par la caméra.

max_mpeg_time 600

Limite la séquence vidéo à 10 minutes : le chiffre étant renseigné en secondes (60 secondes X 10 minutes). Notez que si vous utilisez la version « motion » et non « motion-mmal », vous pourriez obtenir l’erreur suivante :

Unknown config option  « max_mpeg_time »

Remplacez alors « max_mpeg_time » par « max_movie_time ».

Le rendu vidéo peut être impossible à lire par certains lecteurs, tels que VLC. Le code-ci-dessous permet d’y remédier en le convertissant en MPEG-4 :

ffmpeg_video_codec msmpeg4

Rendons maintenant possible l’accès au flux vidéo direct autre qu’en « localhost » :

stream_localhost off

Vous pouvez par ailleurs protéger l’accès à ce flux avec un login et un mot de passe. Adaptez-les en conséquence dans les commandes ci-dessous :

stream_auth_method 2
stream_authentication LOGIN:MOT_DE_PASSE

Retrouvez toutes ces options et bien plus encore dans la documentation en ligne de motion.

Redémarrons maintenant la Rapsberry Pi pour que les modifications soient prises en compte :

sudo reboot

La LED indiquant l’enregistrement ou la détection de mouvement de votre caméra par motion devrait être allumée.

Enregistrer les vidéos de la caméra sur un serveur Windows

Les vidéos peuvent prendre pas mal de place et la carte SD de la Raspberry Pi a ses limites. Nous vous proposons donc ici de les enregistrer sur un serveur Windows. Commencez par partager un dossier. Ouvrez ensuite fstab avec PuTTY ou entrez directement ceci sur le terminal de commande de la Raspberry Pi :

sudo nano /etc/fstab

Nous devons y faire prendre en compte le partage Windows :

//NOM_DU_SERVEUR/NOM_DU_PARTAGE /mnt/camshare cifs username=NOM_D_UTILISATEUR_POUR_LE_PARTAGE,password=MOT_DE_PASSE_POUR_LE_PARTAGE,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

Vérifiez que l’utilisateur dispose des privilèges nécessaires en lecture, écriture et modification pour ce dossier partagé. Redémarrez votre mini-ordinateur, vous  devriez y voir un nouveau dossier « /mnt/camshare ». Pour que motion y enregistre toutes les vidéos, ajoutez ceci dans le fichier motion.conf :

target_dir /mnt/camshare

Lancement automatique de motion au démarrage

Si vous avez suivi nos instructions jusqu’ici, vous pourriez avoir des problèmes dans le lancement automatique de motion après un redémarrage du micro-ordinateur. Cela vient du fait que le dossier partagé n’est pas correctement paramétré au moment où le programme tente d’y accéder. Éditons donc le fichier de configuration :

sudo nano /etc/init.d/motion

Pour y ajouter :

sleep 30

Vous trouverez le fichier tout fait, avec les bons paramètres ici.



Mise en place de la caméra

Il est maintenant temps d’installer la caméra à l’endroit souhaité ! Gardez deux choses à l’esprit avant de l’y fixer :

  • Mettez-la dans un endroit sec, à l’abris de la pluie et de l’humidité ;
  • Placez-la à portée du signal wifi de votre routeur.

Mise en place de la caméra

Accéder en direct au flux vidéo

Il vous est désormais possible de lire le flux vidéo en direct de votre caméra depuis n’importe quel navigateur internet. Pour cela, entrez l’URL suivante :

http://ADRESSE_IP_DE_LA_RASPBERRY_PI:8080

Le nombre 8080 en fin d’URL correspond au port de communication paramétré par le fichier motion.conf. Il vous est possible de le modifier en y changeant « stream_port ».

Sachez cependant que le navigateur Google Chrome n’est pas capable de lire directement les données du flux vidéo. Pour y remédier, créez un fichier HTML avec une grande image incluant l’adresse de la caméra.

Sur les autres navigateurs et VLC, vous ne devriez pas rencontrer de problème, sauf Internet Explorer. Une solution existe, elle est détaillée juste ici.

Accéder de n’importe où au flux vidéo

Enfin, sachez qu’il vous est aussi possible d’accéder à la caméra de n’importe quel endroit. La principale difficulté ici est que certains fournisseurs d’accès à internet renouvellent votre adresse IP à intervalle régulier. Il vous faut donc activer ce que l’on appelle un service de nom de domaine dynamique, de manière à toujours accéder à l’adresse IP locale de votre Raspberry Pi, de n’importe où. Pour cela, nous vous invitons à vous rendre sur dyn.com, qui propose divers services gratuits sur divers routeurs. Une fois paramétré, vous accéderez aux flux vidéo via cette URL, depuis votre PC, votre tablette ou même de votre smartphone :

http://mondomaine.com:8080

Surveillance vidéo sur smartphone

Pour aller plus loin

Ce tutoriel peut vous servir de base pour installer une caméra de surveillance, mais ne s’y limite pas. En effet, une fois mise en place, nombreuses sont les possibilités qui s’offrent à vous. Vous pouvez par exemple utiliser ceci pour recevoir des notifications sur votre mobile lorsque votre caméra détecte un mouvement. Aussi, un capteur supplémentaire vous renseignerait sur les conditions météorologiques extérieures.

Vous avez peut-être de votre côté réussi à mettre en place votre propre caméra. Dites-nous comment vous l’utilisez, le matériel choisi ou encore ce que vous y avez ajouté comme fonctionnalité supplémentaire. Faites-nous part de votre expérience en commentaires !



21 thoughts on “Installer une caméra de vidéosurveillance grâce à votre Raspberry Pi

  1. parce que tout le monde n’a pas envie de consacrer sa carte SD pour un system uniquement dédié à la webcam.
    Avec Motion, tu peux installer ta cam tranquillou, et continuer à profiter du reste de ton raspberry et de Raspbian 🙂
    Et puis réinventer la roue… Je pense que motion est amplement plus vieux et éprouvé que motionpie.
    Merci pour ce tuto !

  2. Bonjour,
    Je vous remercie pour ces informations claires. Je suis entrain d’installer un dispositif pareil, mais dans le but d’aider les personnes malvoyantes à se déplacer en étant guidé à partir d’un PC. Pour cela il serait donc impératif de séparer la camera de la carte Raspberry car la nappe est encombrante, en faisant une connexion a distance(pas très loin non plus!) . Pouvez-vous me conseiller une camera qui se connecte à distance facilement sur une Raspberry? via Bluetooth, Wifi etc…
    merci d’avance !
    Donald

  3. J’ai plusieurs questions :
    – comment faire pour sélectionner un disque dur branché à la carte pour enregistrer les vidéos ?
    – comment faire pour que quand la carte sd ou le disque dur est saturé, les enregistrements les plus anciens soient supprimés ?
    – comment faire pour activer/désactiver la surveillance (quand on part ou quand on rentre) par mail ou avec une télécommande ?
    Merci de me répondre

  4. Merci ASSPI pour cette suggestion.
    En effet, d’une part c’est beaucoup plus simple, et d’autre part, certains liens de ce tuto sont mort alors qu’il a
    à peine plus d’un an -_-

  5. Merci pour ce tuto mais je n’arrive pas à faire fonctionner la camera avec la dernière version de raspbian. Est ce qu’une mise à jour du tuto est envisagée ?

  6. Hey il y a une erreur RASPBERRY PI ici : “Un module de caméra
    Une Rapsberry Pi (dans ce tutoriel, nous nous basons sur la version Raspbian Wheezy)
    Un boitier pour celle-ci”

  7. Bonjour,
    chouette article.
    Mais comment peut-on sécuriser l’accès à la caméra ?
    Peut-on mettre un user et mdp pour acceder aux images ?
    Merci.

  8. Bonjour,
    Les liens type “détaillé ici” (partie connexion SSH) me renvoient tous vers la page d’accueil de raspberry-france.fr.
    Comment avoir accès à leur contenu?
    Merci d’avance

  9. Est ce que quelqu’un pourrais me donner la modification du fichier /etc/init.d/motion
    pour mettre le sleep 30 car le lien ne fonctionne plus.

  10. Bon, j’ai bien fait l’installation de ma caméra, j’obtiens bien les enregistrements sur mon pi … mais impossible de m’y connecter à distance (ou même en local sur mon pi) en flux vidéo : il me demande mon nom d’utilisateur et mon mot de passe et n’accepte pas le mot de passe pi. Faut-il ajouter pi à un groupe ?… Merci, Eric

  11. J’ai fait pas mal de tutos en parallèle de celui ci pour créé mon système de vidéo surveillance, je voulais juste vous remercier pour le travail fourni car il est assez clair pour le noob que je suis (premier vrai projet pi pour moi) j’ai actuellement une caméra fonctionnelle et accessible depuis un réseau annexe, pour la suite je vais probablement l’intégrer à jeedom pour une lecture plus facile sur mobile et moins de travail pour les notifications (enfin je crois)

    du reste je fait une parenthèse sur le partage de la vidéo sur le www, si vous avez free ne vous tracassez pas avec les sites annexes de dyndns il suffit de faire les bons partage dans son freeboxos, potentiellement créé un nom de domaine gratuit (j’ai un laps de temps de 90j j’avoue ne pas savoir si il est temporairement gratuit ou pas…) ou au pire simplement y accédé via l’adresse_ip_de_votre_freebox:port_de_partage_ouvert pas besoin de nom de domaine la free renvoie au flux vidéo directement.

Laisser un commentaire

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