Webcam sur site

Photographie ultra-rapide, pilotage d'imprimante 3D ou de CNC, fabrication de bière.... Enfin tout ce que le Raspberry peut gérer trouvera sa place dans cette rubrique

Modérateur : Francois

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: Webcam sur site

Message par piper » jeu. 14 avr. 2022 23:32

Pour voir le message d'erreur d'un script : il suffit de le lancer dans un terminal
Ex: cliques sur le terminal (l'icône en écran noir)
Tapes :

Code : Tout sélectionner

blabla
Tu verras :
blabla : commande inconnue (ou unknown command)

Et script en crontab ne te donneras jamais d'erreur puisque l'érreur s'afficherait dans un terminal mais lorsqu'il démarre automatiquement, tu n'as pas de terminal qui s'ouvre à l'écran !
On peut néanmoins récupérer les erreurs en faisant explicitement le nécessaire genre :

Code : Tout sélectionner

*/30 * * * * bash /home/pi/raspicam/transfert.sh > /home/pi/raspicam/log.txt 2>&1
(rediriger la sortie standard [1] et la sortie erreur [2] vers le fichier (>) /home/pi/raspicam/log.txt)

Mais donc en fait tu n'as jamais testé ton script à la main dans un terminal comme je te le suggérais, pourquoi ?

C'est pourtant simple, il suffit de lancer dans un terminal :

Code : Tout sélectionner

bash /home/pi/raspicam/transfert.sh
S'il y a erreur, tu la verrais tout de suite.

9 contre un que tu vas seulement avoir un message de sécurité pour te demander si tu veux vraiment ajouter le serveur sftp à la liste des hôtes reconnus.
Si c'est cela, tu dis oui une fois et on ne te le demanderas plus.

Et non, il n'y a pas plus simple que le script shell sur Linux (si tu trouves python plus intuitif, tu t'apercevras qu'il te faudra plus de lignes de codes et installer des modules complémentaires). Python est fabuleux pour d'autres tâches mais pas pour des tâches si simples que celle là.
Pour la crontab (dernière étape normalement, quand tout est testé et validé, pas avant d'avoir lancer le script à la main), il existe une appli qui rend la chose plus intuitif mais cela n'écrira pas le script pour toi.

Sino, il existe des webcam qui proposent l'envoi régulier d'images sur un serveur ftp, je n'en connais pas qui le fasse en sftp
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: Webcam sur site

Message par piper » dim. 17 avr. 2022 21:05

Dès fois que tu câles vraiment à trouver le terminal, voici comment le lancer à partir du bureau :
Image

C'est dans cette fenêtre noire, là où tu vois le curseur gris que tu lance tes commandes par exemple :

Code : Tout sélectionner

bash /home/pi/raspicam/transfert.sh
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

nimportenawak
Messages : 17
Enregistré le : ven. 8 avr. 2022 15:43

Re: Webcam sur site

Message par nimportenawak » mar. 19 avr. 2022 11:33

Hello,

Merci oui oui je connais le terninal (ouf un bon point :) )

Code : Tout sélectionner

pi@raspberrypi:~ $ bash /home/pi/raspicam/transfert.sh
/home/pi/raspicam/transfert.sh: ligne 37 : cd: /home/pi/raspicam/cam/images: Aucun fichier ou dossier de ce type
ERROR: the system should be configured for the legacy camera stack
 Width: , Height: . Using pointsize: 0
convert-im6.q16: impossible d'ouvrir l'image `photo_camera.jpg': Aucun fichier ou dossier de ce type @ error/blob.c/OpenBlob/2924.
convert-im6.q16: nom de fichier d'image absent `rectangle 0,540,800,600' @ error/convert.c/ConvertImageCommand/3226.
/home/pi/raspicam/transfert.sh: ligne 81: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 83: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 85: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 87: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 89: -quality : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 91: photo_camera2.jpg : commande introuvable
cp: impossible d'évaluer 'photo_camera2.jpg': Aucun fichier ou dossier de ce type
/home/pi/raspicam/transfert.sh: ligne 114 : cd: /cam/images: Aucun fichier ou dossier de ce type
cd: ssh: Could not resolve hostname -data.host: Name or service not known
put: /home/pi/photo_camera2.jpg: Aucun fichier ou dossier de ce type
Bon je vais reprendre le tuto du debut :?
Modifié en dernier par nimportenawak le mer. 20 avr. 2022 10:12, modifié 1 fois.

nimportenawak
Messages : 17
Enregistré le : ven. 8 avr. 2022 15:43

Re: Webcam sur site

Message par nimportenawak » mar. 19 avr. 2022 12:21

piper a écrit :
jeu. 14 avr. 2022 23:32
Sino, il existe des webcam qui proposent l'envoi régulier d'images sur un serveur ftp, je n'en connais pas qui le fasse en sftp
Souvent il faut un pc derrière du coup pas très pratique
Je m'en doute mais je voulais découvrir le Raspberry et avoir un petit projet sympa et faire mon boitier et tout.

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: Webcam sur site

Message par piper » mar. 19 avr. 2022 20:15

Et bien voilà, il semble qu'il y ait plusieurs erreurs :
1ère erreur :
cd: /home/pi/raspicam/cam/images : Aucun fichier ou dossier de ce type
C'est clair non ? le dossier /home/pi/raspicam/cam/images n'existe pas

tu es sur de vouloir utiliser ce dossier ?
Si oui, soit tu fais en sorte que le script créé le dossier s'il existe pas
Ex : (si le dossier (-d) n'existe pas (!) alors le créer (mkdir) y compris les répertoires parents s'ils n'existent pas (-p)

Code : Tout sélectionner

if [ ! -d /home/pi/raspicam/cam/images ]; then
          mkdir -p /home/pi/raspicam/cam/images
fi
Ou tu le créés à la main une fois pour toute.

Et impossible d'ouvrir l'image `photo_camera.jpg' veut dire sur le fichier n'existe pas où que le user n'a pas les droit (à mon avis, il n'existe pas parce que déjà, le dossier ou tu veux le mettre n'existe pas)
Mais je suis étonné du message : ce detrait être impossible d'ouvrir /home/pi/raspicam/cam/images/photo_camera.jpg : à vérifier.

Pour -gravity : commande introuvable : ça fait syntaxe incorrecte. Donnes nous le script complet.
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

nimportenawak
Messages : 17
Enregistré le : ven. 8 avr. 2022 15:43

Re: Webcam sur site

Message par nimportenawak » mer. 20 avr. 2022 10:44

Hello

Pourtant le dossier existe bien. Je le vois bien.

J'ai remis comme de base sur le tuto REMOTEPATH='/home/pi/raspicam' ça posait problème que le fichier transfert .sh se trouvait dans /home/pi/raspicam et les images dans /home/pi/raspicam/cam/images peut-être ?

Là tout est dans le même dossier /home/pi/raspicam

pour le script complet nommé transfert.sh:

Code : Tout sélectionner

#!/bin/bash

HOST='masqué'
USER="masqué"
PASSWD="masqué"

# Notez le nom du fichier à transférer
FILE="photo_camera2.jpg"

# Notez le chemin du dossier où envoyer ce fichier
REMOTEPATH='/home/pi/raspicam'

# Se déplacer dans le dossier idoine au sein du Raspberry Pi
cd /home/pi/raspicam

# Créer l'image et faire une pause de 15 secondes
raspistill -w 800 -h 600 -o photo_camera.jpg -q 100

sleep 15


# Définition du format de la date à inscrire (en texte) sur l'image
time=$(date +"%d/%m/%Y - %H:%M:00")

# Choix automatique de la taille de la police de caractères (permet le placement des lignes où il faut dans le bandeau)
if [ $width -ge $height ]

then

pointsize=$(($width))

else

pointsize=$(($height))

fi



echo " Width: $width, Height: $height. Using pointsize: $pointsize"



# Script de transformation de l'image avec création du bandeau + ajout du texte puis enregistrement sous un autre nom (le nom du fichier à transférer)



convert "photo_camera.jpg" -fill '#DCDCDC' -draw 'rectangle 0,540,800,600' \

-gravity SouthEast -pointsize 18 -font Bookman-DemiItalic -fill '#7F7F7F' -annotate +$pointsize+10 "https://monsite" \

-gravity SouthEast -pointsize 15 -fill '#7F7F7F' -annotate +$pointsize+30 "mapage" \

-gravity SouthWest -pointsize 18 -font Bookman-DemiItalic -fill '#7F7F7F' -annotate +$pointsize+10 "$time" \

-gravity SouthWest -pointsize 15 -fill '#7F7F7F' -annotate +$pointsize+30 "@" \

-quality 100 \

"photo_camera2.jpg"



sleep 2



# Définition d'un autre format de date pour l'insérer dans le nom du fichier de sauvegarde

time=$(date +"%d-%m-%Y_%H-%M")



# Copie de l'image modifiée avec un autre nom pour la garder durablement (le fichier "photo_camera2.jpg" est auto-écrasé en local et en distant)

cp "photo_camera2.jpg" "Raspicam_$time.jpg"



sleep 2


cd "/home/pi/raspicam"
lftp sftp://$USER:$PASSWD$HOST  -e "cd $REMOTEPATH; put $FILE; bye"

exit 0
J'ai remodifié les droits sur le dossier à "tout le monde"

Maitienant j'ai ça sur le terminal

Code : Tout sélectionner

bash /home/pi/raspicam/transfert.sh
ERROR: the system should be configured for the legacy camera stack
 Width: , Height: . Using pointsize: 0
convert-im6.q16: nom de fichier d'image absent `rectangle 0,540,800,600' @ error/convert.c/ConvertImageCommand/3226.
/home/pi/raspicam/transfert.sh: ligne 81: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 83: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 85: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 87: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 89: -quality : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 91: photo_camera2.jpg : commande introuvable
cd `/home/pi/raspicam' [Bad port 'masquémasqué.host']
Il ne maquerait pas le chemin sur le serveur sftp?

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: Webcam sur site

Message par piper » mer. 20 avr. 2022 11:34

OK, tu as complètement changer les chemins donc je ne peux pas savoir pourquoi tu avais l'erreur sur le dossier /home/pi/raspicam/cam/images

C'est pas grave, on va faire marcher cette nouvelle version :
Là, je suis presque sûr que le fichier image est bien créé.
C'est /home/pi/raspicam/photo_camera.jpg
Tu peux me le confirmer ?

Après tu fais :

Code : Tout sélectionner

if [ $width -ge $height ]
Mais ni $width, ni $height ne sont valorisés, c'est comme si tu écrivais :

Code : Tout sélectionner

if [  -ge  ]
Ce qui est évidement incorrect syntaxiquement.

En fait ce bout de script est fait par quelqu'un d'autre pour s'adapter à différentes tailles d'image mais toi tu as demandé explicitement une image 800x600

Autrement dit, si, au début de script tu mets :

Code : Tout sélectionner

width=800
height=600
Puis

Code : Tout sélectionner

raspistill -w $width -h $height -o photo_camera.jpg -q 100
La suite fonctionnera (mais tu peux aussi virer le calcul de pointsize et mettre juste pointsize=800 car, là c'est ce qui se passerait : Au choix

Après photo_camera.jpg tu as créé en ajoutant ton bandeau photo_camera2.jpg toujours dans le même dossier
Puis tu as recopié ce dernier dans "Raspicam_$time.jpg"

Donc je suppose que Raspicam_$time.jpg a pour intérêt de garder un historique de chaque photo sur ton raspberry ?
(Attention à la carte SD pleine dans 2 ans)

Là tu as donc 3 fichiers tous dans le même dossier :
photo_camera.jpg (photo d'origine)
photo_camera2.jpg (photo modifiée par l'ajout du bandeau)
"Raspicam_$time.jpg" (copie de photo_camera2.jpg)


Tu as écris (sorry j'ai buggé pas dans mon explication mais dans ma citation de code....et tu as fais un copier collé)
lftp sftp://$USER:$PASSWD$HOST -e "cd $REMOTEPATH; put $FILE; bye"

C'est :
lftp sftp://$USER:$PASSWD@$HOST -e "cd $REMOTEPATH; put $FILE; bye"

Essais la modif, lances à la main, et récupères les messages d'erreurs éventuels

Par exemple :
En haut :

Code : Tout sélectionner

width=800
height=600
raspistill -w $width -h $height -o photo_camera.jpg -q 100
Et en bas :

Code : Tout sélectionner

lftp sftp://$USER:$PASSWD@$HOST  -e "cd $REMOTEPATH; put $FILE; bye"
Et un conseil : prévois une purge automatique des photos anciennes avant que la carte SD n'explose.
Si chaque image fais 1Mo (c'est peu) tu vas te retrouver au bout d'un mois avec 1,4Go de photos
au bout d'un an : 17,3Go de photos. Si ta carte SD est une 16Go, sans purge, dans moins de 9 mois, le raspberry ne fonctionnera plus correctement.
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

nimportenawak
Messages : 17
Enregistré le : ven. 8 avr. 2022 15:43

Re: Webcam sur site

Message par nimportenawak » mer. 20 avr. 2022 11:50

Oui merci ça se reco il manquait bien le @. A force de faire des copier coller :D

Code : Tout sélectionner

bash /home/pi/raspicam/transfert.sh
ERROR: the system should be configured for the legacy camera stack
 Width: , Height: . Using pointsize: 0
convert-im6.q16: nom de fichier d'image absent `rectangle 0,540,800,600' @ error/convert.c/ConvertImageCommand/3226.
/home/pi/raspicam/transfert.sh: ligne 81: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 83: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 85: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 87: -gravity : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 89: -quality : commande introuvable
/home/pi/raspicam/transfert.sh: ligne 91: photo_camera2.jpg : commande introuvable
cd: L'accès a échoué : No such file (/home/pi/raspicam)
441616 octets transférés en 4 secondes (111.4 KiB/s)   
Là j'ai bien un transfert mais rien sur le ftp quand je regarde le dossier. Il manquerait pas le chemin vers le dossier distant?

Oui j'ai repris ce script pensant que ça marcherait direct. Mais ce n'est pas simple quand on débute. Je comprends un peu la logique mais je sais juste modifié un truc déjà créé, pour le reste je suis un peu largué désolé.
https://trevilly.com/afficher-une-image ... otre-site/
piper a écrit :
mer. 20 avr. 2022 11:34

C'est /home/pi/raspicam/photo_camera.jpg
Tu peux me le confirmer ?

Là tu as donc 3 fichiers tous dans le même dossier :
photo_camera.jpg (photo d'origine)
photo_camera2.jpg (photo modifiée par l'ajout du bandeau)
"Raspicam_$time.jpg" (copie de photo_camera2.jpg)
oui, mais je n'ai que 2 fichiers photo_camera.jpg (photo d'origine)
photo_camera2.jpg (photo modifiée par l'ajout du bandeau) mais pas de bandeau dessus

Pour le reste je ne vois pas comment faire :oops:

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: Webcam sur site

Message par piper » mer. 20 avr. 2022 12:45

Faut s'arrêter à la 1ère erreur :
the system should be configured for the legacy camera stack
D'ailleurs moi je ferais ça dans le script :

Code : Tout sélectionner

raspistill -w $width -h $height -o photo_camera.jpg -q 100
coderetour=$?
if [ $coderetour -ne 0 ]; then
   echo "Erreur dans la prise de photo"
   exit 1
fi
Ca permet de ne pas se préoccuper des erreurs suivantes qui ne sont qu'une conséquence de la 1ère.

Ton raspberry est bien configuré pour l'utilisation de la caméra ?
Vérifies le :
Dans un terminal tapes

Code : Tout sélectionner

vcgencmd get_camera
Tu devrais obtenir : supported=1 detected=1

Sinon :
- soit le Pi n'est pas bien configuré (fais daans un terminal

Code : Tout sélectionner

sudo raspi-config
, vas dans interface et active la "Legacy camera")
- soit il est configuré mais la caméra n'est pas bien branché (j'ai déjà eu des soucis avec la nappe)

Quand on débute la création d'un script, il faut valider chaque étape une à une :
Ton post initial (envoie via ftp) concernait la dernière étape qui n'a jamais pu être exécuté à cause des erreurs précédentes.
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

nimportenawak
Messages : 17
Enregistré le : ven. 8 avr. 2022 15:43

Re: Webcam sur site

Message par nimportenawak » mer. 20 avr. 2022 12:54

piper a écrit :
mer. 20 avr. 2022 12:45
Ton raspberry est bien configuré pour l'utilisation de la caméra ?
Vérifies le :
Dans un terminal tapes

Code : Tout sélectionner

vcgencmd get_camera
Tu devrais obtenir : supported=1 detected=1
Normalement il l'était avec un autre tuto mais qui ne parlait pas du truc legacy :roll: :D

Maitenant j'ai bien

Code : Tout sélectionner

vcgencmd get_camera
supported=1 detected=1, libcamera interfaces=0
piper a écrit :
mer. 20 avr. 2022 12:45
Quand on débute la création d'un script, il faut valider chaque étape une à une :
Ton post initial (envoie via ftp) concernait la dernière étape qui n'a jamais pu être exécuté à cause des erreurs précédentes.
Je m'en doute et en plus je tente des trucs de mon coté pour ne pas tout devoir demander mais ce n'est pas toujours bon. Merci en tout cas pour ton aide, on avance

Répondre

Retourner vers « Les applications spécialisées du Raspberry Pi »