Camera de surveillance extérieure à vision nocturne à partir d’un Raspberry Pi B+ [1/2]

On trouve dans le commerce des caméras IP déjà toutes prêtes avec parfois un logiciel de visionnage fournit. Cependant le prix de ces engins monte très vite quand l’on vient greffer des options comme la vision nocturne, la Wifi ou la full HD … J’ai décidé de réaliser un appareil similaire sur la base d’un Raspberry Pi. De plus, j’ai choisi de l’implémenter dans une lampe halogène qui ne fonctionnait plus.

IMG_0872

Il est bien entendu possible d’ajuster certaines options comme par exemple utiliser une connexion Ethernet plutôt que par Wifi, ou bien une camera sans vision nocturne… A noter qu’on peut également utiliser une webcam en USB ce qui ne sera pas traité ici.

Dans cette première partie, je ne montrerais que le fonctionnement en plein jour (En attendant le projecteur Infrarouge que j’ai commandé…).

I) Camera en utilisation de jour

Le matériel nécessaire :

  • Un Raspberry Pi B+, 25.90€
  • Une Camera compatible Raspberry Infrarouge, 29.90€
  • Une alim micro USB 5V 1200mA, 5.90€
  • Une clé USB Wifi, 14€
  • Une carte micro-SD 8Go avec son adaptateur, 5.90€
  • Une lampe infrarouge extérieure, 15€ (Voir II) )
  • Une lampe halogène extérieure étanche (récupéré, trouvable à un prix de 4€)
  • Divers outils et câbles (Perceuse, scie sauteuse, tournevis…)

Soit un total de 96,6€ (100€ avec les frais de port).

IMG_0861

Pour le choix de la clé Wifi, cela dépend de la distance entre le routeur et l’emplacement de la caméra. Il est conseillé après usage de prendre une clé avec antenne extérieure (pour qu’elle puisse sortir du boitier). Ici j’ai choisi d’en prendre une la plus compacte possible (ce qui posera des problèmes dans la suite).

IMG_0881

1) Préparation de la Raspberry Pi

a) Installation de Raspbian

Télécharger l’image de Raspbian à l’URL : http://raspbian-france.fr/download/lasted.img

Suivre la même procédure d’écriture sur la carte SD que pour la Banana Pi en suivant cet article. Une fois la carte SD écrite, l’insérer dans la Raspberry Pi.

IMG_0863

Brancher un écran en HDMI et un clavier USB puis brancher l’alimentation sur le port mini-USB.

La carte doit booter et un écran de configuration apparaitre. Changer la langue du clavier et  le fuseau horaire dans le menu Internationalisation Options. Changer le mot de passe de l’utilisateur pi (Change User Password) et activer la caméra (Enable Camera).

menu

Enfin activer le SSH dans Advanced Options / SSH. Faites Echap pour revenir à la console. Pour revenir au menu de configuration plus tard, il suffira de taper sudo raspi-config.

ssh

b) Activer la Wifi

Brancher la clé Wifi. Taper dans la console :

sudo nano /etc/network/interfaces
Remplacer le paragraphe qui contient wlan0 par celui-ci en y ajoutant le nom du réseau et son mot de passe :
allow-hotplug wlan0
iface wlan0
inet dhcp
wpa-ssid "SSID RESEAU"
wpa-psk "MOT DE PASSE RESEAU"

Puis rebooter la Raspberry :
sudo reboot

Pinger une adresse ip de votre réseau ou un site quelconque (ex: ping google.fr) pour tester la connexion. Relever l’adresse IP avec la commande ifconfig.
Profiter-en pour mettre à jour le firmware de la Raspberry et Raspian (répondre par y si une question est posée) :
sudo apt-get install rpi-update
sudo rpi-update
sudo apt-get update
sudo apt-get upgrade

c) Accéder en SSH à la Raspberry

 Ceci va nous permettre d’accéder à la Raspberry à partir du réseau.
Installer Putty sur l’ordinateur client. Rentrer l’adresse IP, puis renter dans la console pi en utilisateur et le mot de passe.
Vous pouvez débrancher le clavier et l’écran de la Raspberry. On peut maintenant accéder à distance à la Raspberry Pi pour la configurer.
 

d) Installation du paquet Motion

Ce paquet va nous permettre de gérer la capture d’images pour la caméra ainsi que la détection de mouvements.
Normalement, le driver de la camera est installé par défaut dans la Raspberry Pi.
Faire sudo modprobe bcm2835-v4l2 pour le charger et pour le faire à chaque redémarrage :
sudo nano /etc/modules

et ajouter la ligne :
sudo modprobe bcm2835-v4l2

On peut tester la camera en prenant une photo avec :
Ou une vidéo avec :
raspivid -o test.h264

