Vous utilisez un navigateur obsolète. Il se peut qu'il n'affiche pas correctement ce site ou d'autres. Vous devez le mettre à niveau ou utiliser un navigateur alternatif.
Pinpin !! Alors excuse moi de la véracité de ma réponse ! Ton message m'as un poil cassé le moral .. je code comme un fou ( avec mes pieds certes ) a trouver des bouts de code que je peux rajouter , quand je trouve , faut que je les rajoutes , un fois rajouté y'as toujours une c***lles quelque part que je passe 4 heures a corrigés ...
Je suis partis de ce code , car je n'ai aucun moyen de créer le miens par mes propres moyen et c'était le seul aussi lisible que facile a modifier pour une personne n'ayant jamais touché au langage C , et le matos requis est plus que minimaliste d'ou l’intérêt de partir de cette source pour un partage futur
Ne te prend pas la tête a ré-écrire le code avec tes projets en cours , j'imagine bien que tu n'as pas que ça as faire .. après si tu comme dis un de ces 4 tu le ponds .. je t'en remercie d'avance , car je pense qu'un bon code , bien fait et bien commenté ne pourras que être bénéfique a la compréhension du langage C ou même mieux aider a comprendre le code du MiniGrowDuino pour touts les novice du forum
Encore désolé du quiproquo @Gen, merci d'avoir rectifié !
Ahhh ! bah je pense que tu vas faire des heureux y compris moi ! entre Papy qui est très libertin et toi qui fait dans Sado-masochisme je pense que je me suis peut être trompé dans le titre du site internet ou je me trouve ..
je me permet de te poser une ou deux questions ? vue que je t'ai sous la main
Sur ce code que tu vas pondre y'aura t'il un exemple du fonctionnement RTC , car ce code fonctionne avec la lib DS1307 .. mais je n'ai que des horloges 3132 ( sa marche, mais la lib date et elle affiche la date et l'heure mais ne contient pas grand chose d'autre )
je voulais savoir aussi , si avec l'eeprom de l'horloge 3132 l'on pourrait automatiser une sauvegarde des datas de la DHT pour faire une page comme toi temp & humidité minimum, maximum suivis de la date a laquelle ces datas on était sauvegardés ??
Je sais pas si je me suis bien exprimé , je m'excuse d'avance pour le maux de tête occasionné
Sur ce code que tu vas pondre y'aura t'il un exemple du fonctionnement RTC , car ce code fonctionne avec la lib DS1307 .. mais je n'ai que des horloges 3132 ( sa marche, mais la lib date et elle affiche la date et l'heure mais ne contient pas grand chose d'autre )
?? bizarre ce que tu me racontes, lors des test de la 3132 pour mon GRCC, je n'ai rencontré aucun problème de ce coté là, car justement je voulais mettre un circuit RTC qui contient un oscillateur à l'inverse du DS1307
je voulais savoir aussi , si avec l'eeprom de l'horloge 3132 l'on pourrait automatiser une sauvegarde des datas de la DHT pour faire une page comme toi temp & humidité minimum, maximum suivis de la date a laquelle ces datas on était sauvegardés ??
Une EEPROM à une durée de vie limitée en terme de lectures et écriture, l'utiliser pour stocker autre chose que des parametres de setup est une mauvaise idée
Dans mon logiciel, les données sont stockées dans un array
Maintenant si tu veux que les données climatiques soient enregistrées de manière non volatile, 2 possibilités s'offrent à toi
1 - une sd card (perso je n'aime pas, on rencontre vite des problèmes)
2 - utiliser une ram avec maintient des données tel qu'un circuit 23LCV1024 (1Mb RAM) la solution que j'ai perso retenue pour mon shield DUE
Laisse tombé pour la lib j'ai dis des conne***s comme d'hab ^^ j'ai melangé mon plus est mon moins /emoticons/default_sleep.png" srcset="/emoticons/[email protected] 2x" title="" width="20" /> ( pour changer )
oui j'ai lu ça a propos de sa durée de vie limité a force d'écrire dessus , c'est pour ça que je venais a toi ...sur cette question , une pichenette derrière les oreilles ... et ou est ce que tu stock ces données volatile ? /emoticons/default_basic-smile.png" srcset="/emoticons/[email protected] 2x" title="" width="18" />
PS : What the F... , tu connectes l'I2C de l’écran sur les ports de l'horloge ... ( pourquoi je trouve pas ça moi !!! /emoticons/default_rolleyes.gif" title="" /> )
ce genre de partage aussi est très appréciable !! /emoticons/default_wub.png" title="" /> Thanks !
perso j' ais fais ça pour la tmax/hmax et tmin/hmin et sa fonctionne
la tempMax et Min est "sauvegarder ?" pendant 24h
int tmin=100;
int tmax=0;
int hmin=100;
int hmax=0;
float t = dht.readTemperature(); //dht22
float h = dht.readHumidity();
int TabEvt [1][3] = {{9,6,00},}; // grow
int TabEvt1 [1][3] = {{11,00,00},}; // flow
if(t >= tmax)
{ tmax=t; }
if(t <= tmin)
{ tmin=t; }
if(h >= hmax)
{ hmax=h; }
if(h <= hmin)
{ hmin=h; }
/ je réinitialise la tmax/hmax et tmin/hmin a l'allumage à l'aide d'un tableau d' événement
if ((digitalRead(A2) == true) && now.hour() == TabEvt [0][0] && now.minute() == TabEvt [0][1] && now.second() == TabEvt [0][2] )
Déjà je vous remercie pour les exemples et les bouts de code avec explications !
la table mémoire Array c'est vraiment sympa de votre part !
Et oui c'est ce que je voulais dire hier a propos de la lib je parlais pas de la 3132 mais de la DS1307 qui apars afficher l'heure ne fait pas grand chose
j'ais commencer en bidouillant le code à windaub pour finalement le changer entièrement gràce aux infos de gen et de google mais je suis novice avec peut-etre quelque moi d'avance sur toi lol.
j 'ai "codé" un automate pour mon aqua au passage lol
Vu que @Gen m'as provisoirement mis au chômage technique /emoticons/default_happy.png" srcset="/emoticons/[email protected] 2x" title="" width="20" />
Je suis tombé sur une source qui date un peu mais un truc vraiment sympa , qui m'intéresse assez vu le coté WIFI et le coût hardware ( wemos + dht = 7.50euro ) je le modifie pour ma box en ce moment même , j'aimerais avoir vos avis si cela pourrait vous intéressez /emoticons/default_basic-smile.png" srcset="/emoticons/[email protected] 2x" title="" width="18" />
tout n'est pas encore fonctionnel , et pour le moment c'est héberger sur le wifi ( réseau local ) je vais voir pour rediriger le port et d'avoir un accès a l’interface ou que l'on soit
Je vous montre :
pour le moment rien de très dur
un montage prototype /emoticons/default_happy.png" srcset="/emoticons/[email protected] 2x" title="" width="20" />
et le résultat :
Les GPIOS ne sont pas fonctionnel pas grand chose ne l’était , peut être que sa viendras /emoticons/default_wink.png" srcset="/emoticons/[email protected] 2x" title="" width="20" />
J'attend vos avis et si intéressés je vous ferais un beau tuto avec tout les liens d’origines
Re : La récré est terminée, fini de te tourner les pouces !!
Le code est restructuré et les fioritures ont été supprimées
J'ai mis en remarque la création des Char car la définition n'en était pas correcte, on créé des array de 8 bytes et on n'en défini que 7 .. Cherchez l'erreur
Vous trouverez dans l'archive, toutes les bonnes librairies pour faire tourner ce projet
Dorénavant, vous pouvez utiliser ce que vous voulez comme RTC, toutes les définitions se trouvent dans le code,
suffit de mettre en remarque ce que vous n'utilisez pas.
Je n'ai bien entendu pas fait le programme à ta place, j'ai assez de taf pour le moment, mais le squelette est complet et cohérent.
Il ne te reste plus qu'à arranger les écran à ta sauce et de faire un setup si nécessaire.
Certaines personnes n'ont pas besoin de setup et mettent les valeurs dans le code en 'dur', chacun fera comme il lui plaira.
Attention, l'assignation des pin a été modifiée !!
le programme fait 330 lignes au lieu de 700.. à l'origine, ce qui fait que vous avez encore plein de place pour faire ce que vous voulez
voici le récap de compil
Device: atmega328p
Program: 11706 bytes (35.7% Full)
(.text + .data + .bootloader)
Data: 741 bytes (36.2% Full)
(.data + .bss + .noinit)
J'ai codé de façon à ce que l'écran principal change toutes les 5 secondes sans utiliser la fonction millis()
Supprimez le si vous voulez, c'est juste fourni à titre d'exemple
A vous de gérer la manière de changer de mode (croissance, floraison, fin de floraison) via un setup et du code, ou à l'aide d'un interrupteur 3 positions, ou automatiquement en fonction des jours écoulés (c'est vous qui voyez)
// MIN MAX
float hygro[3][2] = {{ 20.00, 80.00}, // CROISSANCE
{ 20.00, 60.00}, // FLORAISON
{ 20.00, 50.00}}; // FIN DE floraison
//les temps sont à définir en secondes (valeurs ci-dessous pour test)
int brasseur_duree_jour_ON = 2;
int brasseur_duree_jour_OFF = 2;
int brasseur_duree_nuit_ON = 1;
int brasseur_duree_nuit_OFF = 1;
bool firstScreen = true;
bool displayed = true;
int sol = 0;
int GROWMODE = 0 ; // CROISSANCE tu pourras modifier le status via un interrupteur 3 pos ou via le code ou menu etc..
void intro()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" GrowMyBox Bitch's ");
lcd.setCursor(0, 1);
lcd.print(" Thank's to ");
lcd.setCursor(0, 2);
lcd.print(" Windaube & Gen ");
lcd.setCursor(2, 3);
lcd.print("OMGPROD Edition ");
delay(3000);
lcd.clear();
}
int convertTimeInMinute(int hour, int minute)
{
return (hour * 60) + minute;
}
void setup()
{
initializeLamp();
initializeIO();
initializeLCD();
initializeBrasseur();
//charCreation(); à activer quand la definition des bytes char sera correcte
Serial.begin(9600); // a utiliser pour debugger sur le terminal
dht.begin();
rtc.begin();
// rtc.adjust(DateTime(__DATE__, __TIME__));
intro();
}
void catchData()
{
now = rtc.now();
float temporaryVal;
delay(10);
// ce code permet de garder la dernière valeur correcte
temporaryVal = dht.readTemperature();
if(!isnan(temporaryVal)){t = temporaryVal;}
delay(10);
temporaryVal = dht.readHumidity();
if(!isnan(temporaryVal)){h = temporaryVal;}
delay(10);
//setMinMaxToMemory();
}
//************************************************************************
//** A partir d'ici on peut mettre le traitement d'appuis sur un bouton pour
//** rentrer dans un setup etc..
//************************************************************************
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous permettre de rester connecté si vous vous inscrivez.
En continuant à utiliser ce site, vous consentez à ce que nous utilisions des cookies.