Utilisation de la Webcam sur Raspi

 

Ce mémo a été rédigé en avril 2016, puis modifié en décembre 2022 pour tenir compte de l’évolution du système Raspberry et de Motion.

Objectif :  prendre des photos à intervalles réguliers et les consulter ultérieurement.

1 -Utilisation du paquetage  fswebcam       (chapitre rédigé en Avril 2016)

 

Chargement sur le Raspi

sudo apt-get install fswebcam
 

  -Après branchement de la Webcam, ( j’ai utilisé une Cam USB Logitech QuickCam  pro 4000),

 contrôlez la bonne reconnaissance de cette dernière par la commande  lsusb 

 si c’est ok, depuis le terminal passer la commande :

fswebcam  –r  640x480  --jpeg 100  --font sans:15  --shadow  
--title "F5BQV"  --subtitle "test"  --info "Raspberry pi 2"
 –save /home/pi/file.jpg   -l  240
 

Toutes les 240 secondes, une photo  est prise.

Les  inconvénients  de cette  méthode sont :

-après chaque arrêt et  relance  du programme fswebcam  il est nécessaire de retaper la commande complète.

-la photo prise  est sauvegardée dans le dossier /home/pi  sous le nom file.jpg,  (dans le cas de l’exemple ci-dessus),  ce qui signifie que toutes les 240 secondes,  la photo est remplacée.

Une solution pour pallier à la première  lourdeur.

 - mémoriser la commande  dans un dossier et  la rejouer  à l’aide d’un copier/coller.

ou

- utiliser un fichier configuration  comme  ci-dessous

resolution 640x480
jpeg 100
font sans:15
title "F5BQV"
subtitle "test"
info "Raspberry Pi2"
timestamp "%y%m%d.%H%M"
save /home/pi/”file.jpg
loop 240
 

   Créer  ce script de configuration  soit par nano soit  par WinScp (Voir Utiliser_Raspi_en_Remote)  dans le dossier /home/pi  sous le nom  ".scwebcam.conf"

 Pour exécuter le programme et son script associé  passer la commande.

fswebcam -c .scwebcam.conf
 

  C’est quand même moins long à taper,  mais les photos prises sont toujours remplacées (seule la dernière est consultable).

  Il est nécessaire que le nom de la photo change à chaque prise,  pour la rendre unique et consultable dans le temps,   donc adaptation du script pour inclure  la notion de Timestamp dans le nom du cliché.

resolution 640x480
jpeg 100
font sans:15
title "F5BQV"
subtitle "Muzillac"
info "Raspberry Pi2"
timestamp "%y%m%d.%H%M"
save /home/pi/Webcam/view.%Y%m%d.%H%M.jpg
loop 240
 

  En utilisant les variables :  an (Y), mois (m), jours  (d),   heure (H),  minute(M)  pour composer le nom du fichier,  il en résulte que  lors de la fonction  save,   l’unicité sera  obtenue  et  les clichés seront classés  chronologiquement.

  J’en ai profité pour créer un dossier Webcam   (avec les droits complets pour tous les utilisateurs) ,  c’est dans ce dossier que seront enregistrés au fur et à mesure les clichés.

Il est possible d'effectuer une double sauvegarde (2 lignes save  dans le fichier config)

Ce qui permet de conserver le fichier identifié par son timestamp

Quant au second il peut être mis à disposition d'un envoi  vers le réseau pour être  visualisé via un navigateur ( voir comment dans le paragraphe 3)

Exemple du lancement et déroulement de la procédure.

Raspi-Vebcam01.jpg

 

 

 2- Utilisation du paquetage webcam     (chapitre rédigé en Avril 2016)

 

 

Chargement sur le Raspi

sudo apt-get install webcam

 

Vérifier que la Webcam est toujours vue par le système  à l’aide de la commande    lsusb 

 si c’est ok, depuis le terminal passer la commande :  webcam

