Time lapse avec Raspberry

Time lapse avec Raspberry - Python - Programmation

Marsh Posté le 21-03-2017 à 20:28:15    

Bonjour,
J'ai un programme en python qui fonctionne, mais je souhaite l'améliorer.
 
Je souhaite envoyer les photos directement sur mon serveur FTP et boucler à l'infini ! actuellement il prend 10'000 photos.
 
Voici le code et dessous l'adresse eu serveur.
 
Pouvez-vous m'aider, merci d'avance,

Code :
  1. import os
  2. import datetime
  3. import time
  4. from threading import Thread
  5. def picFunc():
  6.     os.system("fswebcam -d /dev/video0 -r 720x480 Pictures/%s.jpeg" %datetime.datetime.utcnow().strftime("%Y-%m-%d-%H:%M:%S" ))
  7. t=300      # initialise the pause between pictures in seconds         
  8. count=10000 # initialise the number of pictures to be taken
  9. i=1       # initialise (reset) the counting sequence
  10. totalTime=(t*count) # Calculate the time in seconds
  11. # Take a series of pictures one every t seconds
  12. while (i<=count):
  13.     # initialise variables
  14.     leftTimeH=0
  15.     leftTimeM=0
  16.     leftTimeS=0
  17.     # taking a picture by calling a command line prompt
  18.     x=Thread(target=picFunc)
  19.     x.start()
  20.     totalTime=(t*(count-i))     # Calculate the time in seconds
  21.     print (i)       # print the current count value to show progress
  22.     while (totalTime>=3600):
  23.         leftTimeH=leftTimeH+1
  24.         totalTime=totalTime-3600
  25.     while (totalTime>=60):
  26.         leftTimeM=leftTimeM+1
  27.         totalTime=totalTime-60
  28.     leftTimeS=totalTime
  29.     percentDone=((i/count)*100)
  30.     percentDone=round(percentDone,2)
  31.     message1=("Time left to finish " +repr(leftTimeH) +" Hours " + repr(leftTimeM) +" Minutes and " + repr(leftTimeS) +" Seconds" )
  32.     message2=(""+repr(percentDone) + "% Completed!" )
  33.     print (message1)
  34.     print (message2)
  35.     i=i+1
  36.     if (i>count):  # leave the loop when count fulfilled (not really necessary)
  37.         break
  38.     time.sleep(t)   # wait the defined time t(s) between pictures
  39. print ("Finished!" ) # print to show when finished


 
ftp : 178.211.xxx.xxx
User Arduino
PW xxxx
Dossier :  /FTP_ARDUINO
 
Belle soirée,
 
 


---------------
Guy Muller
Reply

Marsh Posté le 21-03-2017 à 20:28:15   

Reply

Marsh Posté le 22-03-2017 à 08:18:53    

La solution simple et rapide est de monter le FTP avec curlftpfs.
La solution propre serait d'implémenter directement le transfert FTP dans le script mais il n'est pas structuré pour ça.
 
Dernière solution, avoir un autre script qui écoute rt synchronise le répertoire.
 
Pour boucler à l'infini, c'est simple si tu connais quelques bases en programmation. Évidemment les calculs de ℅ et de temps restant n'auront plus aucun sens.


---------------
sheep++
Reply

Marsh Posté le 22-03-2017 à 19:34:34    

merci
belle soirée

Reply

Marsh Posté le 28-03-2017 à 12:08:37    

Salut, je lache ça ici, sait-on jamais.
Il existe un outils de synchro très puissant sur Linux.
Il s'appèle Rsync, je pense qu'avec ton bout de code, rsync et une tache crontab, tu peux tout automatiser.


---------------
--- Mon topik d'Ach/Ven ---
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed