#include #include //Inicializacao do WiFiManager WiFiManager wifiManager; //Inicializacao so servidor http na porta 80 WiFiServer server(80); //Status da GPIO uint8_t status_gpio = 0; void setup() { //Configura a serial Serial.begin(115200); //Configura a GPIO como saida pinMode(D3, OUTPUT); //Coloca a GPIO em sinal logico baixo digitalWrite(D3, LOW); //Define o auto connect e o SSID do modo AP wifiManager.setConfigPortalTimeout(180); wifiManager.autoConnect("MeuWebServer"); //Log na serial se conectar Serial.println("Conectado"); //Inicia o webserver de controle da GPIO server.begin(); } void reset_config(void) { //Reset das definicoes de rede wifiManager.resetSettings(); delay(1500); ESP.reset(); } void loop() { //Aguarda uma nova conexao WiFiClient client = server.available(); if (!client) { return; } Serial.println("Nova conexao requisitada..."); while(!client.available()){ delay(1); } Serial.println("Nova conexao OK..."); //Le a string enviada pelo cliente String req = client.readStringUntil('\r'); //Mostra a string enviada Serial.println(req); //Limpa dados/buffer client.flush(); //Trata a string do cliente em busca de comandos if (req.indexOf("rele_on") != -1){ digitalWrite(D3, HIGH); status_gpio = HIGH; } else if (req.indexOf("rele_off") != -1) { digitalWrite(D3, LOW); status_gpio = LOW; } /* o que eu espero fazer: else if( req.indexOf("saida2")!=-1){ ****ler a "substring" 2030501, e quebrar de dois em dois, e o ultimo 1 o estado de ligar****** } hotasaida2.set(os dois primeiros numeros (20); minutosaida2.set(30); segundosaida2.set(50); if (horaRTC==horasaida2 && minutoRTC==minutosaida2 &&estado==1) LIGAR LED DA SAIDA 2 else (horaRTC==horasaida2 && minutoRTC==minutosaida2 &&estado==0) DESLIGAR LED DA SAIDA 2 */ else { Serial.println("Requisicao invalida"); } //Prepara a resposta para o cliente String buf = ""; buf += "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n"; buf += "\r\n"; buf += "WebServer ESP8266"; buf += ""; buf += ""; buf += "

ESP8266 Web Server

"; //De acordo com o status da GPIO envia o comando if(status_gpio) buf += "

Lampada

"; else buf += "

Lampada

"; buf += "

Criado por Pedro Minatel

"; buf += "\n"; //Envia a resposta para o cliente client.print(buf); client.flush(); client.stop(); Serial.println("Cliente desconectado!"); }