Je suis sur un projet d'un automate pour aquarium.
Jusqu'ici, ls parties éclairage, lune, osmolation, temperature sont finis.
Je souhaite ajouter une fonctionnalité intéressante qui serait de synchroniser l’éclairage avec les vrais heures de lever et coucher du soleil.
Je ne vois pas comment m'y prendre pour stocker un tel calendrier.
Souvent, tu laisses ton aquarium le soir pour le voir car la journée tu travailles...
Donc si le soleil se lève à 6h en réel, il faut pouvoir décaler la journée avec un lever de soleil à 12h.
D'ou un stockage des éphémérides.
Ben... une cellule photoélectrique et tu retardes les actions de 6 heures avec la fonction millis, comme ça pas de calcul compliqués pour l'éphéméride et pas de stockage dans une bdd.
@Jean-François: Impossible pour la cellule, ma batterie d'aquarium est dans le sous sol, donc pas de lumière extérieure. @MM38: je regarde tout ça dans l'aprem.
Tu devrais faire une recherche sur le forum (sur l'ancien aussi). Le sujet a déjà été abordé aussi bien sur le forum français que sur celui en langue anglaise.
TimeLord permet pas mal de chose (calcul phase lune, etc..) mais pour ce qui concerne le lever et coucher elle retourne 1 ou 0 si le soleil est levé ou couché. Mais aucune heure de lever ou coucher.
SunRise retourne l'heure de lever et coucher mais les résultats me semblent faux.
voici comment je procède:
#include <Sunrise.h>
int jour = 21;
int mois = 4;
int annee = 11;
int fuseau_horaire = +1;
float latitude = 48.083333;
float longitude = -1.683333;
Sunrise soleil(latitude, longitude, fuseau_horaire);
void setup(){
Serial.begin(9600);
soleil.Actual(); //Actual, Civil, Nautical, Astronomical
}
void loop(){
byte h,m;
int t;
// Lever
t = soleil.Rise(jour, mois);
if(t >= 0){
h = soleil.Hour();
m = soleil.Minute();
Serial.print(h, DEC);
Serial.print(":");
if(m<10) Serial.print("0");
Serial.print(m,DEC);
Serial.print(" - ");
}
// Coucher
t = soleil.Set(jour ,mois);
if( t >= 0){
h = soleil.Hour();
m = soleil.Minute();
Serial.print(h, DEC);
Serial.print(":");
if(m<10) Serial.print("0");
Serial.println(m,DEC);
}
delay(2000);
}
Le décallage est énorme, j'ai remarqué qu'il n'était pas nécessaire d'indiquer l'année, et je pense que l'année est importante.
Mes coordonnées géographique ne sont pas les même que le site de météo car je connais leurs coordonnées mais bon, la différence est trop importante.
Juste en passant, pourquoi veux tu simuler des levers/coucher variable en fonction de la réalité locale ?
Que maintiens tu comme espèce qui vive sous des latitudes où les temps d’éclairage soient variables en fonction de la saison ?
Curiosité, car la plupart des aquariophiles dont je fais parti, maintiennent des espèces tropicales où les plages jour/nuit sont constantes (12h/12h). Certes, le cycle lunaire peut être intéressant, pour les cycles de reproduction, mais hormis cela… Je pense que ce ne serait pas un bien pour les animaux.
Je cherche a réaliser un cycle le plus fidèle possible, pour le fun et non pour la reproduction.
Mon objectif, pourvoir synchroniser mon bac avec un point géographique de la planète
Eclairage variable suivant les durées d'ensoleillement
Lune variable suivant heure de lever et coucher et phase
Température variable suivant les saisons
Etc...
Je ne suis pas d'accord avec toi sur le fait que ce ne serait pas un bien pour les animaux.
Dans la nature les cycles ne sot pas constant avec du 12h/12h
Sachant que le temps d'ensoleillement est a peine différent d'un jour à l'autre, cela ne posera aucun problème à nos chers petits poissons, ni a nos chères petites plantes.
Mais inutile pour le bien être d'un aquarium..., ça c'est sur ! ^^
Pour la lune, le problème est encore différent.
La seul chose importante est de laisser un éclairage minimum afin que les parents surveillent correctement leurs alevins.
Donc phase ou pas phase... peu importe.
Cela peu surement déclencher une ponte..., mais j'en doute fortement.
Pour le chauffage, on est certains que la température des eaux en hivers et en été est différente.
Donc si on veut une moyenne à 28°
janvier 27,5°
juin 28°
septembre 28,5°
décembre 28°
Le duomat deluxe de chez Dennerle a cette fonctionnalité.
Bon je suis toujours sur mon décalage, rrr !
Pour info, c'est pour mon bac à discus et je double mon boitier pour récifal.
Il faut malgré tout que tu codes un mode par défaut en cas de panne, ensuite, à toi d'estimer combien de temps peut durer une panne... et à partir de quand tu en sera mis au courant, à ce moment tu peux choisir de basculer le système sur un mode manuel ou automatique basé sur une autre source d'info.
Sur un API, je vais récupérer au maximum les informations suivantes:
heure lever soleil
heure coucher soleil
heure lever lune
heure coucher lune
phase lune
couverture nuageuse
les autres paramètres sont inutiles (température extérieure, pression atmosphérique, etc...)
je suis obligé de calculer des paramètres qui ne seront pas fournis par l'API, comme par exemple l'angle du soleil afin de faire un allumage progressif des leds ou des différentes rampes de néons et HQI.
A savoir que les paramètres de l'api sont calculable avec la longitude et la latitude, prk faire une connexion internet si c'est pour recalculer derrière, seul la couverture nuageuse n'est pas calculable, mais je peux la remplacer avec une fonction aléatoire (jour sans nuage, avec peu de nuage, etc... avec de l'aléatoire d'ans tous les sens...)
Hummm, je me tâte..., c'est pas la même chose entre de l'aléatoire et du réel.
En gros, tu branches ton ethernet sur une prise que tu branches sur une prise 220V, idem du coté de ton modem, et tu as un réseau via ton circuit électrique de ta maison ^^. Plus rapide que du wifi et peu de cable. Par contre, les CPL n'aiment pas les multi-prises et généralement sur un aquarium tu as bcp de prises.
Sur la version actuel de mon programme, j'ai 16 relais, 4 sondes. Même si tout est branché sur les relais, je doute que le CPL aime ça.
De toute façon, je vais passer par la car la config du programme se fait via une interface web. Etant développeur web, j'en profite pour me faire plaisir avec une interface bien ficelé et des graphs dans tous les sens pour les historiques ^^