#include //Nome da sua rede Wifi const char* ssid = "nome da sua rede"; //Senha da rede const char* password = "senha da sua rede"; //IP do ESP (para voce acessar pelo browser) IPAddress ip(192,168,100,200); // este ip deve ser parecido ao ip do seu //computador mudando somente o final da numeração //IP do roteador da sua rede wifi IPAddress gateway(192,168,100,1); //Mascara de rede da sua rede wifi IPAddress subnet(255, 255, 255, 0); //Criando o servidor web na porta 80 WiFiServer server(80); //Funcao que sera executada apenas ao ligar o ESP8266 void setup() { Serial.begin(9600); delay(10); //Preparando o GPIO2 onde estão ligadas as lâmpadas pinMode(D1, OUTPUT); pinMode(D2, OUTPUT); pinMode(D3, OUTPUT); pinMode(D4, OUTPUT); //Garantindo que as portas estejam desligadas ao iniciar o sistema, quando recebe 1 a porta desliga digitalWrite(D1, 1); digitalWrite(D2, 1); digitalWrite(D3, 1); digitalWrite(D4, 1); // resposta na serial sobre o status da conexão wifi Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); //Conectando a rede Wifi WiFi.config(ip, gateway, subnet); WiFi.begin(ssid, password); //Verificando se esta conectado, //caso contrario, espera um pouco e verifica novamente. while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print(".");// durante a tentativa de conexão será gerado um ponto final a cada tentativa } Serial.println(""); Serial.println("WiFi connected"); //Iniciando o servidor Web server.begin(); Serial.println("Server started"); // Print the IP address Serial.println(WiFi.localIP()); digitalWrite(D1, 0); digitalWrite(D2, 0); digitalWrite(D3, 0); digitalWrite(D4, 0); } //Função que sera executada indefinidamente enquanto o ESP8266 estiver ligado. void loop() { //Verificando se o servidor esta pronto. WiFiClient client = server.available(); if (!client) { return; } //Verificando se o servidor recebeu alguma requisicao Serial.println("new client"); //while (!client.available()) { //delay(1); //} //Obtendo a requisição vinda do browser String req = client.readStringUntil('\r'); client.flush(); Serial.println(req); //Iniciando o buffer que ira conter a pagina HTML que será enviada para o browser. String buf = ""; buf += "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\n"; //buf += "";//SIGNIFICA QUE IRÁ ATUALIZAR AUTOMÁTICAMENTE EM 3 segundos buf += "

ESP8266 Servidor Web

"; buf += "

L1

"; buf += "

L2

"; buf += "

L3

"; buf += "

L4

"; buf += "

www.eletronicaeprogramacao.com

"; buf += "\n"; //Enviando para o browser a 'pagina' criada. client.print(buf); client.flush(); //Analisando a requisicao recebida para decidir se liga ou desliga ///////////////////////////////////////////////////////////////////// if ((req.indexOf("l1 ligar") != -1)or (req.indexOf("L1_on") != -1)) { digitalWrite(D1, 1); } else if ((req.indexOf("l1 desligar") != -1) or (req.indexOf("L1_off") != -1)) { digitalWrite(D1, 0); } ////////////////////////////////////////////////////////////////////// if ((req.indexOf("l2 ligar") != -1)or (req.indexOf("L2_on") != -1)) { digitalWrite(D2, 1); } else if ((req.indexOf("l2 desligar") != -1) or (req.indexOf("L2_off") != -1)) { digitalWrite(D2, 0); } ////////////////////////////////////////////////////////////////////// if ((req.indexOf("l3 ligar") != -1)or (req.indexOf("L3_on") != -1)) { digitalWrite(D3, 1); } else if ((req.indexOf("l3 desligar") != -1) or (req.indexOf("L3_off") != -1)) { digitalWrite(D3, 0); } ////////////////////////////////////////////////////////////////////// if ((req.indexOf("l4 ligar") != -1)or (req.indexOf("L4_on") != -1)) { digitalWrite(D4, 1); } else if ((req.indexOf("l4 desligar") != -1) or (req.indexOf("L4_off") != -1)) { digitalWrite(D4, 0); } ////////////////////////////////////////////////////////////////////// if (req.indexOf("apagar todos") != -1) { digitalWrite(D1, 0); digitalWrite(D2, 0); digitalWrite(D3, 0); digitalWrite(D4, 0); } ////////////////////////////////////////////////////////////////////// if (req.indexOf("ligar todos") != -1) { digitalWrite(D1, 1); digitalWrite(D2, 1); digitalWrite(D3, 1); digitalWrite(D4, 1); } ////////////////////////////////////////////////////////////////////// else { //Requisicao invalida! client.stop(); } }