Prise de photos à heures précies


#1

Bonjour à tous,
J’ai acheté récemment une camera compatible pour mon rpi2 pour but de surveiller mon compteur électrique, donc prendre à des heures précises, chaque jour, une photo pour encodage des index manuellement plus tard.
J’ai bien cherché un peu sur le net après des infos pour le codage mais la commande d’heure risque de me poser problème…

Le schéma que j’aimerais devrait etre comme suit :

  1. Prise de la photo (p.e. 5h30)
  2. Horodatage sur la photo
  3. sauvegarde de la photo nomméé avec date, heure et minute

Merci pour votre aide.


#2

Salut @pubs_lago

Très facile.

1 - Tu donnes un instruction pour crontab pour lancer un script à l’heure voulue (ça peut être tous les jours mais 1 seule fois/jour, toutes les semaines, toutes les 2 minutes, …)
2 - Le script (python) réalise une photo et l’enregistre au format date.

Je te laisse chercher un peu mais je crois que j’ai déjà la solution toute faite (mais c’est plus cher :wink: )

++


#3

Merci pour ta réponse.

Effectivement, Cron va m’aider. J’avais cherché un peu et j’étais tombé dessus.
Je reviens si j’ai besoin et meme pour confirmer.

Merci encore.


#4

Re,
Bon, chez moi, ça fonctionne :slight_smile:

nano lago.py

puis tu colles ça :

#!/usr/bin/python3
# -*- coding: utf-8 -*
import time
from datetime import datetime
import os


def PrisePhoto(NomPhoto): #prendre une photo avec Raspistill avec délai de 5 secondes avant photo
    command = "sudo raspistill -t 5000 -w 1200 -h 675 -o "+ NomPhoto +" -q 100"
    os.system(command)


if (os.path.isdir("/home/pi/Desktop/photos-compteur") == False): # si le dossier pour stocker les photos n'existe pas       
   os.mkdir("/home/pi/Desktop/photos-compteur")                  # alors on crée le dossier (sur le bureau)
   os.chmod("/home/pi/Desktop/photos-compteur",0o777)            # et on change les droits pour pouvoir effacer des photos

        
#on génère le nom de la photo avec heure_min_sec
date_today = datetime.now()
nom_image = date_today.strftime('%d_%m_%H_%M_%S')

        
#on déclenche la prise de photo
chemin_photo = '/home/pi/Desktop/photos-compteur/'+nom_image+'.jpeg'
PrisePhoto(chemin_photo) #Déclenchement de la prise de photo

Pour cron, perso, je fais
sudo nano /etc/crontab
en ajoutant
30 05 * * * pi python3 /home/pi/lago.py
(bon, j’avais mis un autre horaire pour vérifier que ça fonctionne, mais là, c’est pour 05h30)

mais regarde ça :

++


#5

:dizzy_face:
bouh !

Bon ben je ne m’attendais pas à un coup de main pareil !!!
Je teste ca sur mon py et je vous confirme tout cela !

Un grand merci en attendant
:kissing_heart:


#6

J’ai un défaut.
Je prends comme mission personnelle bien des choses ; un peu s’coué le gars :crazy_face:

Bon, j’ai poussé le vice à faire un script cool :
entre ta demande et une demande via courriel d’aide sur un photomaton, j’ai intégré l’automatisation de l’expédition par courriel de la photo prise :slight_smile:


#7

Ca y est j’ai réussi à faire quelque chose de différent par rapport à mon début…
Une mise en attente de mon projet principal pour surveiller une des poules de mon beau père qui casse les oeufs sur le “pondoir”…
:rofl:

Merci du coup de main en attendant !!


#8

Yo,
Je suis comme le Père Noël ; j’aime l’idée de rendre les gens heureux.
Donc, je suis content !
Tu peux éditer ton premier message (avec le crayon) et insérer [Résolu] dans le titre ?
Ça permet d’indiquer à la communauté que ce sujet à trouvé réponse satisfaisante.
++


#9

Ok, je vais mettre cela en résolu :smile:
J’ai un peu planché sur la crontab et ajouté quelques horaires, j’ai également installé rclone sur google drive pour retrouver mes photos…
J’avance, c’est bien !
Dernière chose, peux tu me donner le code pour ajouter le nom du fichier sur l’image directement ?
J’ai essayé en m’inspirant de ce que je j’ai trouvé sur project raspberry mais cela ne colle pas avec ta manière de coder…

Voici le code à ma sauce :

#!/usr/bin/python3
# -*- coding: utf-8 -*
import time
from datetime import datetime
import os

def PrisePhoto(NomPhoto): #prendre une photo avec Raspistill avec délai de 5 secondes avant photo
    command = "sudo raspistill -vf -hf -t 5000 -w 1200 -h 675 -o "+ NomPhoto +" -q 100"
    os.system(command)

if (os.path.isdir("/home/pi/Pictures/photos-compteur") == False): # si le dossier pour stocker les photos n'existe pas       
   os.mkdir("/home/pi/Pictures/photos-compteur")                  # alors on crée le dossier (sur le bureau)
   os.chmod("/home/pi/Pictures/photos-compteur",0o777)            # et on change les droits pour pouvoir effacer des photos
        
#on génère le nom de la photo avec heure_min_sec
date_today = datetime.now()
nom_image = date_today.strftime('%y_%m_%d_%H_%M_%S')
     
#on déclenche la prise de photo
chemin_photo = '/home/pi/Pictures/photos-compteur/'+nom_image+'.jpeg'
PrisePhoto(chemin_photo) #Déclenchement de la prise de photo

Merci pour ton retour, qui sera sans nulle doute rapide !

Laurent.


#10

Yo,

Tu veux écrire directement sur l’image ?
Un truc du genre ?

A noter que le nom du fichier est “Raspicam_30-06-2019_21-45.jpg”