Faire un compteur a eau

Bonjour ,
Etant en terminal S.SI je mène un projet en sciences de l’ingénieur sur une douche solaire .
Pour mener a terme mon projet je dois a travers une arduino créer un programme qui me permet a la fois de pouvoir mesurer le debit en temps reel , mais également la temperature , faire en sorte qu’a 43°C je dois dire a l’utilisateur de baissé la temperature et je dois pouvoir controler le nombre de litres d’eau passé par le debimetre après chaque utilisation et tout cela afficher sur un afficheur .
J’ai reussie a creer un programme pour le debit , la temperature , le controle de temperature et l’afficheur mais je ne sais pas comment faire pour faire le compteur a eau .
Si vous avez des idées ? Merci

Mon code :

#include <Wire.h>
#include <SeeedOLED.h>
#include <OneWire.h>
#include <DallasTemperature.h>

//CAPTEUR DE DEBIT
volatile int NbTopsFan; //mesurer les fronts montants du signal
int Calc;
int hallsensor = 2; //L'emplacement de la broche du capteur
void rpm () // C’est la fonction que l’interruption appelle
{
  NbTopsFan++;  // Cette fonction mesure le front montant et le front descendant du signal des capteurs à effet Hall

}

//CAPTEUR DE TEMPERATURE
OneWire oneWire(2); 
DallasTemperature sensors(&oneWire); 
DeviceAddress sensorDeviceAddress; 

void setup(void){
  
//CAPTEUR DE DEBIT
  pinMode(hallsensor, INPUT);
  Serial.begin(9600); 
  attachInterrupt(0, rpm, RISING); 
  
//CAPTEUR DE TEMPERATURE
 Wire.begin();
 Serial.begin(9600);
 pinMode(SDA,OUTPUT);
 sensors.begin();
 sensors.getAddress(sensorDeviceAddress, 0);
 sensors.setResolution(sensorDeviceAddress, 12);
 
 //AFFICHEUR
 SeeedOled.init();
 SeeedOled.clearDisplay();
 SeeedOled.setNormalDisplay();
 SeeedOled.setPageMode();
 
}

void loop(void){

//CAPTEUR DE DEBIT
  NbTopsFan = 0;   //met NbTops à 0 prêt pour les calculs
  sei();      //Activer les interruptions
  delay (1000);   //Attend 1 seconde
  cli();      //Désactiver les interruptions
  Calc = (NbTopsFan * 60 / 7.5); //(frequence d'impulsation x 60) / 7.5 = débit en litre/Heure
  Serial.print (Calc, DEC); //le nombre calculé ci-dessus
  Serial.print (" Litre/Heure\r\n"); // Ecris "Litre/Heure" et passes a la ligne
  
 //CAPTEUR DE TEMPERATURE
 sensors.requestTemperatures();
 
 //CONSIGNE 43 DEGRE CELSIUS
if (sensors.getTempCByIndex(0)>43);
{
      SeeedOled.setTextXY(7,0);
      SeeedOled.putString("la temperature ");
      SeeedOled.setTextXY(8,0);
      SeeedOled.putString("est trop elevee");
}
if (sensors.getTempCByIndex(0)<43);
{
      SeeedOled.setTextXY(7,0);
      SeeedOled.putString("la temperature ");
      SeeedOled.setTextXY(8,0);
      SeeedOled.putString("est bonne");
}
}
//AFFICHEUR 

 SeeedOled.setTextXY(0,0);
 SeeedOled.putString("La temperature");
 
 SeeedOled.setTextXY(6,0);
 SeeedOled.putString("est ");
 SeeedOled.putNumber(sensors.getTempCByIndex(0));
 SeeedOled.putString(" degre C");

 SeeedOled.setTextXY(4,0);
 SeeedOled.putString("le débit est ");
 SeeedOled.putNumber(Calc);
 SeeedOled.setTextXY(5,0);
 SeeedOled.putString("L/min");

PS: Je dispose comme debimetre d’un YFS201 et d’une Arduino Uno .
( si besoin des noms des autres capteurs merci de me les demander )
A très vite

Vous avez peu de temps pour lire les règles du forum et corriger votre post... ensuite notre modo favori va metttre votre post au rebut

—-

Si vous savez mesurer le débit instantané vous savez détecter le début de consommation (On passe d’un débit nul à Un débit non nul), La fin de consommation (on passe d’un débit non nul à un débit nul). Si vous mesurer la consommation Entre ces deux états, et que vous l’accumulez, Vous aurez ce que vous souhaitez.

C’est typiquement une définition de programme qui se prête bien à la programmation par machine à états (cf mon tuto éventuellement)

je suis debutant en programmation ( c'est mon premier programme ) et je ne comprends pas vraiment comment faire ... je comprends qu'on puisse savoir que le debimetre tourne ou non mais comment calculé la valeur de l'eau passé ? Merci

getwox: je suis debutant en programmation ( c'est mon premier programme )

Pour bien débuter avec l'arduino, un bon point de départ c'est de lire les tutos d'eskimon

getwox: et je ne comprends pas vraiment comment faire ... je comprends qu'on puisse savoir que le debimetre tourne ou non mais comment calculé la valeur de l'eau passé ? Merci

Posez vous la question suivante: Quand vous avez un "tick" (front montant) sur votre capteur, ça veut dire quoi concrètement ? et si vous avez eu 22 ticks pendant une certaine période puis plus rien, qu'est-ce que ça veut dire ?