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

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

Webcam sur site

Message par nimportenawak » ven. 8 avr. 2022 15:57

Bonjour,

J'ai cherché plusieurs solution pour poster une image météo sur mon site : cam ip, webcam et pc... Et je suis tombé sur plusieurs posts avec un raspberry.

Un ami m'a donné un Pi 3+ qui ne lui servait plus.
Je me suis empresser de tester mais très débutant je ne sais pas si tout est bon.

La Camera Module V2 fonctionne mais avec différents scripts rien sur le ftp ou sur le raspberry. Je tente de poster sur mon hébergeur 1and1

Y a t-il des droits a donner? j'ai un doute sur le REMOTEPATH=. Y a t il un moeyn de savoir si ça fonctionne coté Rasppberry et si le pb vient de 1AND1?

Par avance merci pour votre aide

exemple de script utilisé (vu sur https://trevilly.com/afficher-une-image ... otre-site/)

#!/bin/bash

# Notez votre adresse du serveur FTP
HOST='ftp1and1'

PORT='22'

# Notez votre nom d'utilisateur
USER="moi"

# Notez votre mot de passe
PASSWD="mdp"

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

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

# 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 (car image de belle qualité alors que le Raspberry Pi est un nano-ordinateur)
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://trevilly.com" \
-gravity SouthEast -pointsize 15 -fill '#7F7F7F' -annotate +$pointsize+30 "Alban TRÉVILLY " \
-gravity SouthWest -pointsize 18 -font Bookman-DemiItalic -fill '#7F7F7F' -annotate +$pointsize+10 "$time" \
-gravity SouthWest -pointsize 15 -fill '#7F7F7F' -annotate +$pointsize+30 "Réalisée avec un Raspberry Pi" \
-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

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTEPATH
binary
put $FILE
quit
END_SCRIPT
exit 0

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

Re: Webcam sur site

Message par piper » sam. 9 avr. 2022 00:23

Bonjour

Tu n'a pas préciser ce que ton script renvois à l'écran, c'est la base si tu veux qu'on puisse t'aider.
Je pense que tu vois quelque chose du genre "not connected"

Car tu veux envoyer un fichier via ftp en utilisant le port 22 ? ==> donc c'est ce que 1and1 exige ??
Et tu n'utilises jamais PORT dans ton script
et si c'est vraiment le port 22 que tu dois utiliser alors ce serait plutôt sftp qu'il faut utiliser et pas ftp (ftp utilise par défaut le port 21, si tu ne précises pas un autre port ce qui est le cas ici et ftp ne sait pas faire du "secure ftp" c'est sftp qui le fait)

Donc vérifies ce que ton provider exige
Ensuite essais l'envoie d'un fichier à la main en ligne de commande
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 » sam. 9 avr. 2022 12:12

Bonjour Piper,

C'est là que je vois mon niveau débutant :(
Mon but est d'envoyer une image fixe style toute les 1/2 heures ou autre, histoire de donner une vue "météo".
Je voulais mettre le Raspberry dans un petit boitier étanche et le fixer sur le balcon.

"Je pense que tu vois quelque chose du genre "not connected" " non je n'ai rien qui s'affiche.

J'ai mon site sur 1and1. Oui, je vois maintenant c'est du SFTP avec le port 22. Du coup ce serait un autre script?

"Ensuite essais l'envoie d'un fichier à la main en ligne de commande" oups c'est à dire? :oops:

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

Re: Webcam sur site

Message par piper » sam. 9 avr. 2022 18:30

Code : Tout sélectionner

"Ensuite essais l'envoie d'un fichier à la main en ligne de commande"
C'est à dire :
dans un terminal, lancer les commandes ftp que ton script fait
Mais bon, ce n'est pas du ftp dont tu as besoin, tu l'as dit, c'est du sftp

Donc (1) installer le client sftp si ce n'est déjà fait
sftp est le client fournis par open-ssh
open-ssh est le nom du packet contenant un serveur et un client ssh

Il y a milles moyens de l'installer , en voici un :
en ligne de commande (donc dans un terminal : icône avec l'écran noir) tapes :

Code : Tout sélectionner

sudo apt-get install openssh-server
Evidement, si on te poses une question, répond oui

On se fout que le service ssh ne soit pas en démarrage automatique, ce qu'il faut c'est que le client sftp soit installé

Donc après, vérifies qu'il est là :

Code : Tout sélectionner

 sudo whereis sftp
Dois te renvoyer

Code : Tout sélectionner

sftp: /usr/bin/sftp /usr/share/man/man1/sftp.1.gz
C'est pas bon ?? STOP !
C'est bon ?? on continue

Etapes suivante : envoyer un fichier à la main sur ton serveur 1AND1
ouvres un terminal (icone d'écran noir)
va dans le dossier où il y a une image à envoyer ex si c'est dans le dossier /home/pi

Code : Tout sélectionner

cd /home/pi
consultes ce qu'il y a dans ce dossier

Code : Tout sélectionner

ls -l
(moins elle et pas moins 1)

Notes le nom du fichier que tu veux envoyer

On se connecte et on l'envoie

Code : Tout sélectionner

sftp nomdelutilisateurque1and1tadonner@adressedetonserveurtelque1and1teladonne
ex : sftp pi@toto.com
A la question "Are you sure you want to continue connecting " tu sais quoi répondre non ? Si tu mets non, tu es mal
On va te demander le mot de passe , c'est celui que 1and1 t'a donné
Ca marche pas? STOP : notes le message d'erreur !

maintenant tu es dans l'invite de sftp : à gauche tu vois sftp>
tu y seras tant que tu n'auras pas taper exit (ne tapes pas exit maintenant !)

donc va dans le dossier distant où tu dois envoyer ton fichier :

Code : Tout sélectionner

cd chemindudossierou tonfichierdoisaller
ex : cd photo/images/dimanche/jenesaisquoi
et envoies ton fichier

Code : Tout sélectionner

put nomdufichierquetuveuxenvoyersanslenomdudossier
Ca marche pas ? STOP, notes le message d'erreur

Ca marche ? bien supprimes ce fichier :

Code : Tout sélectionner

rm nomdufichierquetuveuxenvoyersanslenomdudossier
Et quittes

Code : Tout sélectionner

exit
Si tu as eu un problème : STOP, et donnes nous ton message d'erreur ainsi que la liste des commandes qui t'y ont amené et dans l'ordre où tu les as taper.

Ca à marché ?
Bien reste plus qu'à adapter ton script à l'envoi en sftp, ce qui sera fait au prochaine épisode












Code : Tout sélectionner

sudo apt-get install 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. 10 avr. 2022 10:43

Pour le script :
le problème est le mot de passe a intégrer dans ta ligne de commande
Tu es débutant, je ne vais pas parler du fait que côté sécurité, c'est null. et comme c'est ton appli perso non accessible par internet, on va pas en faire un fromage.
Normalement on utiliserait des clés ou au pire, une variable d'environnement mais je ne vais ajouter de la complexité à un débutant

Donc au plus simple :
1) installer lftp

Code : Tout sélectionner

sudo apt-get install lftp
2) ton script va contenir :

Code : Tout sélectionner

cd "LA_OU_SE_TROUVE_TON_FICHIER_QUE_TU_VEUX_ENVOYER"
lftp sftp://$USER:$PASS@$HOST  -e "cd $REMOTEPATH; put $FILE; bye"
Tu peux tester :
En ligne de commande tu fais :
USER="tonuser"
puis
PASS="tonmot de passe"
etc...
quand tu as mis toutes les variables, tu fais

Code : Tout sélectionner

lftp sftp://$USER:$PASS@$HOST  -e "cd $REMOTEPATH; put $FILE; bye"
Si ça marche, modifier ton script, sinon, dis nous où ça coince.
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 » lun. 11 avr. 2022 15:36

Waou merci

en suivant tous ces explicatifs j'ai compris un peu le fonctionnement et comment s'imbrique les choses.
Un grand merci

j'ai tout suivi à la lettre et tout fonctionne.

En revanche j'ai tenté de modifier le

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTEPATH
binary
put $FILE
quit
END_SCRIPT


mais sans succès

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

Re: Webcam sur site

Message par piper » mer. 13 avr. 2022 12:13

OK donc si tout est OK à la main,

Remplaces cette partie de ton script que tu viens de citer qui ne fonctionne pas (et c'est normal)
par :

Code : Tout sélectionner

cd "LA_OU_SE_TROUVE_TON_FICHIER_QUE_TU_VEUX_ENVOYER"
lftp sftp://$USER:$PASS@$HOST  -e "cd $REMOTEPATH; put $FILE; bye"
ex : si LA_OU_SE_TROUVE_TON_FICHIER_QUE_TU_VEUX_ENVOYER=/home/pi/images

Alors :

Code : Tout sélectionner

cd "/home/pi/images"
lftp sftp://$USER:$PASS@$HOST  -e "cd $REMOTEPATH; put $FILE; bye"
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 » jeu. 14 avr. 2022 09:15

ok donc ça donnerai ça? Mais ça me semble bizarre. Et rien n'est up sur 1and1

Code : Tout sélectionner

!/bin/bash



# Notez votre adresse du serveur FTP

HOST='1and1'



# Notez votre nom d'utilisateur

USER="moi"



# Notez votre mot de passe

PASSWD="pass"



# Notez le nom du fichier à transférer

FILE="photo_camera.jpg"



# Notez le chemin du dossier où envoyer ce fichier

REMOTEPATH='/cam/images'



# Se déplacer dans le dossier idoine au sein du Raspberry Pi

cd /home/pi/raspicam/images



# Créer l'image et faire une pause de 15 secondes (car image de belle qualité alors que le Raspberry Pi est un nano-ordinateur)

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 "@" \

-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 "/cam/images"
lftp sftp://$moi:$pass@$1and1  -e "cd $REMOTEPATH; put $FILE; bye"

exit 0
Modifié en dernier par nimportenawak le jeu. 14 avr. 2022 15:56, modifié 1 fois.

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

Re: Webcam sur site

Message par piper » jeu. 14 avr. 2022 09:43

Tu n'as pas dit quel est le message d'erreur donc en théorie, on ne peut rien pour toi

Heureusement, j'ai vu un gros soucis :

Tu as écris
$moi:$pass@$1AND1

Hors $1AND1 vaut : rien du tout

tu as mis en variable HOST="1AND1"
Donc c'est $HOST qu'il faut mettre et pas $1AND1

De plus, 1AND1 n'est surement pas la bonne adresse (il manque à minima un point qqchose et c'est rarissime qu'une adresse contienne des majuscules.
Ex : j'ai un compte 1and1, l'adresse du serveur ftp que je dois utiliser est :
homexxxxxxxx.1and1-data.host (xxxxxxxx est un numéro perso)

Tu peux retrouver l'adresse du serveur à utiliser en te connectant à ton espace 1and1 (https://my.ionos.fr/)
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 » jeu. 14 avr. 2022 15:55

Hello

non j'ai juste supp mais vrais logs et pass

J'ai ça à la fin

Code : Tout sélectionner

cd "/cam/images"
lftp sftp://$USER:$PASSWD$HOST  -e "cd $REMOTEPATH; put $FILE; bye"
le fichier transfert.sh est dans le dossier et c'est

Code : Tout sélectionner

crontab -e

Code : Tout sélectionner

*/30 * * * * bash /home/pi/raspicam/transfert.sh
qui devrait up tout ça

Je n'ai pas de message d'erreur. Je ne sais pas comment en voir un :oops: C'est juste que je n'ai pas d'image qui up sur le ftp.
En suivant tout ton pas à pas j''ai réussi à tout faire fonctionner. C'est juste là en tentant de mixer mon script et ton pas à pas que je n'arrive plus.
Y a peut-être une solution plus simple ou plus adaptée pour up une photo de la Raspberry cam toutes les 30 min ?

Code : Tout sélectionner

#!/bin/bash

HOST='masque'
USER="masque"
PASSWD="masque"
FILE="photo_camera2.jpg"
REMOTEPATH='/cam/images'
cd /home/pi/raspicam/cam/images

raspistill -w 800 -h 600 -o photo_camera.jpg -q 100
sleep 15
time=$(date +"%d/%m/%Y - %H:%M:00")
if [ $width -ge $height ]

then

pointsize=$(($width))

else

pointsize=$(($height))

fi


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


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 "@" \

-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 "/cam/images"
lftp sftp://$USER:$PASSWD$HOST  -e "cd $REMOTEPATH; put $FILE; bye"

exit 0

Répondre

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