/*****************************************************
** Détecteur de sécheresse dnas un pot de fleur **
** Mesure par sonde capacitive (sortie analogique) ** --> simulée par potentiomètre
** Alimentation prévue par pile CR123 Lithium 3 V **
** Contrôle tension pile et alerte ** --> simulé par potentiomètre
** Alerte sécheresse par clignotement LED **
** Utilisation DeepSleep pour économiser la pile **
** (1 mesure toutes les heures) **
*****************************************************/
#define pinCapteur A1 // Broche de mesure du capteur d'humidité
#define pinCapteurAlim D2 // Broche d'alimentation du capteur d'humidité
#define pinTensionAlim A0 // Contrôle tension pile
#define pinLed D3 // Broche LED d'alerte
#define pinBuzzer D4 // Broche buzzer pile faible
const int humide = 1000; // Valeur sonde sol humide
const int sec = 3000; // Valeur sonde sol très sec
const int seuil = 25; // Seuil d'alerte en % (0->sec 100->humide)
void setup() {
pinMode(pinCapteur, INPUT);
pinMode(pinCapteurAlim, OUTPUT);
pinMode(pinTensionAlim, INPUT);
pinMode(pinLed, OUTPUT);
pinMode(pinBuzzer, OUTPUT);
Serial.begin(115200);
Serial.println("");
Serial.println("Hello, XIAO ESP32-C3!");
Serial.println("Welcome to Wokwi :-)");
esp_sleep_enable_timer_wakeup(1000000); // Réglage durée de veille sur 1 secondes
}
void loop() {
// Alimentation capteur d'humidité
digitalWrite(pinCapteurAlim, HIGH);
delay(100);
// mesure des tensions
int tensionAlim = map(analogRead(pinTensionAlim),0,4096,0,3300); // Tension alimentation en mV
int humiditePC = map(analogRead(pinCapteur),sec,humide,0,100); // Humidité en %
// Couopure alim sonde
digitalWrite(pinCapteurAlim, LOW);
Serial.print("Alim : ");Serial.print(tensionAlim);Serial.print(" mV - Humidite : ");Serial.print(humiditePC);Serial.println(" %");
if(humiditePC < 25) {
digitalWrite(pinLed, HIGH);
delay(100);
digitalWrite(pinLed, LOW);
delay(200);
digitalWrite(pinLed, HIGH);
delay(100);
digitalWrite(pinLed, LOW);
delay(1000);
}
if (tensionAlim < 3000) {
digitalWrite(pinLed, HIGH);
digitalWrite(pinBuzzer, HIGH);
delay(200);
digitalWrite(pinBuzzer, LOW);
delay(2000);
}
else {
digitalWrite(pinLed, LOW);
digitalWrite(pinBuzzer, LOW);
Serial.println("Mise en veille pour 1 secondes");
//ESP.deepsleep(10e6);
//esp_deep_sleep_start();
delay(1000);
Serial.println("Ce texte ne sera jamais affiche :-( )");
}
delay(1000);
}
Loading
xiao-esp32-c3
xiao-esp32-c3
Sonde d'humidité capacitive
Humide <----- -----> Sec