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,74 +3,107 @@
#include <ESP8266WebServer.h> #include <ESP8266WebServer.h>
#include <ESP8266mDNS.h> #include <ESP8266mDNS.h>
#include "confidencial.h" #include "confidencial.h"
String modo, estado, horaOn1, horaOff1, horaOn2, horaOff2, posOn1, posOn2, posOff1, posOff2, hora, minuto, segundo, dia, mes, ano;
int loopcont;
ESP8266WebServer server(80); ESP8266WebServer server(80);
const int led = 13; const int led = 13;
void handleRoot() { void handleRoot() {
digitalWrite(led, 1); String mensaje, msj_arduino, valores_ino;
server.send(200, "text/plain", "Hola desde el esp01! "+(String)loopcont); valores_ino = "Modo: "+modo+"\nEstado: "+estado+"\nHora encendido: "+horaOn1+"\nHora apagado: "+horaOff1+
digitalWrite(led, 0); "\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() { void handleNotFound() {
digitalWrite(led, 1); String message = "Archivo no encontrado\n\n";
String message = "Archivo no encontrado\n\n"; message += "URI: ";
message += "URI: "; message += server.uri();
message += server.uri(); message += "\nMethod: ";
message += "\nMethod: "; message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += (server.method() == HTTP_GET) ? "GET" : "POST"; message += "\nArguments: ";
message += "\nArguments: "; message += server.args();
message += server.args(); message += "\n";
message += "\n"; for (uint8_t i = 0; i < server.args(); i++) {
for (uint8_t i = 0; i < server.args(); i++) { message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; }
} server.send(404, "text/plain", message);
server.send(404, "text/plain", message);
digitalWrite(led, 0);
} }
void setup(void) { void setup(void) {
pinMode(led, OUTPUT); pinMode(led, OUTPUT);
digitalWrite(led, 0); digitalWrite(led, 0);
Serial.begin(115200); Serial.begin(115200);
WiFi.mode(WIFI_STA); WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password); WiFi.begin(ssid, password);
loopcont = 0; Serial.println("");
Serial.println("");
// Wait for connection // Wait for connection
while (WiFi.status() != WL_CONNECTED) { while (WiFi.status() != WL_CONNECTED) {
delay(500); delay(500);
Serial.print("."); Serial.print(".");
} }
Serial.println(""); Serial.println("");
Serial.print("Connected to "); Serial.print("Connected to ");
Serial.println(ssid); Serial.println(ssid);
Serial.print("IP address: "); Serial.print("IP address: ");
Serial.println(WiFi.localIP()); Serial.println(WiFi.localIP());
if (MDNS.begin("esp8266")) { if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started"); Serial.println("MDNS responder started");
} }
server.on("/", handleRoot); server.on("/", handleRoot);
server.on("/inline", []() { server.on("/inline", []() {
server.send(200, "text/plain", "esto funciona como debe"); server.send(200, "text/plain", "esto funciona como debe");
}); });
server.onNotFound(handleNotFound); server.onNotFound(handleNotFound);
server.begin(); server.begin();
Serial.println("HTTP server started"); Serial.println("HTTP server started");
}
void limpiaSerial() {
while(Serial.available() > 0) {
char temp = Serial.read();
}
} }
void loop(void) { void loop(void) {
server.handleClient(); if (Serial.available() > 0) {
loopcont+=1; 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; RTC_DS3231 reloj;
volatile DateTime fecha; volatile DateTime fecha;
unsigned long intervalo_loop=500; unsigned long intervalo_loop=1000;
unsigned long previoMillisLoop=0; unsigned long previoMillisLoop=0;
unsigned long previoMillisTermo=0; unsigned long previoMillisTermo=0;
unsigned long previoMillisAUTO=0; unsigned long previoMillisAUTO=0;
@ -40,7 +40,7 @@ byte hr, mn, sg, di, me;
int an; int an;
void setup() { void setup() {
Serial.begin(9600); Serial.begin(115200);
myservo_X.attach(9); myservo_X.attach(9);
reloj.begin(); reloj.begin();
estado=1; estado=1;
@ -62,7 +62,7 @@ void loop() {
switch(estado) { switch(estado) {
case 1: case 1:
// funcionamiento autonomo, por defecto // funcionamiento autonomo, por defecto
if ((unsigned long)(actualMillis - previoMillisAUTO) >= 2000) { if ((unsigned long)(actualMillis - previoMillisAUTO) >= 1000) {
if((((fecha.hour() >= horaON1) && (fecha.hour() < horaOFF1)) || if((((fecha.hour() >= horaON1) && (fecha.hour() < horaOFF1)) ||
((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) { ((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) {
termoACC(posON1, posON2); termoACC(posON1, posON2);