inteaccion Nano y ESP, MEJORAR lectura Serie

This commit is contained in:
jp.av.dev 2021-07-13 03:20:25 -04:00
parent e8067ec92c
commit fd36dc6062
2 changed files with 85 additions and 52 deletions

View File

@ -3,21 +3,27 @@
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include "confidencial.h"
int loopcont;
String modo, estado, horaOn1, horaOff1, horaOn2, horaOff2, posOn1, posOn2, posOff1, posOff2, hora, minuto, segundo, dia, mes, ano;
ESP8266WebServer server(80);
const int led = 13;
void handleRoot() {
digitalWrite(led, 1);
server.send(200, "text/plain", "Hola desde el esp01! "+(String)loopcont);
digitalWrite(led, 0);
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", "Argumentos: "+mensaje+"\nValores Arduino :\n"+valores_ino);
Serial.println(msj_arduino);
limpiaSerial();
}
void handleNotFound() {
digitalWrite(led, 1);
String message = "Archivo no encontrado\n\n";
message += "URI: ";
message += server.uri();
@ -30,7 +36,6 @@ void handleNotFound() {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
digitalWrite(led, 0);
}
void setup(void) {
@ -39,7 +44,6 @@ void setup(void) {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
loopcont = 0;
Serial.println("");
// Wait for connection
@ -69,8 +73,37 @@ void setup(void) {
Serial.println("HTTP server started");
}
void loop(void) {
server.handleClient();
loopcont+=1;
void limpiaSerial() {
while(Serial.available() > 0) {
char temp = Serial.read();
}
}
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();
server.handleClient();
}

View File

@ -15,7 +15,7 @@ Servo myservo_X;
RTC_DS3231 reloj;
volatile DateTime fecha;
unsigned long intervalo_loop=500;
unsigned long intervalo_loop=1000;
unsigned long previoMillisLoop=0;
unsigned long previoMillisTermo=0;
unsigned long previoMillisAUTO=0;
@ -40,7 +40,7 @@ byte hr, mn, sg, di, me;
int an;
void setup() {
Serial.begin(9600);
Serial.begin(115200);
myservo_X.attach(9);
reloj.begin();
estado=1;
@ -62,7 +62,7 @@ void loop() {
switch(estado) {
case 1:
// funcionamiento autonomo, por defecto
if ((unsigned long)(actualMillis - previoMillisAUTO) >= 2000) {
if ((unsigned long)(actualMillis - previoMillisAUTO) >= 1000) {
if((((fecha.hour() >= horaON1) && (fecha.hour() < horaOFF1)) ||
((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) {
termoACC(posON1, posON2);