Construire une caméra ip avec un raspbery pi Zero W

Je vous propose aujourd’hui un article qui vous permettra de mettre en place une caméra ip en utilisant un Raspberry Pi. Nous verrons comment monter un système autonome capable de streamer les images qu’il capte.

Les cas d’utilisations sont nombreux. Vous pouvez aussi bien l’utiliser comme dash cam, ou bien encore comme caméra de surveillance. Justement si c’est cette fonctionnalité que vous souhaitez utiliser, nous verrons en guise de bonus comment intégrer le flux vidéo de la caméra à Home Assistant.

Prérequis

Avant de commencer, il est nécessaire de s’équiper un peu. Il vous faut:

Le matériel

Raspberry pi
Ici j’ai choisi la version zero W car elle est très compact et elle dispose d’une connectivité wifi. Elle est donc particulièrement bien adapté à ce type de projet.
De quoi brancher votre Raspberry Pi.
C’est optionnel mais indispensable si vous souhaitez avoir une caméra mobile et indépendante.
Une capacité de 16 Go est suffisante si vous ne souhaitez pas faire trop d’archivage.
J’ai opté pour ce modèle de quitmat équipé en infrarouge ce qui lui permet de filmer de nuit.

Les logiciels

Système d’exploitation pour Raspberry Pi. La version lite est suffisante.
Utilitaire permettant de flasher simplement vos cartes sd.

 

Côté Raspberry Pi

Installation de raspbian

Afin de pouvoir utiliser votre Raspberry Pi, vous avez besoin d’y installer un système d’exploitation. J’ai choisi Raspbian. Pour l’installer, insérez la carte micro sd dans votre pc, ouvrez etcher et suivez les instructions (si ces instructions ne sont pas assez précises, vous trouverez d’avantage de détails dans cet article).

etcher

etcher

Quelques minutes plus tard la carte est prête !

Paramètrage du wifi

Réinsérez la carte micro sd dans votre pc (elle a dû être éjecté automatiquement à la fin de l’opération précédente). Ouvrez le disque nommé boot. Créez un premier fichier nommé ssh. N’ajoutez rien à l’intérieur, il permet seulement d’indiquer que vous voulez autoriser ce protocole.

Créez un deuxième fichier nommé wpa_supplicant.conf. Indiquez y les informations de connexions nécessaires pour rejoindre votre réseau wifi. Elles doivent se présenter comme ceci:

network={
ssid="ssid"
psk="mot-de-passe"
}

Selon les protocoles de sécurité de votre box, cette configuration peut-être insuffisante. Dans mon cas par exemple, pour du wpa2/AES, elle ressemble plus à ceci:

network={
ssid="ssid"
psk="mot-de-passe"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
auth_alg=OPEN
}

Une fois ces actions effectuées, éjectez proprement la carte et insérez la dans votre Raspberry Pi.

Configuration de la caméra

Connectez votre caméra et branchez votre Raspberry pi au courant.  Vous pouvez désormais y accédez via ssh ou un clavier et un écran.

Dans un premier temps, mettons à jour notre système. Pour ce faire, lancez les commandes suivantes:

sudo apt-get update
sudo apt-get upgrade
si vous avez choisi un autre OS que Raspbian Lite, vous avez peut-être une interface graphique. Dans ce cas, vous devez trouver le terminal afin de lancer les commandes indiquées tout au long de cet article

Identifiez la caméra connectée précédemment grâce à la commande suivante :

ls /dev/video*

Si comme dans mon cas cette commande ne retourne rien, ce n’est pas forcément anormal. En effet, pour certain modèle, il est nécessaire d’utiliser des drivers spécifiques. Dans ce cas lancez la commande suivante :

sudo modprobe bcm2835-v4l2

Tentez à nouveau la commandes et vous devriez normalement obtenir le chemin de votre caméra (Dans mon cas /dev/video0 ).

Si vous aussi vous avez besoin de drivers particuliers, éditez le fichier /etc/modules et ajoutez la ligne suivante afin que tout se passe bien aux prochains démarrages du Raspberry Pi.

