diff --git a/caldera_esp/caldera_esp.ino b/caldera_esp/caldera_esp.ino index 41df266..9f7fbd1 100755 --- a/caldera_esp/caldera_esp.ino +++ b/caldera_esp/caldera_esp.ino @@ -3,24 +3,104 @@ #include #include #include "confidencial.h" + String modo, estado, horaOn1, horaOff1, horaOn2, horaOff2, posOn1, posOn2, posOff1, posOff2, hora, minuto, segundo, dia, mes, ano; +String temporal; ESP8266WebServer server(80); -const int led = 13; void handleRoot() { - String mensaje, msj_arduino, valores_ino; - valores_ino = "Modo: "+modo+"\nEstado: "+estado+"\nHora encendido: "+horaOn1+"\nHora apagado: "+horaOff1+ - "\nHora encendido2: "+horaOn2+"\nHora apagado2: "+horaOff2+"\nPosiciones Servo ON1 y ON2: "+posOn1+", "+posOn2+ - "\nPosiciones Servo OFF1 y OFF2: "+posOff1+", "+posOff2+"\nHora y fecha: "+hora+":"+minuto+":"+segundo+" "+dia+ - "/"+mes+"/"+ano; - for (uint8_t i = 0; i < server.args(); i++) { - mensaje += " " + server.argName(i) + ": " + server.arg(i) + "\n"; - msj_arduino+=server.arg(i)+","; + server.send(200, "text/plain", temporal); +} + +void handleACCmanual() { + String mensaje; + if(server.arg(0) == "5") { + if(server.arg(1) == "on") { + mensaje = "Encendiendo Caldera"; + Serial.println("5,1"); + } else if(server.arg(1) == "off") { + mensaje = "Apagando Caldera"; + Serial.println("5,0"); + } else { + mensaje = "Opcion no valida, 5,?"; + } + } else { + mensaje = "Opcion no valida ?,?"; } - server.send(200, "text/plain", "Argumentos: "+mensaje+"\nValores Arduino :\n"+valores_ino); - Serial.println(msj_arduino); - limpiaSerial(); + server.send(200, "text/plain", mensaje); +} + +void handleSEThora() { + // dia mes año hora min seg + String mensaje_web, msj_a_arduino; + if(server.arg(0) == "2") { + msj_a_arduino = "2,"; + msj_a_arduino += server.arg(1)+","; + msj_a_arduino += server.arg(2)+","; + msj_a_arduino += server.arg(3)+","; + msj_a_arduino += server.arg(4)+","; + msj_a_arduino += server.arg(5)+","; + msj_a_arduino += server.arg(6); + mensaje_web = "Fecha y hora enviadas a arduino"; + Serial.println(msj_a_arduino); + } else { + mensaje_web = "Opcion no valida\n"; + } + server.send(200, "text/plain", mensaje_web); +} + +void handleHorasAcc() { + String mensaje_web, msj_a_arduino; + if(server.arg(0) == "3") { + msj_a_arduino = "3,"; + msj_a_arduino += server.arg(1)+","; + msj_a_arduino += server.arg(2)+","; + msj_a_arduino += server.arg(3)+","; + msj_a_arduino += server.arg(4); + mensaje_web = "Horas de funcionamiento enviadas a arduino"; + Serial.println(msj_a_arduino); + } else { + mensaje_web = "Opcion no valida\n"; + } + server.send(200, "text/plain", mensaje_web); +} + +void handleSETservo() { + String mensaje_web, msj_a_arduino; + if(server.arg(0) == "4") { + msj_a_arduino = "4,"; + msj_a_arduino += server.arg(1)+","; + msj_a_arduino += server.arg(2)+","; + msj_a_arduino += server.arg(3)+","; + msj_a_arduino += server.arg(4); + mensaje_web = "Posiciones del servo enviadas a arduino"; + Serial.println(msj_a_arduino); + } else { + mensaje_web = "Opcion no valida\n"; + } + server.send(200, "text/plain", mensaje_web); +} + +void handleSETlibre() { + String mensaje_web, msj_a_arduino; + if(server.arg(0) == "6") { + msj_a_arduino = "6,"; + msj_a_arduino += server.arg(1); + mensaje_web = "Posicion del servo enviada a arduino"; + Serial.println(msj_a_arduino); + } else { + mensaje_web = "Opcion no valida\n"; + } + server.send(200, "text/plain", mensaje_web); +} + +void handleSETauto() { + String mensaje_web, msj_a_arduino; + msj_a_arduino = "1"; + mensaje_web = "Enviando modo 1 (Autonomo) a arduino"; + Serial.println(msj_a_arduino); + server.send(200, "text/plain", mensaje_web); } void handleNotFound() { @@ -39,8 +119,6 @@ void handleNotFound() { } void setup(void) { - pinMode(led, OUTPUT); - digitalWrite(led, 0); Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); @@ -62,6 +140,13 @@ void setup(void) { } server.on("/", handleRoot); + + server.on("/accion", handleACCmanual); + server.on("/sethora", handleSEThora); + server.on("/horasAcc", handleHorasAcc); + server.on("/setservo", handleSETservo); + server.on("/setlibre", handleSETlibre); + server.on("/auto", handleSETauto); server.on("/inline", []() { server.send(200, "text/plain", "esto funciona como debe"); @@ -79,31 +164,14 @@ void limpiaSerial() { } } +void leerSerial() { + while(Serial.available()){ + temporal = Serial.readStringUntil('\r'); + } +} + void loop(void) { - if (Serial.available() > 0) { - modo = Serial.readStringUntil(','); - estado = Serial.readStringUntil(','); - if(estado == "1") { - estado = "Encendido"; - } else if(estado == "0") { - estado = "Apagado"; - } - horaOn1 = Serial.readStringUntil(','); - horaOff1 = Serial.readStringUntil(','); - horaOn2 = Serial.readStringUntil(','); - horaOff2 = Serial.readStringUntil(','); - posOn1 = Serial.readStringUntil(','); - posOn2 = Serial.readStringUntil(','); - posOff1 = Serial.readStringUntil(','); - posOff2 = Serial.readStringUntil(','); - hora = Serial.readStringUntil(','); - minuto = Serial.readStringUntil(','); - segundo = Serial.readStringUntil(','); - dia = Serial.readStringUntil(','); - mes = Serial.readStringUntil(','); - ano = Serial.readStringUntil(','); - } - limpiaSerial(); + leerSerial(); server.handleClient(); } diff --git a/caldera_rata/caldera_rata.ino b/caldera_rata/caldera_rata.ino index 8c48ba5..7376930 100644 --- a/caldera_rata/caldera_rata.ino +++ b/caldera_rata/caldera_rata.ino @@ -66,9 +66,11 @@ void loop() { if((((fecha.hour() >= horaON1) && (fecha.hour() < horaOFF1)) || ((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) { termoACC(posON1, posON2); + estado_termo=1; } else if((((fecha.hour() < horaON1) || (fecha.hour() >= horaOFF1)) && ((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2))) && (estado_termo==1)) { termoACC(posOFF1, posOFF2); + estado_termo=0; } } previoMillisAUTO = millis(); @@ -95,8 +97,10 @@ void loop() { if(espera_man) { if(manual == 1) { termoACC(posON1, posON2); + estado_termo=1; } else if (manual == 0){ termoACC(posOFF1, posOFF2); + estado_termo=0; } espera_man=0; } @@ -118,48 +122,50 @@ void loop() { void leerDatos() { if (Serial.available() > 0) { - byte temp_var=0; + byte temp_var; temp_var = Serial.readStringUntil(',').toInt(); - if(temp_var < 7 && temp_var > 0){ - estado = temp_var; - } else { - estado = 1; + if(temp_var) { + if(temp_var < 7 && temp_var > 0){ + estado = temp_var; + } else { + estado = 1; + } + switch (estado) { + case 1: + limpiaSerial(); + break; + case 2: + di = Serial.readStringUntil(',').toInt(); + me = Serial.readStringUntil(',').toInt(); + an = Serial.readStringUntil(',').toInt(); + hr = Serial.readStringUntil(',').toInt(); + mn = Serial.readStringUntil(',').toInt(); + sg = Serial.readStringUntil(',').toInt(); + break; + case 3: + horaON1 = Serial.readStringUntil(',').toInt(); + horaOFF1 = Serial.readStringUntil(',').toInt(); + horaON2 = Serial.readStringUntil(',').toInt(); + horaOFF2 = Serial.readStringUntil(',').toInt(); + break; + case 4: + posON1 = Serial.readStringUntil(',').toInt(); + posON2 = Serial.readStringUntil(',').toInt(); + posOFF1 = Serial.readStringUntil(',').toInt(); + posOFF2 = Serial.readStringUntil(',').toInt(); + break; + case 5: + manual = Serial.readStringUntil(',').toInt(); + espera_man = 1; + break; + case 6: + posTEMP = Serial.readStringUntil(',').toInt(); + break; + default: + limpiaSerial(); + } + limpiaSerial(); } - switch (estado) { - case 1: - limpiaSerial(); - break; - case 2: - di = Serial.readStringUntil(',').toInt(); - me = Serial.readStringUntil(',').toInt(); - an = Serial.readStringUntil(',').toInt(); - hr = Serial.readStringUntil(',').toInt(); - mn = Serial.readStringUntil(',').toInt(); - sg = Serial.readStringUntil(',').toInt(); - break; - case 3: - horaON1 = Serial.readStringUntil(',').toInt(); - horaOFF1 = Serial.readStringUntil(',').toInt(); - horaON2 = Serial.readStringUntil(',').toInt(); - horaOFF2 = Serial.readStringUntil(',').toInt(); - break; - case 4: - posON1 = Serial.readStringUntil(',').toInt(); - posON2 = Serial.readStringUntil(',').toInt(); - posOFF1 = Serial.readStringUntil(',').toInt(); - posOFF2 = Serial.readStringUntil(',').toInt(); - break; - case 5: - manual = Serial.readStringUntil(',').toInt(); - espera_man = 1; - break; - case 6: - posTEMP = Serial.readStringUntil(',').toInt(); - break; - default: - limpiaSerial(); - } - limpiaSerial(); } } @@ -197,7 +203,6 @@ void termoACC(byte pos1, byte pos2) { } } } while (cont<4); - estado_termo=!estado_termo; } void setVarsEP(){