Raspberry Pi comme caméra de surveillance HD à faible coût

Cet instructable décrit comment construire une caméra de surveillance basée sur un micro-ordinateur Raspberry Pi qui enregistre la vidéo HD lorsque quelque chose se déplace dans la zone surveillée. L'image en direct peut être visualisée à partir de n'importe quel navigateur Web, même depuis votre mobile lorsque vous êtes en déplacement.

Ce que vous obtiendrez:

  • Voir la diffusion en direct dans n'importe quel navigateur Web de n'importe où
  • Enregistrez n'importe quel mouvement dans un fichier vidéo
Habituellement, une telle came vous coûtera environ 1 000 $ US, mais avec le résultat de cette instruction, vous obtiendrez une telle came pour seulement environ 120 $ US.

Étape 1: Contexte

Avez-vous déjà entendu parler de Raspberry Pi? Il s'agit d'un micro-ordinateur à faible coût capable d'exécuter Linux et offrant des possibilités d'extension infinies. Il ne coûte qu'environ 35 $ US et ouvre des possibilités infinies de ce que vous pouvez construire avec. Le site officiel peut être trouvé à //www.raspberrypi.org/

Étape 2: Composants matériels

Nous avons besoin de matériel pour ce projet. Voici une liste des principales choses dont nous avons besoin:

  • Raspberry Pi Model B: C'est le plus grand modèle du système informatique Raspberry avec 700MHz et 512MB Ram. Il prend en charge la vidéo HD. Vous pouvez facilement le commander ici, par exemple. Coût: environ 40 $ US . Vous pouvez également utiliser le Raspberry Pi Model A qui est légèrement moins cher et consomme moins d'énergie. Stefan Knight a écrit un excellent article sur la façon d'exécuter tout ce projet sur un modèle A.
  • Module de caméra Raspberry Pi: Ce module a été spécialement conçu pour le micro-ordinateur Raspberry. Il dispose d'un connecteur à brancher directement sur la carte Raspberry et prend en charge la vidéo HD jusqu'à 1080p. Le site Web //www.rs-components.com/raspberrypi vous montrera où vous pouvez le commander dans votre pays. C'est à dire //www.alliedelec.com/lp/130513rasocameramodule/ expédie cet appareil photo aux États-Unis pour seulement 29 $ US .
    Il y aura bientôt un module de caméra infrarouge pour le Raspberry Pi (//www.raspberrypi.org/archives/5089). Nous n'avons pas encore eu l'occasion de le tester, mais cela devrait également fonctionner pour cette caméra de surveillance.
  • Un boîtier pour la caméra: vous n'avez pas besoin d'acheter un boîtier à prix élevé pour votre Raspberry. Il y a beaucoup de fausses caméras de sécurité très bon marché disponibles qui correspondent parfaitement à nos besoins ici. Cherchez sur le Web "factice de caméra de surveillance" et vous trouverez des tas de boîtiers pour votre nouvelle caméra pour seulement quelques dollars. C'est-à-dire que celui-ci fera le travail: //amzn.to/15XLaAj pour seulement 9 $ US . Nous avons commandé ce boîtier d'appareil photo pour environ 20 € en Allemagne avec suffisamment d'espace pour tous les composants: //amzn.to/19CTEaN. Vous pouvez utiliser n'importe quel boîtier de caméra, mais faites uniquement attention à la taille du boîtier pour que la carte Rasperry puisse y entrer. Les dimensions de la planche Raspberry sont de 85, 6 x 53, 98 x 17 mm (environ 3, 37 x 2, 13 x 0, 67 pouces).
  • Alimentation: L'ordinateur Raspberry n'est pas livré avec une alimentation, vous devez en obtenir un par vous-même. Toute alimentation avec une prise micro-USB peut faire l'affaire tant qu'elle fournit au moins 1A d'alimentation. Nous avons commandé une telle alimentation qui a déjà une prise micro-USB pour environ 10 $ US
  • Carte SD: comme le Raspberry Pi ne dispose pas de stockage à bord, vous devez en ajouter pour pouvoir installer et exécuter le système d'exploitation de cet appareil. Toute carte SD ou microSDHC devrait faire l'affaire, mais nous vous recommandons d'utiliser une carte SD de classe 10. C'est seulement environ 7 $ US
  • Pour connecter cette caméra à votre réseau, vous avez également besoin d'une sorte de connexion réseau. Une possibilité consiste à utiliser une connexion LAN, mais vous devrez placer le câble LAN à l'endroit où vous souhaitez monter la caméra. Une meilleure alternative est un tel adaptateur USB WiFi pour seulement environ 10 $ US
C'est tout: pour environ 120 $ US, nous avons tout le matériel dont nous avons besoin pour construire cette caméra de surveillance HD.

Étape 3: installer Raspbian

Au début, vous devez installer le système d'exploitation et le logiciel sur le Raspberry Pi avant de les monter tous ensemble. Un système d'exploitation est le logiciel de base du système d'exploitation qui indique au matériel Raspberry ce qu'il doit faire. Linux est parfait pour cela. Nous avons choisi Raspbian, car il s'agit de l'un des systèmes d'exploitation les plus avancés pour la framboise avec de nombreuses aides et tutoriels sur Internet.
Vous devez préparer la carte SD pour pouvoir exécuter Raspbian sur le Raspberry: cet excellent tutoriel d'Adafruit expliquera les étapes nécessaires.
Maintenant, connectez temporairement votre carte Raspberry Pi au câble LAN, à un moniteur (un téléviseur HDMI fonctionne immédiatement, mais un câble HDMI-DVI comme celui-ci fera également l'affaire) et un clavier USB pour la configuration de base.
Insérez la carte SD préparée avec le programme d'installation Raspbian dessus et fixez l'alimentation.
Le Raspberry devrait démarrer et vous guider tout au long du processus de configuration, comme expliqué dans ce tutoriel Adafruit. Après cela, vous devriez avoir un OS Raspbian de base en cours d'exécution.
Veillez à activer SSH dans Raspbian afin de pouvoir contrôler le périphérique Raspberry également quand aucun moniteur et clavier n'est connecté. Et vous devez également activer la caméra à partir du menu de configuration Raspbian afin que nous puissions l'utiliser pour la détection de mouvement.
Assurez-vous maintenant que votre RPI est à jour:

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

Et mettez également à jour tous les packages:

 mise à jour sudo apt-get mise à niveau sudo apt-get 

Étape 4: connexion via SSH

Maintenant que la configuration de base est terminée, vous devez vous connecter à votre appareil Raspberry depuis votre ordinateur. Vous pouvez vous connecter à la console Linux à partir de n'importe quel ordinateur de votre réseau local et la contrôler comme si vous étiez assis directement en face d'elle. Ceci est très important car une fois monté loin de votre bureau, vous devez pouvoir effectuer des mises à jour et changer la configuration de cette caméra à tout moment plus tard sans avoir besoin de la détacher du mur et de la ramener à votre bureau.

N'oubliez pas que cette came n'est pas seulement un périphérique de came de vidage, mais un ordinateur très puissant avec Linux OS fonctionnant dessus. Ce n'est pas limité à ce que nous expliquons dans cet article maintenant; il suivra tout développement de logiciel afin que vous puissiez installer un logiciel mis à jour et plus de modules à tout moment plus tard.

Tout d'abord, vous avez besoin d'un logiciel pour vous connecter à la console Linux sur le Raspberry. Pour Windows, vous aurez besoin du logiciel supplémentaire (gratuit) PuTTY. Téléchargez-le sur le site Web de PuTTY, installez-le et connectez-vous à votre appareil Raspberry Pi:

Désormais, vous n'avez plus besoin de moniteur ni de clavier attaché au Raspberry.

Étape 5: activer le WiFi

Si vous souhaitez exécuter cette caméra avec un dongle USB WiFi (comme nous l'avons suggéré à l'étape 2), vous devrez effectuer quelques étapes supplémentaires rapides pour faire fonctionner le WiFi sur le Raspberry:
Dans la console (fenêtre PuTTY), modifiez les propriétés réseau du Raspberry:
 sudo nano / etc / network / interfaces 
Ajoutez maintenant ces lignes à la fin du fichier (ou modifiez les lignes existantes pour qu'elles correspondent):
 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-ssid "VOTRE SSID RÉSEAU" wpa-psk "MOT DE PASSE WIFI" 
(Remplissez le SSID et le mot de passe de votre réseau WiFi)
Redémarrez le Raspberry avec cette commande et voyez s'il se connecte correctement à votre réseau WiFi:
 redémarrage sudo 

Étape 6: assembler le matériel

Il est maintenant temps d'assembler tous les composants matériels ensemble dans le boîtier. Selon le logement, cela ne devrait pas être un travail trop compliqué. Assurez-vous de monter la carte Raspberry en toute sécurité afin qu'elle ne tombe pas dans le boîtier.
Comme notre logement avait une très grande fenêtre en verre à l'avant, nous l'avons fermé avec un papier noir avec un trou dedans. Cela a l'avantage que la "technologie" de la caméra n'est plus visible. Si vous aimez que la LED d'enregistrement de la caméra soit visible, ne la couvrez pas. Chaque fois que la caméra détecte un mouvement ou enregistre, la lumière LED brillera d'un rouge très lumineux.
Vous pouvez également éteindre la LED rouge de la caméra en ajoutant cette ligne à /boot/config.txt:

 disable_camera_led = 1 



Étape 7: Installation du logiciel de détection de mouvement

Un très bon (et open-source gratuit) logiciel de détection / surveillance de mouvement avec de nombreuses options de configuration est le mouvement.
Nous devons maintenant l'installer en utilisant la ligne de commande (connectez-vous à votre framboise en tant qu'utilisateur "pi"):
 sudo apt-get install motion 
Certains packages seront installés lors du processus d'installation; tapez simplement "y" pour procéder à l'installation.
Comme la version actuelle de motion ne prend pas (encore) en charge le module de caméra Raspberry, nous devons télécharger et installer une version spéciale avec prise en charge de ce module de caméra.
 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 libpw-devrop.com // devbox.com /xdfcxm5hu71s97d/motion-mmal.tar.gz 
Et maintenant, vous devez décompresser le fichier téléchargé dans le répertoire / tmp:
 tar zxvf motion-mmal.tar.gz 
Après cette décompression, vous devez maintenant mettre à jour votre mouvement installé avec la version téléchargée:
 sudo mv motion / usr / bin / motion sudo mv motion-mmalcam.conf /etc/motion.conf 
Vous devez également activer le démon de mouvement pour que le mouvement s'exécute toujours:
 sudo nano / etc / default / motion 
et changez la ligne en:
 start_motion_daemon = oui 
Nous sommes à peu près sûrs que la version officielle de Motion prendra également en charge le module de caméra Raspberry.
Une commande très importante pour éditer le fichier de configuration de mouvement est
 sudo nano /etc/motion.conf 
Remarque: dans l'installation de motion standard, le motion.conf est dans / etc / motion /, mais dans la construction spéciale motion-mmal de dropbox-url (voir ci-dessus), il est dans / etc /. Si vous suivez ce tutoriel avec toutes les étapes, cela ne pose aucun problème.
Assurez-vous que les autorisations de fichier sont correctes: lorsque vous installez motion via ssh tout en étant connecté en tant qu'utilisateur "pi", vous devez vous assurer de donner à l'utilisateur "motion" les autorisations d'exécuter motion en tant que service après le redé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 avons apporté quelques modifications au fichier motion.conf pour répondre à nos besoins. Notre fichier motion.conf actuel peut être téléchargé ici. Téléchargez, décompressez et copiez simplement le fichier motion.conf dans /etc/motion.conf si vous souhaitez utiliser les options de configuration exactes décrites ci-dessous.
Certains des principaux changements sont les suivants:
Assurez-vous que le mouvement s'exécute toujours en tant que démon en arrière-plan:
 démon activé 

Nous voulons plutôt stocker le fichier journal dans / tmp (sinon l'utilisateur à démarrage automatique ne pourra pas y accéder dans le dossier / home / pi /):

 fichier journal /tmp/motion.log 
Comme nous voulons utiliser une vidéo de surveillance de haute qualité, nous avons réglé la résolution sur 1280x720:
 largeur 1280 hauteur 720 
Nous n'avons pas besoin de vidéo en temps réel, 2 images par seconde conviennent parfaitement à nos besoins:
 fréquence d'images 2 
Ceci est une fonctionnalité très pratique du logiciel de mouvement: enregistrez quelques images (2 dans notre configuration) avant et après la détection du mouvement dans l'image:
 pre_capture 2 post_capture 2 
Nous ne voulons pas de films sans fin. Au lieu de cela, nous voulons avoir max. Tranches de 10 minutes des vidéos animées. Cette option de configuration a été renommée de max_movie_time en max_mpeg_time en mouvement. Si vous utilisez la construction motion-mmal, celle-ci fonctionnera. Si vous obtenez une erreur 'Option de configuration inconnue "max_mpeg_time"', changez celle-ci en max_movie_time ou assurez-vous d'utiliser vraiment la construction motion-mmal comme indiqué ci-dessus.
 max_mpeg_time 600 
Comme certains lecteurs multimédias comme VLC ne peuvent pas lire les films enregistrés, nous avons changé le codec en msmpeg4. Ensuite, les films sont lus correctement dans tous les lecteurs:
 ffmpeg_video_codec msmpeg4 
Activez l'accès au flux en direct de n'importe où. Sinon, seul l'hôte local (= le périphérique Raspberry) serait autorisé à accéder au flux en direct:
 stream_localhost off 
Si vous souhaitez protéger le flux en direct avec un nom d'utilisateur et un mot de passe, vous devez activer ceci:
 stream_auth_method 2 stream_authentication SOMEUSERNAME: SOMEPASSWORD 
Tous les paramètres de configuration sont expliqués en détail dans la documentation de Motion Config.
Après vos modifications du motion.conf, redémarrez le Raspberry:
 redémarrage sudo 
Après le redémarrage, le voyant rouge du module de caméra doit être allumé, ce qui montre que le mouvement utilise actuellement la caméra pour détecter tout mouvement.

Étape 8: enregistrer des vidéos sur le dossier partagé Windows

Comme la carte SD du Raspberry Pi est une ressource assez limitée, nous avons décidé de laisser la caméra Raspberry stocker les vidéos sur l'un de nos serveurs Windows. C'est assez simple:
Partagez d'abord un dossier à partir d'une machine Windows. Suivez simplement quelques guides sur Internet si vous n'avez jamais partagé de dossier depuis une machine Windows auparavant.
Ouvrez ensuite la configuration fstab sur votre Raspberry depuis une console PuTTY ou directement depuis l'appareil:
 sudo nano / etc / fstab 
Ajoutez maintenant une ligne supplémentaire avec la configuration de votre dossier partagé réseau Windows:
 // YOURSERVERNAME / YOURSHAREDFOLDERNAME / mnt / camshare cifs username = YOURSHAREDFOLDERUSERNAME, password = YOURSHAREDFOLDERPASSWORD, iocharset = utf8, file_mode = 0777, dir_mode = 0777 0 0 
Assurez-vous que l'utilisateur dispose des autorisations appropriées pour enregistrer des fichiers dans ce dossier partagé.
Après un redémarrage, le Raspberry devrait avoir un dossier supplémentaire / mnt / camshare monté sur le dossier partagé Windows. Vous devez maintenant définir dans votre motion.conf:
 target_dir / mnt / camshare 
afin que le mouvement enregistre tous les films dans le dossier partagé sur la machine Windows.


Étape 9: Correction du démarrage automatique du mouvement

Nous avons eu du mal à ce que le mouvement ne démarre pas automatiquement lors d'un redémarrage du Raspberry. Nous avons découvert que cela était dû au fait que le dossier monté de la machine Windows n'était pas encore prêt lorsque motion a tenté d'y accéder.
Une solution très rapide a résolu notre problème:
Modifiez simplement le fichier de mouvement avec
 sudo nano /etc/init.d/motion 
et ajoutez la ligne
 dormir 30 
à la séquence de démarrage.
Notre script /etc/init.d/motion modifié peut être téléchargé ici.

Étape 10: Montage de la caméra

Après toutes ces étapes, vous pouvez enfin monter la caméra de surveillance sur le point de destination.
Quelques conseils utiles:
  • Assurez-vous de placer l'alimentation dans un endroit sec et sûr
  • Gardez un œil sur le signal WiFi: si vous montez la caméra hors de portée du WiFi, elle ne pourra pas envoyer de vidéo en direct ni enregistrer de vidéos animées

Étape 11: Accès au flux en direct

Vous pouvez maintenant accéder au flux en direct de la caméra depuis n'importe quel navigateur via l'url // IPADDRESSOFRASPBERRY: 8080
Où 8080 est le port que nous avons configuré pour notre flux dans le fichier motion.conf. Voir votre propre paramètre de configuration "stream_port" dans motion.conf pour le port.
Nous avons découvert que Google Chrome 30 (même pas sur iOS) n'était pas en mesure de lire ce flux directement en raison d'un bogue dans le projet Chromium sous-jacent.
Une solution de contournement consiste à créer un fichier html simple contenant une grande image avec l'URL de la caméra. Voir le fichier cam.html de raspberry_surveillance_cam_scavix.zip. De cette façon, Chrome peut également afficher le flux en direct. Espérons que Chrome résoudra ce problème dans leur navigateur.
Mais d'autres navigateurs comme FireFox, Safari et même le lecteur multimédia VLC ont pu afficher le flux en direct de la caméra.
Nous n'avons pas pu faire fonctionner le flux en direct dans Internet Explorer car il ne prend pas en charge Motion JPEG. Kenneth Lavrsen (le créateur de motion) a décrit la solution de contournement pour la diffusion en direct dans Internet Explorer ici.

Étape 12: Accédez à la diffusion en direct depuis n'importe où

Pour rendre le flux en direct accessible de n'importe où, vous devrez activer une sorte de services de domaine dynamique sur votre réseau local. Cela vous permettra de toujours pouvoir vous connecter à votre adresse IP locale de l'extérieur même si votre adresse IP locale change (ici en Allemagne, chaque adresse IP privée DSL change toutes les 24 heures).
Un tel service (gratuit) vous permet d'accéder à votre Raspberry de n'importe où même si votre adresse IP change. Un très bon service que nous utilisons depuis quelques années est dyn.com. Ils ont des services gratuits et sont intégrés dans de nombreux routeurs.
Une fois que vous avez configuré l'URL IP dynamique, vous pouvez accéder au flux de la caméra depuis n'importe où dans votre navigateur (c'est-à-dire // YOURDYNAMICDOMAIN: 8080).
Et cela fonctionne également à partir du navigateur de votre appareil mobile.

Étape 13: prochaines étapes

Il y a mille choses que vous pouvez faire avec une telle configuration de base de caméra de surveillance maintenant. Que diriez-vous d'envoyer des notifications Growl lorsqu'un mouvement a été détecté? Ce guide explique comment ajouter facilement cette fonctionnalité.

Ou vous pouvez facilement ajouter un capteur de température à la came. Ce n'est que quelques dollars et peut être intégré très facilement.
Nous travaillons actuellement sur l'intégration du flux en direct dans le serveur MediaPortal afin de pouvoir passer à une chaîne de télévision pour voir le flux en direct à partir de la caméra dans notre bureau.

Si vous souhaitez une sécurité supplémentaire, vous pouvez également ajouter une batterie à l'appareil photo. Assurez-vous d'en acheter un capable de charger simultanément tout en alimentant le Raspberry. Cela vous permettrait de détecter si un méchant coupe les barrettes d'alimentation de votre appareil photo et de vous envoyer des messages d'alerte (par exemple SMS ou e-mail), y compris la vidéo du perturbateur.

Qu'allez-vous ajouter? Faites le nous savoir!

Articles Connexes