Ce programme s’attend à exécuter un  fichier de configuration nommé " .webcamrc"  qui n’est pas encore créé … (voir ci-dessous)

Pour terminer  l’exécution du programme Webcam      Ctrl/C

 

     # contenu de /home/pi/.webcamrc

[grab]

device = /dev/video0

text = "f5bqv le %Y/%m/%d  %H:%M"

width = 640

height = 480

quality = 100

trigger = 0

delay = 240

archive = /home/pi/Webcam/webcam01.%Y%m%d.%H%M%S.jpg

[ftp]

dir = /var/www/html

file = webcam.jpg

local = 1

 

   Créer ce script de configuration  soit par nano soit par WinScp  dans le dossier /home/pi  sous le nom  ".webcamrc"

 Pour exécuter le programme et son script associé  passer la commande :

webcam  /home/pi/.webcamrc 

 

  Comme pour l’utilisation du programme   fswebcam  j’ai été confronté au remplacement systématique du cliché,  j’ai donc  incorporé la fonction  « archive » avec identification unique à l’aide d’un Timestamp.

   La création d’un dossier  "archive"  nommé  Webcam  dans /home/pi   est  nécessaire,  à moins d’avoir  effectué  cette étape lors du passage par le paragraphe 1.

  Créer aussi un répertoire  " www "  dans /var (accorder les permissions)   à moins d'avoir installé  Apache et Php5,  ce fichier aurait  été créé.

Puis dans /var/www  créer un répertoire  /html  (lui aussi créé par l'installation du serveur Web) ,  chaque cliché sera  aussi écrit dans ce  dossier  pour  un envoi par ftp  vers  une autre machine du réseau .

 

 3- Récupération manuelle du fichier obtenu    (chapitre rédigé en Avril 2016)

 

 

Créer le code ci-dessous dans un fichier  "cam01.html " dans le dossier /var/www/html (par nano ou WinScp)

 

<html>

  <head>

   <META HTTP-EQUIV="pragma" CONTENT="no-cache">

   <META HTTP-EQUIV="refresh" CONTENT="30">             refresh toutes les 30 secondes

  </head>

     <body>

       <center>

         <h2> WebCam-01</h2>

         <img src="webcam.jpg" width="720" height="480">

      </center>

      </body>

<bot>

<center>

<h1>F5BQV</h1>

</center>

</bot>

</html>

 

 

  Dans un premier temps tester directement sur le Raspi

Il n'est pas nécessaire que Apache et Php5 (création d’un serveur Web)  soient installés sur ce Raspi.

Par contre nécessité d'avoir créé les dossiers  /www et /html  (ils servent de cible dans le processus  d'utilisation de la Webcam).

 

Lancer le Navigateur

Pour exécuter ce code et afficher la prise de vue dans le Navigateur Web Epiphany

     Taper dans la barre d'adresse   file///var/www/html/cam01.html

Ou http://127.0.0.1/cam01.html  

     Le dernier cliché doit apparaitre au milieu de l’écran, pour afficher la prise de vue suivante (celle de 4 minutes plus tard)  effectuer un rafraichissement de la barre d’adresse.

 

Après installation du serveur Web sur le Raspi

Le cliché peut être obtenu via un  navigateur (Firefox , Google Chrome, Internet Explorer …) du réseau interne

Par une commande dans la barre de recherche  http:// "adresse Ip du raspi"/cam01.html

 

4- Utilisation du paquetage motion       (chapitre rédigé en Avril 2016)

 

 

Chargement sur le Raspi

sudo apt-get install motion
 

Changer l'identifiant du compte de l'utilisateur :

# sudo usermod -a -G pi motion
# sudo usermod -a -G video pi

Créer le dossier dans lequel les clichés seront archivés attribuer les droits.

# mkdir /home/pi/motion
# chmod 755 /home/pi/motion

Modifier les droits du fichier de configuration et effectuer les aménagements de la configuration .

# sudo chmod 555 /etc/motion/motion.conf
# nano /etc/motion/motion.conf