Vous pouvez vous connecter avec Filezilla en SSH. Pour visionner les fichiers test.jpg et test.h264, aller dans /home/pi/ et téléchargez les.
Ensuite installer le paquet motion :
sudo apt-get install motion

Éditer le fichier de configuration à l’aide de :
sudo nano /etc/motion/motion.conf

Tableau récapitulant les principales variables à changer :
NomPar défautConseilléDescription
deamonoffonLibère le terminal lors de l’exécution de motion
logfile/home/pi/motion.logRépertoire de sauvegarde du fichier log
rotate
0Angle de rotation de l'image par rapport à celle capturée par la caméra
width
3521280Largeur de l'image à capturer
height
288720Hauteur de l'image à capturer
framerate10015Nombre d'images par seconde
threshold
1500Nombre de pixel changé pour activer la détection de mouvement
noise_level
32Facteur de bruit à considérer dans la détection de mouvement
pre_capture02Images capturées avant la détection de mouvement
post_capture02Images capturées après la détection de mouvement
event_gap6060Nombre de secondes considérées après la fin d'une détection de mouvement pour l'achèvement d'un évènement (Si ce temps est écoulé, un fichier vidéo est de nouveau créé)
max_movie_time0300Nombre de seconde déterminant la durée max d'une vidéo (après ce temps un nouveau fichier est créé)

quality
7575Qualité de compression jpeg (en pourcent)
ffmpeg_video_codecmpeg4 mpeg4Codec à utiliser pour la compression vidéo.
locate_motion_modeoffAffiche un cadre autour des pixels ayant été détecté
locate_motion_styleboxType de cradre (box ou redbox) ou de croix (cross ou redcross)
text_changesoffAffiche le nombre de pixel ayant changé dans le coin supérieur gauche de l'image
target_dir/home/piRépertoire d'enregistrement des images/vidéos
stream_port8080Port pour le streaming
stream_localhostonoffRestreint l’accès au streaming au réseau local
stream_auth_method03Type d'authentification pour le streaming (0 = disabled, 1 = Basic authentication, 2 = MD5 digest : the safer authentication)
stream_authentication username:passwordSi méthode 3 activée précédement
Détails sur la résolution à mettre :
Apparemment, la largeur et la hauteur de l’image doivent être des multiples de 16 si vous voulez la changer.
Pour lancer motion, il suffit de taper :
sudo motion

Les erreurs seront inscrites dans le fichier log situé /home/pi/motion.log.
Lancer un navigateur sur un ordinateur du même réseau et taper : Adresse_IP:8080

2) Montage dans le boitier de la lampe

a) Démontage de la lampe

 J’ai récupéré la lampe halogène Zenith dont l’électronique de commande a été retiré.
Commencer par retirer la vitre puis le réflecteur.
Dévisser les câbles du porte ampoule sur le domino.
Puis l’enlever. Profitez-en pour retirer le fil de terre.
Voici notre boitier vidé :

b) Préparation du boitier

Le préparation du boitier va consister à percer des trous dans celui-ci afin de fixer la carte Raspberry et de pouvoir brancher le mini USB. La carte va être positionné dans la partie inférieure du boitier tandis que le fil d’alimentation passera dans un perçage à l’arrière. J’ai hésité à percer également une sortie pour la clé Wifi afin que le rayonnement électromagnétique ne soit pas gêné par la cavité. Je vous conseille, après expérience, de réaliser ce perçage, ceci permettant d’augmenter les performances et d’éviter des pertes de signal. Ne pas hésiter à faire des essais à vide pour voir si la connexion Wifi est effective.
 Les perçages sont relativement simple puisque le boitier est constitué d’aluminium. Voici l’ordre des perçages à effectuer :
Avant de percer, visser deux vis M2.5 (ici de longueur 20) comme sur la photo. Positionner la carte dans le boitier puis pointer le perçage à réaliser.
Quand les deux premiers perçages ont été réalisé, fixer la carte dans le boitier (on pourra s’aider d’entretoise comme ci-dessus). Situer la projection du centre du connecteur au fond du boitier, démonter la carte puis pré-percer à cet endroit. Agrandir le trou à la scie sauteuse suivant les dimensions de votre connecteur.
Ébavurer les perçages et nettoyer l’intérieur du boitier de tous copeaux en aluminium. J’ai mis du scotch sur le bossage de la fixation de la prise de terre car j’avais peur que des soudures de la carte entrent en contact.
Nota Bene : Le boitier de dérivation a été enlevé sur les photos : ne pas en tenir compte !
Pour la camera, il a été choisi de réaliser une fixation « souple » à l’aide de fil d’acier pour permettre un réglage de la visé de la caméra. Pour ce faire, glisser un câble d’acier galvanisé de préférence (ceux qui servent à tendre les grillages par exemple) dans les perçages de la caméra de manière à rendre les deux solidaires.
Glisser le fil dans le perçage prévu pour le fil de terre et les câbles du culot de l’ampoule. Le fixer à un élément du boitier de dérivation pour le bloquer. Tordre le fil de manière à reculer la caméra par rapport au plan de la vitre.
Celle-ci ne doit pas toucher la vitre !! Remonter provisoirement la vitre. Boucher les interstices avec du joint en cartouche pour les trous de vis ou avec des joints presse étoupes pour le câble d’alimentation ou l’antenne wifi. Je n’ai pas eu besoin de le faire car ce système se trouve sous un porche à l’abri de la pluie.
 
