Orange Pi commercialise une petite caméra couleur 2MP avec optique grand angle qui pourra convenir pour réaliser une petite caméra de surveillance d’appoint. Dans ce tutoriel, nous allons installer les drivers gc2035 etvfe_v4l2 prenant en charge la caméra. La partie logicielle sera confiée à Motion capable de détecter des mouvements devant la caméra. A l’exception de l’Orange Pi Zero, tous les ordinateurs carte Orange Pi disposent d’un port caméra au format CSI (Camera Serial Interface) tout comme les Raspberry Pi (à partir de la seconde génération).
Sommaire
- 1 Configuration utilisée
- 2 Déballage de la caméra Orange Pi
- 3 Compatibilité avec le connecteur Raspberry Pi
- 4 Branchement de la caméra 2MP sur l’Orange Pi
- 5 Installation des drivers gc2035 et vfe_v4l2
- 6 Installation Motion pour la surveillance avec détection de mouvement
- 7 Autoriser le deamon Motion à se lancer au démarrage
- 8 Démarrer manuellement Motion
- 9 Motion crash après quelques secondes
Configuration utilisée
Cette caméra utilise le driver gc2035. Elle est compatible avec tous les mini-PC Orange Pi. Depuis que le driver gc2035 fait partie de la distribution Debian par défaut, il est très facile de l’activer. Pour ce tutoriel, vous aurez besoin du matériel suivant.
Coté système, j’ai opté pour Armbian (présenté dans cet article). C’est un système léger (une version sans bureau est disponible) dont on connait l’origine des sources. Il y a donc un très faible risque de transformer votre caméra de surveillance 100% DIY en botnet et vous retrouver impliqué dans une nouvelle affaire d’attaque DDoS !
Déballage de la caméra Orange Pi
La caméra d’Orange Pi est livrée dans un simple sachet en plastique transparent. Low cost oblige. Le module comprend la caméra, un adaptateur (obligatoire) ainsi qu’un ruban de 15 cm de long.
Compatibilité avec le connecteur Raspberry Pi
Le Raspberry Pi utilise un connecteur CSI-2 qui permet de supporter des caméra jusqu’à 5 MPixels. L’Orange Pi dispose bien également d’un connecteur CSI mais la similitude s’arrête là. En effet, c’est bien bien un connecteur CSI mais ce n’est pas le CSI-2 15 broches qui équipe le Raspberry Pi (2, 3 ou Zero).
C’est un connecteur 24 broches de largeur 12mm alors que celui du Raspberry Pi mesure 16mm. Difficile de savoir de quel version il s’agit car rien est clairement documenté, y compris sur les documents techniques disponibles ici.
Ruban de la caméra Orange Pi à gauche (12mm, 24 pistes). Ruban d’une caméra Raspberry Pi à droite (16 mm, 15 pistes).
Si vous voulez une meilleure caméra, par exemple une caméra avec une optique réglage, sans filtre IR pour une meilleure vision de nuit, ou encore un plus grande résolution, il faudra se rabattre vers une webcam USB standard. La plus classique est la Logitech C270.
Branchement de la caméra 2MP sur l’Orange Pi
Ouvrez le connecteur. Insérez le ruban jusqu’à sentir le fond du connecteur. Il n’y a pas d’indicateur de sens, il suffit simplement de tourner le ruban pour que les pistes soient en vis à vis avec les broches du connecteur. Refermez le connecteur.
Faites de même coté Orange Pi.
Le résultat après assemblage
Installation des drivers gc2035 et vfe_v4l2
Avant de commencer, le mieux est de mettre à jour le système
sudo apt-get update sudo apt-get upgrade
Après l’upgrade, il faudra très certainement modifier votre configuration vidéo si l’Orange Pi est branché sur un moniteur DVI (et donc redémarrer sur un téléviseur en HDMI).
Maintenant, on ajoute les drivers pour la caméra
sudo modprobe gc2035 sudo modprobe vfe_v4l2
Pour que les drivers soient chargés au démarrage, ouvrez le fichier /etc/modules et dé-commentez les drivers gc2035 et vfe_v4l2, ce qui donne par exemple
8189fs #gpio_sunxi #w1-sunxi #w1-gpio #w1-therm gc2035 vfe_v4l2 sunxi-cir g_serial
Installation Motion pour la surveillance avec détection de mouvement
Commençons par créer un répertoire de destination pour les images et on attribue toutes les permissions. Par exemple /home/pi/motion/
mkdir ~/motion chmod 777 ~/motion
Maintenant on installe Motion
sudo apt-get install motion
L’installation terminée, ouvrez le fichier de configuration
sudo nano /etc/motion/motion.conf
Modifiez les clés suivantes :
- target_dir : indiquez le chemin de destination des images. Par exemple /home/pi/motion (créé précédemment)
- stream_localhost : passez le paramètre à off pour que Motion soit accessible depuis un autre ordinateur sur le réseau local
Enregistrez avec CTRL+X puis Y
Si Motion semble ne pas fonctionner, c’est qu’il pointe vers le répertoire /etc pour charger le fichier de configuration. dans ce cas, copiez le fichier de configuration avec la commande cp par exemple.
sudo cp /etc/motion/motion.conf /etc/motion.conf
Autoriser le deamon Motion à se lancer au démarrage
Pour que Motion puisse se lancer au démarrage du système, il faut modifier un dernier fichier de configuration.
sudo nano /etc/default/motion
Modifiez le paramètre start_motion_daemon=yes puis enregistrez.
Démarrer manuellement Motion
Maintenant on peut démarrer Motion via son service
sudo /etc/init.d/motion start
Ouvrez un navigateur et saisissez l’adresse ip de votre Orange Pi sur le port 8081 (par défaut).
Après une modification du fichier de configuration, il faudra redémarrer Motion pour tenir compte des nouveaux paramètres :
sudo /etc/init.d/motion restart
Motion crash après quelques secondes
Durant la mise au point de cet article, j’ai rencontré quelques difficultés, et notamment le crash de Motion après quelques secondes de fonctionnement. Quelque soit le problème rencontré, le mieux est de commencer par activer le journal des événements de Motion. Ouvrez le fichier de configuration
sudo nano /etc/motion/motion.conf
puis cherchez la ligne qui commence par logfile et enlevé le point virgule.
# Use a file to save logs messages, if not defined stderr and syslog is used. (default: not defined) logfile /tmp/motion.log
Redémarrez le service Motion
sudo /etc/init.d/motion restart
Maintenant, vous disposez d’un log qu’il suffit d’ouvrir pour voir ce qui fait planter Motion
nano /tmp/motion.log
Dans mon cas, c’est au moment de la détection d’un événement et plus particulièrement au moment d’enregistrer l’image dans le dossier de destination que Motion plantait.
[1] [NTC] [ALL] [Dec 01 08:39:54] motion_detected: Motion detected - starting event 1 [1] [ERR] [ALL] [Dec 01 08:39:54] myfopen: Error opening file /var/lib/motion/01-20161201083954-01.jpg $ [1] [ERR] [ALL] [Dec 01 08:39:54] put_picture: Can't write picture to file /var/lib/motion/01-201612010$ Thread is going to finish due to this fatal error: [1] [NTC] [ALL] [Dec 01 08:39:55] motion_loop: Thread exiting [1] [NTC] [STR] [Dec 01 08:39:55] stream_stop: Closing motion-stream listen socket & active motion-stre$ [1] [NTC] [STR] [Dec 01 08:39:55] stream_stop: Closed motion-stream listen socket & active motion-strea$ [1] [NTC] [VID] [Dec 01 08:39:55] vid_close: Closing video device /dev/video0 [0] [NTC] [ALL] [Dec 01 08:39:55] main: Threads finished [0] [NTC] [STR] [Dec 01 08:39:55] httpd_run: motion-httpd - Finishing [0] [NTC] [STR] [Dec 01 08:39:55] httpd_run: motion-httpd Closing [0] [NTC] [STR] [Dec 01 08:39:55] motion_web_control: motion-httpd thread exit
Il suffit donc d’attribuer les permissions au répertoire pour permettre à Motion d’écrire dans le répertoire. Mais ce n’est pas une très bonne idée de toucher à ce répertoire.
sudo chmod 777 /var/lib/motion
En fait, j’avais tout simplement oublié de modifier le répertoire de destination des images dans le fichier de configuration.
Voilà, vous disposez maintenant d’une caméra de surveillance à détection de mouvement IP qu’il vous suffit d’inclure à votre serveur domotique.
Avez-vous aimé cet article ?