#include <Preferences.h>
Preferences preferences;
const char* clef = "temperaturePrecedente";
const float valeurDefaut = -100.0; // Valeur par défaut si la clé n'existe pas
const byte CYD_LED_BLUE = 17;
const byte CYD_LED_RED = 4;
const byte CYD_LED_GREEN = 16;
const byte TEMP_POT_PIN = 14; // pour simuler la température
unsigned long previousMillis = 0;
const unsigned long INTERVAL = 3000; // 3s pour le test
int temperaturePrecedente = -1000;
void eteindre() {
digitalWrite(CYD_LED_RED, LOW);
digitalWrite(CYD_LED_GREEN, LOW);
digitalWrite(CYD_LED_BLUE, LOW);
}
void setup() {
pinMode(CYD_LED_RED, OUTPUT);
pinMode(CYD_LED_GREEN, OUTPUT);
pinMode(CYD_LED_BLUE, OUTPUT);
Serial.begin(115200);
preferences.begin("Memoire", false);
// Vérifier si la clé existe
if (preferences.getBytesLength(clef) == 0) {
Serial.println("La clef n'existe pas. Création avec la valeur par défaut.");
preferences.putFloat(clef, valeurDefaut);
}
temperaturePrecedente = preferences.getFloat(clef, valeurDefaut);
Serial.print("temperature Precedente: "); Serial.println(temperaturePrecedente);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > INTERVAL) {
previousMillis = currentMillis;
int temperatureActuelle = analogRead(TEMP_POT_PIN); // entre 0 et 4095 sur ESP32
if (temperatureActuelle > temperaturePrecedente ) {
// on chauffe
eteindre();
digitalWrite(CYD_LED_RED, HIGH);
Serial.println("PLUS CHAUD");
} else if (temperatureActuelle == temperaturePrecedente ) {
// on est stable
eteindre();
digitalWrite(CYD_LED_GREEN, HIGH);
Serial.println("IDENTIQUE");
} else {
// on est plus froid
eteindre();
digitalWrite(CYD_LED_BLUE, HIGH);
Serial.println("PLUS FROID");
}
temperaturePrecedente = temperatureActuelle;
// stocker temperatureActuelle dans les préférences pour la prochaine fois si reboot
preferences.putFloat(clef, temperatureActuelle);
}
}