#include #include WiFiManager wifiManager; //Inicializacao do WiFiManager WiFiServer server(80); //Inicializacao so servidor http na porta 80 uint8_t status_gpio = 0; //Status da GPIO #define LED 2 String buf = ""; //Prepara a resposta para o cliente String buf1 = ""; //Prepara a resposta para o cliente String buf2 = ""; //Prepara a resposta para o cliente String screen = ""; //Prepara a resposta para o cliente //-------------------------------- void setup() { 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

"; buf2 += "

Criado por Pedro Minatel

"; buf2 += "\n"; Serial.begin(115200); //Configura a serial pinMode(LED, OUTPUT); //Configura a GPIO como saida digitalWrite(LED, LOW); //Coloca a GPIO em sinal logico baixo wifiManager.setConfigPortalTimeout(180); //Define o auto connect e o SSID do modo AP wifiManager.autoConnect("MeuWebServer"); Serial.println("Conectado"); //Log na serial se conectar server.begin(); //Inicia o webserver de controle da GPIO } //-------------------------------- void reset_config(void) { wifiManager.resetSettings(); //Reset das definicoes de rede delay(1500); ESP.reset(); } //-------------------------------- void loop() { WiFiClient client = server.available(); //Aguarda uma nova conexao if (!client) { return; } Serial.println("Nova conexao requisitada..."); while (!client.available()) { delay(1); } Serial.println("Nova conexao OK..."); String req = client.readStringUntil('\r'); // Serial.print("req :"); Serial.println(req); //Mostra a string enviada String dados = req.substring(5, 13); // Serial.print("dados :"); Serial.println(dados); String hora = dados.substring(0, 2); String minuto = dados.substring(2, 4); String segundo = dados.substring(4, 6); String port = dados.substring(6, 7); String OnOff = dados.substring(7, 8); int horaInt = hora.toInt(); int minutoInt = minuto.toInt(); int segundoInt = segundo.toInt(); int portInt = port.toInt(); int OnOffInt = OnOff.toInt(); Serial.print("hora :"); Serial.println(hora); Serial.print("minuto :"); Serial.println(minuto); Serial.print("segundo :"); Serial.println(segundoInt); Serial.print("port :"); Serial.println(portInt); Serial.print("OnOff :"); Serial.println(OnOffInt); client.flush(); //Limpa dados/buffer if (req.indexOf("rele_on") != -1) //Trata a string do cliente em busca de comandos { digitalWrite(LED, HIGH); status_gpio = HIGH; } else if (req.indexOf("rele_off") != -1) { digitalWrite(LED, LOW); status_gpio = LOW; } else { Serial.println("Requisicao invalida"); } if (status_gpio) //De acordo com o status da GPIO envia o comando buf1 += "

Lampada

"; else buf1 += "

Lampada

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