diff --git a/config.hpp b/config.hpp index e382796..1adb1ea 100644 --- a/config.hpp +++ b/config.hpp @@ -20,7 +20,7 @@ constexpr unsigned int SECOND = 1000; constexpr unsigned int MINUTE = SECOND * 60; constexpr unsigned int HOUR = MINUTE * 60; -constexpr unsigned int MEASUREMENT_COUNT = 3; +constexpr unsigned int MEASUREMENT_COUNT = 1; constexpr int MEASUREMENT_DELAY = 10; /// Pots will always be watered below this humidity @@ -42,7 +42,7 @@ constexpr int WATER_TIME_MS = 3 * SECOND; constexpr int LOOP_DELAY_MS = 1 * SECOND; // TODO set higher once it is working /// minimum amount of time to wait between watering each pot, even when minimum wetness has been reached -constexpr int MIN_WATERING_INTERVAL_MS = 1 * MINUTE; +constexpr int MIN_WATERING_INTERVAL_MS = 1 * SECOND; // TODO set higher once it is working /// maximum amount of time to wait between watering each pot, as long as maximum wetness has not been reaached constexpr int MAX_WATERING_INTERVAL_MS = 24 * HOUR; diff --git a/drop.ino b/drop.ino index 50f38bf..6497b83 100644 --- a/drop.ino +++ b/drop.ino @@ -16,6 +16,17 @@ void setup() { pinMode(PUMP_LED_PIN, OUTPUT); pinMode(PUMP_PIN, OUTPUT); + pinMode(LED_BUILTIN, OUTPUT); + + // link pots to their config + for (unsigned int i = 0; i < POT_COUNT; i++) { + Pot *pot = &pots[i]; + + pot->config = &POT_CONFIGS[i]; + + pinMode(pot->config->valve_pin, OUTPUT); + pinMode(pot->config->led_pin, OUTPUT); + } } void loop() { @@ -33,11 +44,6 @@ void loop() { void per_pot(Pot &pot) { int percentage = get_humidity(pot.config->sensor); - if (percentage < 0) { - Serial.println(F("sensor not connected")); - return; - } - Serial.print(percentage); Serial.println(F("%")); @@ -57,6 +63,8 @@ void per_pot(Pot &pot) { } void water_pot(Pot &pot) { + digitalWrite(LED_BUILTIN, HIGH); + digitalWrite(pot.config->led_pin, HIGH); set_valve(pot.config->valve_pin, HIGH); @@ -69,6 +77,8 @@ void water_pot(Pot &pot) { set_valve(pot.config->valve_pin, LOW); digitalWrite(pot.config->led_pin, LOW); + + digitalWrite(LED_BUILTIN, LOW); } /// get humidity sensor value as a percentage @@ -81,7 +91,7 @@ int get_humidity(Sensor &sensor) { delay(MEASUREMENT_DELAY); } - sensorVal /= MEASUREMENT_COUNT; + sensorVal /= MEASUREMENT_COUNT; // Sensor has a range of e.g. 236 to 520 // We want to translate this to a scale or 0% to 100%