IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[datetime], [time], [RPi.GPIO] - Intercrépusculaire


Sujet :

Python

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 1
    Par défaut [datetime], [time], [RPi.GPIO] - Intercrépusculaire
    Bonjour,

    Je me permets de vous déranger car j'ai un petit problème, en effet je suis entrain de créer une sorte d'intercrépusculaire avec ma raspberry pi un mcp3008 une photorésistance ainsi que d'une résistance.

    J'arrive à allumer la lumière à partir de 17h s'il fait nuit sinon plus tard automatiquement en fonction de la luminosité mais je voudrais que l'éclairage s'éteigne à 1h du matin mais le lendemain et c'est à ce moment que je coince.

    Je vous mets mon code pour que vous puissiez voir comment ça tourne dans ma tête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    # Création des différentes variables qui permettent de récupérer l'heure réelle et de créer une heure
    today = datetime.time(datetime.now())
    soirstart = today.replace(hour=17, minute=0, second=0, microsecond=0)
    soirstop = today.replace(hour=1, minute=0, second=0, microsecond=0)
    matinstart = today.replace(hour=6, minute=0, second=0, microsecond=0)
    matinstop = today.replace(hour=7, minute=0, second=0, microsecond=0)
     
    # Affichage des variables pour voir si tout est bien paramétré 
    print("today : " + str(today))
    print("soir start : " + str(soirstart))
    print("soir stop: " + str(soirstop))
    print("matin start : " + str(matinstart))
    print("matin stop : " + str(matinstop))
     
    # Valeur c'est la valeur que me renvoi la photoresistance
     
    # Si la valeur est supérieure à 900 et l'heure est comprise entre 17h et le lendemain 1h du matin alors allume
    # Sinon si la valeur est supérieur à 900 et l'heure est comprise entre 6h du matin et 7h du matin alors allume
    # Sinon eteint
    if (valeur > 900) and (soirstart<today<soirstop):
            print("Soir")
            GPIO.setup(21, GPIO.OUT)
     
    elif (valeur > 900) and (matinstart<today<matinstop):
            print("Matin")
            GPIO.setup(21, GPIO.OUT)
     
    else :
            print("Pas de lumière")
            GPIO.setup(21, GPIO.IN)
     
    # On attend 0.5 seconde et on recommence 
    time.sleep(0.5)
    donc comme vous pouvez le voir j'ai paramétré des heures auxquelles je veux que ça s'allume et que ça s'éteigne mais le hic c'est pour "soirstop" car je peux ajouter une journée a la date mais dès qu'il sera minuit a l'heure réelle je passerai encore sur le jour d'après et ainsi de suite

    J'espère que vous pourrez m'aider à résoudre ce petit problème

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Tu relèves l'heure au début du code mais tu ne la mets pas à jour après cela. Donc quand tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (valeur > 900) and (soirstart<today<soirstop):
    tu compares avec l'heure du début d'exécution du code.

    Dans l'état de ton code ça ne change rien puisqu'il ne s'exécute qu'une seule fois, mais ça, je suppose que ce n'est pas voulu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    # On attend 0.5 seconde et on recommence 
    time.sleep(0.5)
    on recommence quoi ?

Discussions similaires

  1. Datetime sans time avec sql server ?
    Par FamiDoo dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 17/07/2012, 09h38
  2. Manipulation de datetime/time
    Par Haelle dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/01/2012, 18h20
  3. use Time::Local; Datetime(now)
    Par ecureuilmasque dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2009, 11h06
  4. SWT-DateTime format TIME
    Par kookee dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 12/10/2008, 18h58
  5. Conversion d'une donnée DateTime SQL en Time
    Par dcarroz dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/06/2008, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo