Go Down

Topic: AQUABOUN'S /// GESTION D'AQUARIUM RECIFAL (Read 71377 times) previous topic - next topic

djbouns

Pour info,
Je suis super content car c'est un "détails" que je voulait absolument arriver a faire ...

La prochaine version de l'aquabouns seras capable de géré les pompe de brassage TUNZE sans aucune modification de la pompe ni du boitier ! (contrairement au pompe Jebao)

C'est un grand pas pour les recifalistes lol


J-M-L

Alors si c'est un grand pas pour les récifalistes, ça vaut un encouragement :)


Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

djbouns


djbouns

Code: [Select]
#include <Wire.h>
#include "RTClib.h"
RTC_DS3231 rtc;

void setup() {
  Wire.begin();
  Serial.begin(115200);
  rtc.begin();
}
void loop() {
  bool horlogeDS3231 = false;
  Wire.beginTransmission(DS3231_ADDRESS);
  byte error = Wire.endTransmission();
  if (error == 0) {
    Serial.println("DS3231 connecté");
    horlogeDS3231 = true;
    if (rtc.lostPower()) {
      Serial.println("le DS3231 n'as jamais été mis a l'heure ou n'as plus de batterie");
    }
    else {
      Serial.println("DS3231 initialision OK");
    }
  }
  if (horlogeDS3231 == false) {
    Serial.println("DS3231 non connecté");
  }
  delay(5000);           // wait 5 seconds for next scan
}

djbouns

petite question même si je suis quasi sur que ca va être négatif …
Lors du boot et de toutes anomalies, j'écris sur la carte SD

Y a t 'il un moyen de différencier un boot fait manuellement (bouton reset ou pin reset) par rapport au autre ?

Si non, la solution serait de faire sur l'écran un bouton reset, et lorsque on click on ecrit sur la carte SD puis avec  un montage avec un 2n2222 on active le pin reset ?

Ou y a un autre moyen ?
 

bricofoy

il me semble qu'il y a moyen de différentier un boot via la pin reset (sans coupure d'alim) et un boot par mise sous tension, mais je ne sais plus où j'ai lu ça...
-tu savais que si tu passe le CD de windows à l'envers, tu entends une chanson satanique ?
-non, mais il y a pire : à l'endroit, ça l'installe !

J-M-L

#1086
May 20, 2019, 11:28 pm Last Edit: May 20, 2019, 11:35 pm by J-M-L
Sur un ATMEGA, il faut  regarder du côté du  registre MCUSR si je me souviens bien mais le bootloader qui prend la main va jouer avec et vous ne pourrez pas le lire.. faudrait virer le bootloader..

Édit:
avec Optiboot lire ceci
MCUSR cf page 46 de la datasheet
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

djbouns

#1087
May 21, 2019, 08:42 am Last Edit: May 21, 2019, 08:42 am by djbouns
J'ai penser a un truc aussi …
Si je fait un bouton reset sur l'ecran,*
un click dessus ecrit sur la carte sd qu'un reset manuel a été demander
Puis on boucle a l'infini dans le vide …
Le watchdog va rebooter

Et je serait que c'est du a une commande manuel.
Si j'ai pas d'écriture sur la carte sd c'est que c'est un reboot intempestif

La logique est bonne ?

J-M-L

Oui ça peut le faire à condition bien sûr que le watchdog fonctionne
N'oubliez pas qu'un reset est local donc si vous avez d'autres modules (gsm, esp32,...) il faut prévoir de leur faire un reset propre aussi en cascade sinon au reboot de votre arduino le tout pourrait être sans un état incohérent
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

djbouns

Quote
N'oubliez pas qu'un reset est local donc si vous avez d'autres modules (gsm, esp32,...) il faut prévoir de leur faire un reset propre aussi en cascade sinon au reboot de votre arduino le tout pourrait être sans un état incohérent
c'est déjà prévu au démarrage de l'aquabouns :)
petit reboot du gsm et esp puis petite pause … et initialisation :)

Je vais tester cette méthode car en plus de faire se que je veut, elle ne nécessite aucune modif hardware :)

Par contre y a t'il quelque chiose de sous entendu dans
Oui ça peut le faire à condition bien sûr que le watchdog fonctionne
? des problèmes connu ?

J-M-L

non - sauf si vous appelez wdt_disable() et que vous oubliez de le réactiver plus tard :)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

djbouns

#1091
May 21, 2019, 10:46 am Last Edit: May 21, 2019, 10:46 am by djbouns
non - sauf si vous appelez wdt_disable() et que vous oubliez de le réactiver plus tard :)
J'ai aucune raison de le faire donc Ok :)
Merkiii

djbouns

Bonjour,

Le projet du filtre a papier est fini, le tuto fait et tout mis a dispo :)

Sinon au lieu d'enchaîner tous les if else vous pourriez prendre une approche machine à états - ça présente l'avantage d'être plus évolutif si nécéssaire
j'ai lu le tuto sur les machine a état et je suis repartie de zéro du coup :/
c'est par ici :)

J-M-L

#1093
May 27, 2019, 11:07 am Last Edit: May 27, 2019, 11:07 am by J-M-L





(allez, car il faut toujours une petite critique constructive, vous auriez pu rajouter un : byte pour vos enum de façon à économiser un octet par variable :) )

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

djbouns

#1094
May 27, 2019, 11:44 am Last Edit: May 27, 2019, 11:45 am by djbouns



Mdrrr

Si y a que ca, ca va :)

Il déclare en quoi sans cela ? Uint8_t ?

Go Up