Modifiez motion.conf en fonction de vos besoins.

 J'ai modifié uniquement ces lignes :

 

1. daemon off                  # lancement à la demande 
2. v412_palette 15             # en fonction de la webcam (tâtonnement) 
3. width 640
4. height 480 
5. framerate 2                 # 2 captures par seconde  (c'est le mini)  
6. max_movie_time 600          # limite temps d'enregistrement à 10mn 
7. ffmpeg_output_movies on
8. quality 90                  # facteur compression jpeg 
9. snapshot_interval 133       # 1 photo toutes les 133 secondes 
10.    webcontrol_localhost on   # visible sur le réseau local  
11.    #sdl_threadnr 0           # mis en commentaire     
 
fichiers utilisés par motion

 

paramètres            /etc/motion   (par défaut)

photo et vidéo     /tmp/motion/cam?               1 dossier par caméra  

logfile                     /tmp/motion.log

demon                   /etc/defaut/motion

 

 

Lancement de motion:  

   motion                                                               ( celui par défaut)

  motion    –c  /home/pi/motca01.conf          (1 fichier possible par webcam ou fonction)

                                                                                    (par exemple détection d'un intrus)

 

La visualisation au cours de l'enregistrement se fait via un navigateur du réseau local

http://ip du raspi :8081  (port 8081 qui est défini  dans motion.conf ou la conf.  spécifique)

 

Arrêt de motion

 Par ctrl/c  sinon à la relance détection d'un fichier log qu'il faut détruire manuellement.

 

 

5- Installation et utilisation du paquetage motion 4.4.0    (chapitre rédigé en Avril 2016, puis adapté en décembre 2022)

 

 

À ce jour 09 décembre 2022 les paquetages de Motion sont disponibles sur github.com

 

Le charger sous Windows ici : https://github.com/Motion-Project/motion/releases/

 

Puis chercher (Assets) la version qui correspond au niveau système,  dans mon cas c’est :

  pi_buster_motion_4.4.0-1_armhf.deb

La version 4.5.0 n’étant pas disponible pour le pi_buster, je me suis rabattu sur la V 4.4.0

 

Lorsque  le fichier est rapatrié  dans le dossier  "Téléchargements"  ou  "download" de Windows  effectuer la copie   vers le dossier  "Downloads" du Raspi.  (pourquoi Windows ?  mon Raspi est éloigné,  en conséquence j’utilise Winscp en root,  c’est nettement plus confortable…)

 

Depuis  une console (putty)

Venir sur le dossier Downloads

cd  Downloads

Puis passer la commande

sudo  dpkg  -i  pi_buster_motion_4.4.0-1_armhf.deb        c'est le nom du fichier copié.

 

rappel :  la commande dpkg permet d'installer  des packages Debian (suffix deb)

dans cette  commande,  Il est possible de taper les premiers caractères  comme sudo dpkg -i pi_buster  puis par un appui sur la touche de tabulation le système complète le nom du fichier.  Voir Pense-bete_Raspi sur ce site.

 

Lors de cette installation il est possible qu'il soit signalé que des paquets sont manquants.

 

 

Après avoir obtenu le prompt, passer la commande.

sudo apt-get install   "le ou les noms des manquants" 

 

 

Il est demandé lors de cette installation (dans le cas d'une mise à jour de version) si l'on désire conserver son fichier configuration (dans le cas d'une config complexe il est préférable de le conserver).

Par défaut l’application est installée dans la bibli /etc

 

Dans le cas d'utilisation de 2 caméras,   il faut un fichier configuration  motion.conf dans lequel on indique qu'il y a 2 cameras , ainsi qu'un fichier configuration par caméra, avec des règles et matériels différents  (pourquoi pas camera1.conf pour la caméra 1 et camera2.conf pour la caméra 2).  Voir Cam_config sur ce site.

 

 

Pierre Schuster  F5BQV                             avril 2016 et décembre 2022

 

Retour à l’accueil            http://f5bqv.fr