Gracias por contestar a mi pregunta, amigo noter. La verdad es que no se el estado de la persiana, como tampoco se el día que va a llover, en principio supongo que estarán a mitad o arriba.
Por otro lado pensaba que iría mejor la función Millis, aunque no tengo ni idea como va.
al compilar me da un error:
//SERVIDOR
#include <ESP8266WiFi.h>
const char WiFiClave[] = ""; //Sin clave
const char AP_Nombre[] = "ESP8266";
const int releAbajo = 2;
const int releArriba = 0;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
pinMode(releAbajo, OUTPUT);
pinMode(releArriba,OUTPUT);
WiFi.mode(WIFI_AP);
WiFi.softAP(AP_Nombre, WiFiClave);
server.begin();
}
void loop() {
WiFiClient client = server.available(); // ¿Hay un cliente conectado?
if (!client) { return;}
String req = client.readStringUntil('\r'); // Lee la primera linea de la petición del cliente
if (req.indexOf("/gpio/0") != -1) {
if (estadoPersiana==Arriba) {
digitalWrite(releAbajo, HIGH);
delay(20000);
digitalWrite(releAbajo, LOW);
estadoPersiana=Abajo;
}
}
if (req.indexOf("/gpio/1") != -1) {
if (estadoPersiana==Abajo) {
digitalWrite(releArriba, HIGH);
delay(20000);
digitalWrite(releArriba, LOW);
estadoPersiana=Arriba;
client.flush();
}
}