From d89bf5b0a6ca2107d907d634e03051a37edad60a Mon Sep 17 00:00:00 2001 From: Frannell Foti <15-08039@usb.ve> Date: Sat, 10 Apr 2021 00:18:22 -0400 Subject: [PATCH] Actualizaciones de las valvulas, el sensor de ph y la bomba de agua --- ...ector_ph-Bombeo_nutrientes_y_agua_V1.0.ino | 224 ++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 Lector_ph-Bombeo_nutrientes_y_agua/Lector_ph-Bombeo_nutrientes_y_agua_V1.0.ino diff --git a/Lector_ph-Bombeo_nutrientes_y_agua/Lector_ph-Bombeo_nutrientes_y_agua_V1.0.ino b/Lector_ph-Bombeo_nutrientes_y_agua/Lector_ph-Bombeo_nutrientes_y_agua_V1.0.ino new file mode 100644 index 0000000..8154e9d --- /dev/null +++ b/Lector_ph-Bombeo_nutrientes_y_agua/Lector_ph-Bombeo_nutrientes_y_agua_V1.0.ino @@ -0,0 +1,224 @@ +#include +#include + +float calibration_value = 21.34; +int phval = 0; +unsigned long int avgval; +int buffer_arr[10], temp; +int relePin1 = 2; +int relePin2 = 3; +RTC_DS3231 rtc; +bool inicio_bombeo = true; +bool fin_bombeo = true; + +void setup() +{ + Serial.begin(9600); +} +void loop() { + for (int i = 0; i < 10; i++) + { + buffer_arr[i] = analogRead(A0); + delay(30); + } + for (int i = 0; i < 9; i++) + { + for (int j = i + 1; j < 10; j++) + { + if (buffer_arr[i] > buffer_arr[j]) + { + temp = buffer_arr[i]; + buffer_arr[i] = buffer_arr[j]; + buffer_arr[j] = temp; + } + } + } + avgval = 0; + for (int i = 2; i < 8; i++) + avgval += buffer_arr[i]; + float volt = (float)avgval * 5.0 / 1024 / 6; + float ph_act = -5.70 * volt + calibration_value; + if (ph_act >= 6.50){ + digitalWrite (relePin1, HIGH); + }else { + digitalWrite (relePin1, LOW); + DateTime horario = rtc.now(); + + //Riego de las 00:00 + if (relePin1, LOW && horario.hour() == 0 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("00:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 0 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("00:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de las 06:00 + if (relePin1, LOW && horario.hour() == 6 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("06:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 6 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("06:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de 08:00 + if (relePin1, LOW && horario.hour() == 8 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("08:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 8 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("08:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de 10:00 + if (relePin1, LOW && horario.hour() == 10 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("10:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 10 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("10:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de 11:00 + if (relePin1, LOW && horario.hour() == 11 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("11:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 11 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("11:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de 12:00 + if (relePin1, LOW && horario.hour() == 12 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("12:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 12 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("12:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de 13:00 + if (relePin1, LOW && horario.hour() == 13 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("13:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 13 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("13:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de 14:00 + if (relePin1, LOW && horario.hour() == 14 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("14:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 14 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("14:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de 15:00 + if (relePin1, LOW && horario.hour() == 15 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("15:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 15 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("15:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de 17:00 + if (relePin1, LOW && horario.hour() == 17 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("17:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 17 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("17:05 OFF"); + fin_bombeo = false; + } + } + + //Riego de 20:00 + if (relePin1, LOW && horario.hour() == 20 && horario.minute() == 0){ + if (inicio_bombeo = true){ + digitalWrite (relePin2, HIGH); + Serial.println("20:00 ON"); + inicio_bombeo = false; + } + } + if (relePin1, LOW && horario.hour() == 20 && horario.minute() == 5){ + if (fin_bombeo = true){ + digitalWrite (relePin2, LOW); + Serial.println("20:05 OFF"); + fin_bombeo = false; + } + } + delay(1000); + } +}