bcm2835-v4l2

Nous allons maintenant installez motion qui va nous permettre de livestreamer ce qui est capté par notre caméra. Pour ce faire, lancez la commande suivante :

sudo apt-get install motion -y

 

Configuration de motion

Nous n’allons pas explorer toutes les possibilités de motion ici mais nous allons voir le minimum pour que votre stream fonctionne.

Ouvrez le fichier de configuration de motion

sudo nano /etc/motion/motion.conf

Cherchez les lignes suivantes:

daemon off
stream_localhost on
target_dir

et remplacez les par

daemon on
stream_localhost off
target_dir /home/pi/image-cam

créez un nouveau dossier qui contiendra les images enregistrées et archivées lorsqu’un mouvement est détecté

mkdir /home/pi/image-cam
sudo chgrp motion /home/pi/image-cam
chmod g+ rwx /home/pi/image-cam

Ensuite, nous allons faire en sorte que motion se lance automatiquement au démarrage de notre Raspberry Pi. Ouvrez le fichier /etc/default/motion grâce à la commande suivante

sudo nano /etc/default/motion

Modifiez la ligne start_motion_daemon comme ci-dessous

start_motion_daemon=yes

Enfin, lancez le service

sudo service motion start

C’est fini ! Vous pouvez tester que le stream fonctionne bien en ouvrant avec votre navigateur l’url http://<ip-du-raspberry>:8081. Vous devriez voir les images filmées par votre caméra.

La caméra est donc fonctionnelle mais certains détails ne sont peut-être pas encore à votre goût. Sachez que vous pouvez modifier la qualité, les couleurs, la fluidité et plein d’autre paramètres grâce au fichier de configuration /etc/motion/motion.conf que nous avions vu précédemment. N’hésitez donc pas à tester des choses pour arriver au résultat que vous attendez.

Côté Home Assistant (Bonus)

Petit bonus pour finir pour ceux qui comme moi utilise Home Assistant, il est très simple d’intégrer ces images. Pour ce faire, nous allons utiliser le composant Generic MJPEG IP Camera. Il vous suffit d’éditer votre fichier de configuration et d’ajouter les lignes suivantes

camera:
- platform: mjpeg
mjpeg_url: http://&lt;ip-du-raspberry&gt;:8081

Un redémarrage d’Home Assistant et le tour est jouer !

Caméra de surveillance en mode nuit

Caméra de surveillance en mode nuit

Conclusion

Voila, en quelques minutes, vous avez une caméra toute intégré à Home-assistant ! Il y a beaucoup de possibilités que nous n’avons pas exploité ici et que nous verrons probablement plus tard. A bientôt !

 

Cadre en informatique dans une multinationale je suis un touche-à-tout passionné de nouvelles technologies.

Tu aimes cet article ? Alors partage le Share on Facebook
Facebook
Share on Google+
Google+
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Pin on Pinterest
Pinterest
Share on Reddit
Reddit
Share on Tumblr
Tumblr

