#define watering 7
const unsigned long day_since_watering = 30000L;
const unsigned long time_to_water = 5000L;
unsigned long startdate;
unsigned long currentdate;
unsigned long start_water_time;
unsigned long current_water_time;
bool pump_on = false;
void setup() {
pinMode(watering,OUTPUT);
Serial.begin(9600);
startdate = millis();
}
void loop() {
currentdate = millis();
if((currentdate - startdate >= day_since_watering) && (pump_on == false))
{
digitalWrite(watering, HIGH);
pump_on = true;
startdate = currentdate;
start_water_time = millis();
}
current_water_time = millis();
if((current_water_time - start_water_time >= time_to_water) && (pump_on == true))
{
digitalWrite(watering, LOW);
pump_on = false;
start_water_time = current_water_time;
startdate = millis();
}
}