/* ESP8266 NodeMCU LED Control over WiFi Demo * MODIFICADO ESTE SKETCH PARA UTILIZAR NO MÓDULO DE RELÉ ONDE * O PINO DO GPIO 0 VEM ATERRADO (0 VOLTS) * EM CONJUNTO COM UM RESISTOR DE 3K3 OHMS ENTRE O GPIO 0 E O +3,3 vcc * Tive que mudar tambem LIGA = ledON e DESLIGA = ledOFF * Sketch adaptado do exemplo de https://circuits4you.com * ADAPTAÇÕES FEITAS: *---Mudado sistema de comando com BUTTON, *--- acrescentado leitura de GPIO 0 e comparado para mostrar D (desligado) e L (ligado). *---Alterado conteudo e apresentação HTML . *---Alterado status de iniciação e comando do GPIO 0. *---Acrescentada rotina de temporização automatica (ao ligar) e comandada. * DUVIDAS: iot@olintronica.com *Abril/2020 */ #include #include //ESP Web Server Library to host a web page #include bool inp=0; //--------------------INICIO HTML ---------------------------// const char MAIN_page[] PROGMEM = R"=====( info )====="; //--------------------------------------------------------------- //On board LED Connected to GPIO0 #define LED 0 //SSID and Password of your WiFi router const char* ssid = "SEU WIFI"; const char* password = "SUA SENHA do WIFI"; //Declarando os endereços IPAddress ip(192,168,0,XXX); IPAddress gateway(192,168,0,1); IPAddress subnet(255,255,255,0); IPAddress dns(8,8,8,8); //Declare a global object variable from the ESP8266WebServer class. ESP8266WebServer server(XXXX); //Server on port 80xx //=============================================================== // Estas rotinas serao executadas quando o navegador acessar a pagina //=============================================================== void handleRoot() { Serial.println("Voce chamou a pagina raiz"); String s = MAIN_page; //Read HTML contents //server.send(200, "text/html",s; //Send web page // PRIMEIRO RETANGULO DA ESQUERDA // inp=digitalRead(LED); //conteudo da porta LED (GPIO 0)// if (inp==1) { server.send(200,"text/html", ""+s); } else { server.send (200,"text/html", "
L
"+s); } } void handleLEDon(){ //por medida de segurança adicionei temporização// String s = MAIN_page; Serial.println("--------------------------------------"); Serial.println("RELE LIGADO por comando"); digitalWrite(LED,HIGH); //LED ligado// delay(10000);//LIGADO 10 segundos// digitalwrite(LED,LOW);//LED DESLIGADO// Serial.println("--------------------------------------"); server.send(200,"text/html", "
D
"+s); } void handleLEDoff() { String s = MAIN_page; // Serial.println("RELE DESLIGADO por comando"); digitalWrite(LED,LOW); //LED DESligado// server.send(200,"text/html", "
L
"+s); Serial.println("--------------------------------------"); } void handleLEDtimer() { String s = MAIN_page; // Serial.println("---------RELE TEMPORIZADO por comando----------"); digitalWrite(LED,HIGH); //LED ligado=on //(para 4 minutos, mudar delay abaixo para 240.000) server.send(200,"text/html", "
D
"+s); delay(10000);//teste de 10 segundos. para 1 minuto=60000// Serial.println("RELE DESLIGADO"); digitalWrite(LED,LOW);//LED desligado=off Serial.println("--------------------------------------"); delay(2000); } void handleLEDreset() { String s = MAIN_page; // Serial.println("RELE DESLIGADO por comando"); digitalWrite(LED,LOW); //LED ligado=on server.send(200,"text/html", "
T
"+s); Serial.println("--------------------------------------"); //ESP.restart ();//comando de reset no chip-NAO SERA USADO // } //============================================================== // SETUP //============================================================== void setup(void){ Serial.begin(115200); WiFi.begin(ssid, password); //Connect to your WiFi router WiFi.config(ip, gateway, subnet, dns); Serial.println(""); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } //If connection successful show IP address in serial monitor Serial.println(""); Serial.print("Conectado a "); Serial.println(ssid); Serial.print("Endereco IP: "); Serial.println(WiFi.localIP()); //IP address assigned to your ESP //--------------ROTINA INCIAL antes de abrir pagina ------------------// delay (2000); Serial.println("---------TEMPORIZADOR---------------"); pinMode(LED,OUTPUT); digitalWrite(LED,HIGH);//mudado de HIGH para LOW devido novo modulo+resistor 3k3ohms Serial.println("RELE LIGADO por 4 minutos"); delay (5000);// aqui se coloca os 4 minutos=(120000) // digitalWrite(LED,LOW); Serial.println("RELE DESLIGADO"); Serial.println("--------------------------------------"); server.on("/", handleRoot); //Which routine to handle at root location. This is display page server.on("/ledOn", handleLEDon); //as Per , Subroutine to be called server.on("/ledOff", handleLEDoff); server.on("/ledTimer", handleLEDtimer); server.on("/ledReset", handleLEDreset); server.begin(); //Inicia servidor HTTP Serial.println("Servidor HTTP iniciado"); } //============================================================== // LOOP //============================================================== void loop(void){ server.handleClient(); //Handle client requests }
D