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://<ip-du-raspberry>: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 !

P.S. : N’oubliez pas notre concours du moment pour fêter les 1 ans du blog et tentez votre chance pour gagner un Google Home Mini.

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

Tu aimes cet article ? Alors partage le Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestShare on RedditShare on Tumblr

2 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 😉

Laisser un commentaire