RTC et poulailler

Bonjour amis programmateurs! :smiley:

Je suis actuellement dans la dernière phase de développement de mon projet de poulailler automatique.
Après 2 mois de programmation, débogages et d'essais je touche au but, enfin presque...

Le projet réalisé est une trappe qui s'ouvre et se ferme soit avec la lumière ou soit par l'intermédiaire de boutons poussoirs (priorité au forçage via les boutons). Tous cela fonctionne très bien en pratique, aucun conflit à déclarer : programme conforme au cahier des charges.

A côté j'ai réussi à faire fonctionner mon RTC (DS3231) avec mon afficheur LCD, cette fois-ci en suivant ce tutoriel très bien fait : Arduino NANO – Horloge temps réel | Do It Yourself
En gros, il y a un programme pour le réglage de l'heure manuellement (au début) et un deuxième pour l'affichage sur le LCD.

Si je résume j'ai donc au total sur mon Arduino 3 fichiers : 2 pour le RTC et le programme principal).
Maintenant pour ajouter la touche final à mon programme principal j'aimerai rajouter des sécurités dans mes séquences d'ouverture et de fermeture en fonction de l'heure dans mon programme principal :

  • si il est 22h et que la trappe n'est pas fermée => fermeture
  • si il est 08h et que la trappe n'est pas ouverte => ouverture

Voici donc ma question : est-ce possible de récupérer l'heure et les minutes et les impliquer dans mon programme principal pour créer mes nouvelles conditions ?

Afin de respecter le cycle naturel des animaux, il y a mieux que 22H et 8H : l’heure de lever et coucher du soleil.

Extrait d’un code personnel :

bool faitIlJour(void)
{
  time_t now;

  DateTime utc = rtc.now();
  now = utc.unixtime();
  time_t sunRise = sun_rise(&now);
  time_t sunSet = sun_set(&now);
  return now >= sunRise && now <= sunSet ? true : false;
}

Bonjour hbachetti,

Je dois t’avouer que je n’arrive pas à déchiffrer tes quelques lignes de code…
Tu compiles les heures de lever (time_t sunRise) et de coucher (time_t sunSet) depuis une base de données ?

De mon côté j’ai essayé d’importer les valeurs contenus des byte “heure” et “minute”, sans succès :

#include <RTClib.h>
#include <Wire.h>
#include <Time.h>

int date_heure = heure();  // variable date_heure contient l'heure actuelle
int date_minute = minute(); // variable date_minute contient la minute actuelle
int date_seconde = seconde(); // variable date_seconde contient la minute actuelle

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  if ((date_heure == 22) && (date_minute == 0){ // Si il est 22h et 0 minute
  Serial.println("Fermeture trappe"); // Affichage sur le moniteur série du texte
  }
}

Non, j'utilise deux fonctions de la librairie standard C qui permettent de calculer l'heure du lever et coucher du soleil à partir de la date courante.

D'accord, je viens de trouver ces librairies dont fais référence dans "Library Manager" (Sunrise.h)

Mais en gros le but de mon programme n'est pas que la trappe ne se ferme (ou s'ouvre) par rapport à l'heure de coucher (ou de lever), mais par rapport à ma LDR et ses seuils de lumières. Les 2 heures (22h et 08h) font plus office de "derniers remparts" si il y a dysfonctionnement de la photorésistante.

Comment importer les bytes "heure" et "minutes" du RTC et les lire dans mon programme principal ?

Je ne vois pas comment tu peux détecter un dysfonctionnement de photorésistante.

Il faut utiliser une bibliothèque pour exploiter ta RTC. Le choix dépend de la RTC utilisée.

Choisis ta biblio, installe-la et fait tourner les exemples fournis avec.
Etudie ces exemples et tu auras réponse à ton problème.

jeansopep:
D'accord, je viens de trouver ces librairies dont fais référence dans "Library Manager" (Sunrise.h)

Il n'y a aucun besoin d'installer une librairie.
Il suffit d'inclure time.h (je ne parle pas de Time.h).

La librairie Sunrise est certes plus complète, mais son utilisation est un peu plus complexe.

Choisis ta biblio, installe-la et fait tourner les exemples fournis avec.
Etudie ces exemples et tu auras réponse à ton problème.

Mon RTC est un DS3231, je vais donc regarder les librairies associées à ce modèle et étudier des exemples.

Merci!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.