Comme présenté précédemment, l’objectif de ce petit projet est de connecter un vieil appareil photo à Internet pour faire office de Webcam haute qualité (et autonome).
Comme vous pouvez le constater nous ne nous sommes pas encore penché sur l’aspect « matériel » de la solution. Nous y consacrerons un prochain billet.
De manière à automatiser la prise de photo et l’envoi vers un serveur FTP, nous allons créer un script shell.
L’objectif de ce script sera:
- de prendre une photo et de la transférer via USB,
- de « tagger » cette photo avec la date et l’heure,
- de mettre en ligne cette photo sur un serveur FTP,
- de redimensionner (1024×768) et renommer la photo en « webcam.jpg » et la mettre en ligne sur un serveur FTP.
En plus des paquets gphoto, deux paquets complémentaires seront installés : imagemagick (manipulation d’images) et lftp (logiciel ftp avancé).
wifipak> ipkg list | grep imagemagick
imagemagick – 6.5.5.10-1 – A set of image processing utilities.
wifipak> ipkg list | grep lftp
lftp – 4.0.3-1 – Sophisticated ftp/http client, file transfer program supporting a number of network protocols.
wifipak>
Comme vous pouvez le constater, ces paquets sont bien disponibles sur plateforme embarquée.
Exemple de date crée par ImageMagick
Le script sera ensuite lancé via une tache cron toutes les X minutes. Entre 5 et 10 minutes me semble correct. Notez qu’il faut être sûr que la photo soit bien en ligne avant de relancer le script.
De plus, il faut veiller à bien supprimer les photos, en effet le stockage sur la plateforme sera matériellement très limité. Il sera peut être nécessaire d’y adjoindre une clef usb.
Voici donc le script:
#!/bin/sh
######################################
######## CONFIGURATION START #########
######################################
capturedir= »/home/fanfoue/Videos/capture/ »;# PARAMETRES FTP
ftpserver= »ftp.sample.com »;
ftpuser= »sample »;
ftppassword= »sample »;
ftpdir= »/webtest/ »;
ftparchivedir= »/webtest/archive/ »;Init= »no »
CaptureStd= »yes »;
CaptureAdv= »no »;
######################################
######## CONFIGURATION STOP ##########
######################################if [ "$Init" = "yes" ] ; then
echo « xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx »
echo « xxxx INITIALISATION xxxx »
echo « xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx »
rm ${capturedir}* -r
fiif [ "$CaptureStd" = "yes" ] ; then
echo « xxxxxxxxxxxxxxxxxxxxxxxxxxx »
echo « xxxx CAPTURE PHOTO xxxx »
echo « xxxxxxxxxxxxxxxxxxxxxxxxxxx »
cd ${capturedir}
echo « Delete –> Suppression photos precedentes (si existantes) »
rm ${capturedir}IMG_*.JPG
gphoto2 –capture-image-and-download
dispdate=$(date +%Y%m%d%k%M)
printdate=`echo $(date +%A) $(date +%d) $(date +%B) $(date +%Y) – $(date +%k) h $(date +%M)`
mv IMG_*.JPG ${capturedir}${dispdate}.jpg
mogrify -font Helvetica -pointsize 30 \
-draw « gravity southwest \
fill black text 0,12 \ »${printdate}\ » \
fill white text 1,11 \ »${printdate}\ »" ${capturedir}${dispdate}.jpg
echo « Lftp –> Upload de la photo $dispdate.jpg sur vers $ftparchivedir »
lftp -c « open $ftpserver; user $ftpuser $ftppassword; cd $ftparchivedir; put ${capturedir}${dispdate}.jpg; bye »
echo « Resize –> Redimensionnement ${capturedir}${dispdate}.jpg en 1024×768″
convert ${capturedir}${dispdate}.jpg -resize 1024×768 ${capturedir}${dispdate}.jpg
echo « Rename –> Renommage en webcam.jpg »
mv ${capturedir}${dispdate}.jpg ${capturedir}webcam.jpg
echo « LFTP –> Upload de la photo webcam.jpg sur vers $ftpdir »
lftp -c « open $ftpserver; user $ftpuser $ftppassword; cd $ftpdir; put ${capturedir}webcam.jpg; bye »
echo « Delete –> Suppression photos locales »
rm ${capturedir}/*.jpg
fi
Vous pouvez tester le script en utilisant la commande suivante: sh nomduscript.sh
xxxxxxx@laptop:~/WiTo$ sh videoscript.sh
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxx CAPTURE PHOTO xxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
Delete –> Suppression photos precedentes (si existantes)
rm: cannot remove `/home/xxxxxxxx/Videos/capture/IMG_*.JPG’: No such file or directory
New file is in location /store_00010001/DCIM/148CANON/IMG_4830.JPG on the camera
Downloading ‘IMG_4830.JPG’ from folder ‘/store_00010001/DCIM/148CANON’…
Saving file as IMG_4830.JPG
Deleting file /store_00010001/DCIM/148CANON/IMG_4830.JPG on the camera
Deleting ‘IMG_4830.JPG’ from folder ‘/store_00010001/DCIM/148CANON’…
Lftp –> Upload de la photo 200911131816.jpg sur vers /webtest/archive/
Resize –> Redimensionnement /home/xxxxxxxxxxx/Videos/capture/200911131816.jpg en 1024×768
Rename –> Renommage en webcam.jpg
LFTP –> Upload de la photo webcam.jpg sur vers /webtest/
Delete –> Suppression photos locales
Le script s’exécute en moins d’1 minute sur une liaison Adsl 8M.
Tout fonctionne, l’étape suivante consiste donc à trouver la plateforme embarquée.







Commentaires fermés.