C'est désormais quasiment tout bon, effectivement l'utilisation d'un vieux pc portable pour vérifier avec le moniteur série est parfait pour trouver les erreurs.
Désormais la dernière étape avec l'ajout d'un petit écran afin d'afficher la température de la piscine et des panneaux solaires... la commande est passée, je vais chercher quelques sites, si vous avez des conseils...
Voici la partie nécessitant des boucles if non bloquantes :
unsigned long dateCourante = millis();
unsigned long intervalle = dateCourante - dateDernierChangement;
// Si état pompe est off && intervalle > 3600000
if (tempPanel <= tempBottom + paramDeltaTempStart && intervalle > 360) {
// Alors on ecrit sur la carte sd
myFile = SD.open("test.txt", O_RDWR | O_APPEND);
if (myFile) {
myFile.print(rtc.getDateStr());
myFile.print(";");
myFile.print(rtc.getTimeStr());
myFile.print(";");
myFile.print("Ts:");
myFile.print(tempPanel);
myFile.print(";");
myFile.print("Tp:");
myFile.print(tempBottom);
myFile.print(";");
myFile.print("Pompe:");
myFile.println(etat);
myFile.close(); // close the file
}
// if the file didn't open, print an error:
else {
Serial.println("error opening test.txt");
delay(3000);
}
dateDernierChangement = dateCourante;
}
// Si état pompe est on && intervalle > 120000
if (tempPanel <= tempBottom + paramDeltaTempStart && intervalle > 120000) {
// Alors on ecrit sur la carte sd
myFile = SD.open("test.txt", O_RDWR | O_APPEND);
if (myFile) {
myFile.print(rtc.getDateStr());
myFile.print(";");
myFile.print(rtc.getTimeStr());
myFile.print(";");
myFile.print("Ts:");
myFile.print(tempPanel);
myFile.print(";");
myFile.print("Tp:");
myFile.print(tempBottom);
myFile.print(";");
myFile.print("Pompe:");
myFile.println(etat);
myFile.close(); // close the file
}
// if the file didn't open, print an error:
else {
Serial.println("error opening test.txt");
delay(3000);
}
dateDernierChangement = dateCourante;
}