10 réponses

  1. Migui Pda dit :

    Parfait, c’est bien une utilité intéressante à exploiter. Toutefois, comment identifier le bon driver relatif à la caméra que l’on possède ?

    Voici un nouveau besoin :
    1) même fonctionnalité que présenté ici si ce n’est qu’elle doit être utilisée comme Judas de porte
    2) l’idée est alors de pouvoir identifier comme non-relevant les habitants de la maison et les amis et comme relevant, les gens qui viennent (roder) à la porte (pour voler ou entendre si quelqu’un est là). Pour se faire, intégrer à la fois le précédent motion avec ce code-ci : https://github.com/ageitgey/face_recognition
    3) et forcément, alerter par e-mail ou par la voix lorsque quelqu’un d’inconnu est à la porte qu’il y a une saisie vidéo/photo.
    4) la fonctionnalité vocale étant alors assurée par Jarvis (https://www.openjarvis.com/)

    D’après-vous, est-il donc faisable (sur un RPi 3) de faire tourner ces trois fonctionnalité (Reconnaissance Faciale/Détection de Mvt et Vocale avec Jarvis) ?

    D’avance merci de votre retour d’info.

    • Bonjour,
      Théoriquement si vous avez achetez la caméra officielle vous n’avez pas besoin d’installer de nouveaux drivers avec Raspbian. Dans les autres cas, celui du tuto devrais convenir. Normalement c’est assez standard. Si cela ne fonctionne pas il faudra vous rapprocher de la documentation de votre caméra.

      Concernant votre projet sur un rpi3 la reconnaissance facial devrait être faisable cependant je ne saurais pas dire si jarvis passera simultanément… Je pense que cela dépendra surtout de la qualité d’image de votre caméra. Plus le flux sera de bonne qualité plus la reconnaissance devrait être bonne cependant cela demandera plus de ressources.

      Dans tous les cas votre projet semble intéressant, n’hésitez pas à nous tenir au courant de vos avancés 😉

  2. Joris Stocker dit :

    Bonjour,

    Très bon article.
    La caméra que vous proposez d’acheter notifie qu’elle n’est pas compatible avec un Raspberry Pi Zero, avez vous vraiment utilisé celle-là ?

    Merci

    • Bonjour,

      Merci de votre retour je pense que la fiche produit a évolué. Cette référence ne semble effectivement pas compatible (en plus de la description, la photo semble indiquer que la nappe de connexion n’est pas la bonne).
      Je viens de mettre à jour le lien avec un modèle équivalent à celui que j’avais sélectionné.

      Bonne journée.

  3. Sebastien Moisan dit :

    Bonjour,
    L’article est très bien détaillé et je le recommande.
    Cependant je rencontre une difficulté car lorsque je rentre la ligne de code suivante : « chmod g+ rwx /home/pi/image-cam ».
    J’ai la réponse suivante : « chmod: cannot access ‘rwx’: No such file or directory ».
    Avez vous une idée à me soumettre?
    Merci d’avance,
    Seb

    • Bonjour,

      Il semble y avoir une petite erreur de frappe dans la commande il y a un espace en trop. Pouvez-vous tester chmod g+rwx /home/pi/image-cam ? Normalement votre problème devrait-être réglé.

      Bonne journée

  4. titi007 dit :

    Bonjour,
    Merci pour ce petit tuto, je m’en sers pour une reconnaissance de plaque d’immatriculation et ça fonctionne plutôt bien.
    intéressé par le projet de @Migui Pda aussi 😉
    Cependant, j’ai un tout petit problème, car à chaque redémarrage de ma caméra après une coupure de courant, je n’ai plus d’image et je suis obligé de relancer la commande : sudo modprobe bcm2835-v4l2
    pourtant, c’est une caméra officielle .. du moins il me semblait !
    Faut-il intégrer cette commande au démarrage du pi zero ?

    • Bonjour,
      Merci de vos retours 🙂 De mon côté je n’ai pas rencontré ce type de soucis alors que je relance souvent mon pi (off quand je suis chez moi). Je suppose que l’ajout de commande au démarrage réglera le soucis. Je me renseigne un peu plus et si j’ai du nouveau je mettrais l’article à jour 😉
      Bonne journée 🙂

  5. Phil dit :

    Bonjour et merci pour votre article.
    Sinon une question sur la camera utilisée, elle est prévue pour fonctionner uniquement la nuit (filtre) ?
    Comment est la qualité (couleur) des images de jour ? un exemple dans l’article SVP.
    Merci d’avance.
    Phil

    • Bonjour,

      Pour répondre à votre question la caméra fonctionne aussi bien de jour que de nuit pas de soucis. Concernant la qualité d’image en tout objectivité elle n’est pas folle chez moi mais selon vos réglage il semble qu’il soit possible de considérablement améliorer la qualité. J’ajouterais un exemple de vision en journée dès que possible 😉

      Bonne journée.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.