S’assurer que tout fonctionne.

c) Fixation du boitier sur un mur

Percer le mur suivant le positionnement choisi, insérer des chevilles et visser le support. Boulonner le support sur le boitier en n’oubliant pas les écrous et les rondelles freins. Voici à quoi devrait ressembler notre installation.
Pour le raccordement électrique, j’ai préféré une solution non destructive du boitier d’alimentation (provisoire 😉 ) en raccordant les éléments de la prise à des dominos (Penser à couper le courant bien sûr).
Une fois la caméra montée et branchée on peut passer à la démonstration !

3) Démontration

Connectez-vous en SSH avec la caméra.
Lancer la détection :
sudo motion
La surveillance est lancée ! Regarder l’image en streaming pour effectuer les réglages de la visée…
Désactiver la Led rouge de la caméra car elle risque de gêner la capture à cause de son reflet dans la vitre !
Dans le fichier :
sudo nano /boot/config.txt

Ajouter la ligne :
disable_camera_led=1

Voici que la caméra marche depuis 4 jours. J’ai remarqué que certains phénomènes naturels comme la pluie, le vent ou encore les changements de luminosité brusque dus aux nuages provoquait la détection.

Petit récapitulatif des évènements susceptibles de déclencher la caméra.
Le vent dans les feuilles :
Les phares de voiture :
Un chat :
Une voiture :

En conclusion :

  • Comme déjà dit précédemment, choisir une clé Wifi de qualité avec antenne extérieur si vous souhaitez avoir une grande porté
  • Vous pouvez rajouter un écran en papier pour masquer l’électronique et rendre le système encore plus discret. (Ou réutiliser le réflecteur)
  • On peut également rajouter un ventilateur pour l’extraction de l’air du boitier, surtout si le système est en plein soleil.
  • Essayer peut-être d’adapter le capteur de mouvement de la lampe halogène pour déclencher l’enregistrement (A suivre…)
Source : http://www.codeproject.com/Articles/665518/Raspberry-Pi-as-low-cost-HD-surveillance-camera
Tagués avec : , , , , , , , , ,
16 commentaires sur “Camera de surveillance extérieure à vision nocturne à partir d’un Raspberry Pi B+ [1/2]
  1. Damien dit :

    Bonjour à tous,
    Je cherche a réaliser la même caméra mais je n’ai pas d’internet dispo à l’endroit où je souhaite l’installer » surveillance d’un chantier de construction ». Il faudrait y installer un module gsm 3g afin que le reseau internet soit le réseau gsm. J’ai déjà une caméra de ce type Ltl acorn 6210. Mais c’est très cher à l’achat.
    Merci pour vos conseils

  2. Widder dit :

    Bonjour,
    Tout d’abord, un grand merci pour ce sujet très intéressant sur la raspberry et la picam… À titre indicatif, on peut aussi utiliser MotionPie qui est une version adaptée de Motion sur Raspberry. Pour ma part, les vidéos et détections sont remvoyées directement sur mon NAS qui me permet d’augmenter considérablement le stockage….
    Souhaitant installer ma caméra a l’exterieur, je suis encore à la recherche d’un boîtier adapté et étanche…. Boîte de dérivation, projecteur ou autre, je suis en phase d’essai…
    Très cordialement….

    • Cgal dit :

      Bonjour,
      Merci pour votre commentaire. Effectivement la carte SD devient vite saturée, c’est pour cela que j’ai écrit un petit script pour permettre le transfert journalier des images sur un pc fixe. J’essaierai d’écrire un article dessus si j’ai le temps !

  3. Cgal dit :

    Bonjour,
    c’est ce genre de projecteur :
    http://www.ebay.co.uk/itm/LN-48-LED-illuminator-light-CCTV-IR-Infrared-Night-Vision-Lamp-for-Security-LN-/281627659150?ssPageName=ADME:L:OU:FR:3160

    Il faut prévoir une alim 12V 500mA, et il se déclenche automatiquement la nuit (photorésistance).

  4. Maxime dit :

    Bonjour,

    je voulais savoir si vous aviez déjà travailler sur la partie vision de nuit?

    je suis très intéressé par votre retour à ce sujet.

Laisser un commentaire

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

*