i took the older version of you code, Plant_q, commented out and #if 0'd most the code that I can't compile because i don't have your libraries, added some Serial prints and modified some of the code to demonstrate how to use millis() to execute digitalWrite(PUMP_PIN, HIGH) in autoControlPlantation(). see attached zip
int pumpOn = 1;
void autoControlPlantation(void)
{
char s[200];
unsigned long currentMillis = millis();
sprintf (s, " %s: cur %6ld, prev %6ld, pumpOn %d",
__func__, currentMillis, previousMillis, pumpOn);
Serial.println (s);
if (moisture_percentage < DRY_SOIL)
{
if (pumpOn && currentMillis - previousMillis >= interval) {
digitalWrite(PUMP_PIN, HIGH);
pumpOn = 0;
}
else {
#if 0
previousMillis = currentMillis;
#endif
digitalWrite(PUMP_PIN, LOW);
}
}
here is the associated output
Plant_q
autoControlPlantation: cur 0, prev 0, pumpOn 1
autoControlPlantation: cur 503, prev 0, pumpOn 1
autoControlPlantation: cur 1004, prev 0, pumpOn 1
autoControlPlantation: cur 1505, prev 0, pumpOn 1
autoControlPlantation: cur 2006, prev 0, pumpOn 1
autoControlPlantation: cur 2506, prev 0, pumpOn 1
autoControlPlantation: cur 3008, prev 0, pumpOn 1
autoControlPlantation: cur 3509, prev 0, pumpOn 1
autoControlPlantation: cur 4009, prev 0, pumpOn 1
autoControlPlantation: cur 4510, prev 0, pumpOn 1
autoControlPlantation: cur 5011, prev 0, pumpOn 1
autoControlPlantation: cur 5512, prev 0, pumpOn 1
autoControlPlantation: cur 6012, prev 0, pumpOn 1
autoControlPlantation: cur 6513, prev 0, pumpOn 1
autoControlPlantation: cur 7015, prev 0, pumpOn 1
autoControlPlantation: cur 7516, prev 0, pumpOn 1
autoControlPlantation: cur 8016, prev 0, pumpOn 1
autoControlPlantation: cur 8517, prev 0, pumpOn 1
autoControlPlantation: cur 9018, prev 0, pumpOn 1
autoControlPlantation: cur 9519, prev 0, pumpOn 1
autoControlPlantation: cur 10019, prev 0, pumpOn 1
autoControlPlantation: cur 10521, prev 0, pumpOn 0
autoControlPlantation: cur 11022, prev 0, pumpOn 0
autoControlPlantation: cur 11523, prev 0, pumpOn 0
autoControlPlantation: cur 12023, prev 0, pumpOn 0
autoControlPlantation: cur 12524, prev 0, pumpOn 0
autoControlPlantation: cur 13025, prev 0, pumpOn 0
autoControlPlantation: cur 13526, prev 0, pumpOn 0
autoControlPlantation: cur 14027, prev 0, pumpOn 0
Plant_q2.zip (5.74 KB)