Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Teste com CSS
- //#include <SHT1x.h> // https://github.com/practicalarduino/SHT1x
- //#define dataPin 0 // GPIO 0 D3 Port para o Data do SHT10
- //#define clockPin 15 // GPIO 15 D8 Port para o Clock do SHT10
- //SHT1x sht1x(dataPin, clockPin); // Instancia shtx1
- #include <ESP8266WebServer.h> // Bibioteca para Servidor Web ESP8266
- #include <ESP8266mDNS.h> // Bibioteca para ..... ESP8266
- MDNSResponder mdns; // ......
- const char* ssid = "xxxxxx"; // Use sua credenciais de rede wifi
- const char* password = "yyyyyyyyyyy";
- ESP8266WebServer server(80); // Instancia server
- // Strings com HTML
- String Part1 = "<!DOCTYPE HTML><html><head><meta http-equiv='refresh' content='1;URL=/Controle'/></head><style>";
- String Part2 = "h1{text-align: center;}";
- String Part3 = "button.btn_on{background-color: rgb(255, 0, 0); height: 65px; width: 200px; color: blue; font-family: Times New Roman; font-size: 27px; text-align: center;}";
- String Part4 = "button.btn_off{background-color: rgb(0, 255, 0); height: 65px; width: 200px; color: blue; font-family: Times New Roman; font-size: 27px; text-align: center;}";
- String Part5 = "</style></head><body><h1>Controle WiFi</h1>";
- String Tela_1 = Part1 + Part2 + Part3 + Part4 + Part5;
- String Tela_2 = "</body><html>\r\n";
- String Out1On = "<h1><a href=\"/Controle?LuzQuarto=off \"><button class=btn_on>Quarto Acesa</button></a>";
- String Out2On = "<h1><a href=\"/Controle?LuzSala=off \"><button class=btn_on>Sala Acesa</button></a>";
- String Out3On = "<h1><a href=\"/Controle?LuzBanho=off \"><button class=btn_on>Banho Acesa</button></a>";
- String Out4On = "<h1><a href=\"/Controle?Carga=off \"><button class=btn_on>Carga Ligada</button></a>";
- String Out1Off = "<h1><a href=\"/Controle?LuzQuarto=on \"><button class=btn_off>Quarto Apagada</button></a>";
- String Out2Off = "<h1><a href=\"/Controle?LuzSala=on \"><button class=btn_off>Sala Apagada</button></a>";
- String Out3Off = "<h1><a href=\"/Controle?LuzBanho=on \"><button class=btn_off>Banho Apagada</button></a>";
- String Out4Off = "<h1><a href=\"/Controle?Carga=on \"><button class=btn_off>Carga Desligada</button></a>";
- String QlSlBlCl = Tela_1 + Out1Off + Out2Off + Out3Off + Out4Off; // 0F Quarto ligado Sala ligada Banheiro ligado Carregador ligado
- String QlSlBlCd = Tela_1 + Out1Off + Out2Off + Out3Off + Out4On; // 0E Quarto ligado Sala ligada Banheiro ligado Carregador desligado
- String QlSlBdCl = Tela_1 + Out1Off + Out2Off + Out3On + Out4Off; // 0D Quarto ligado Sala ligada Banheiro desligado Carregador ligado
- String QlSlBdCd = Tela_1 + Out1Off + Out2Off + Out3On + Out4On; // 0C Quarto ligado Sala ligada Banheiro desligado Carregador desligado
- String QlSdBlCl = Tela_1 + Out1Off + Out2On + Out3Off + Out4Off; // 0B Quarto ligado Sala desligada Banheiro ligado Carregador ligado
- String QlSdBlCd = Tela_1 + Out1Off + Out2On + Out3Off + Out4On; // 0A Quarto ligado Sala desligada Banheiro ligado Carregador desligado
- String QlSdBdCl = Tela_1 + Out1Off + Out2On + Out3On + Out4Off; // 09 Quarto ligado Sala desligada Banheiro desligado Carregador ligado
- String QlSdBdCd = Tela_1 + Out1Off + Out2On + Out3On + Out4On; // 08 Quarto ligado Sala desligada Banheiro desligado Carregador desligado
- String QdSlBlCl = Tela_1 + Out1On + Out2Off + Out3Off + Out4Off; // 07 Quarto desligado Sala ligada Banheiro ligado Carregador ligado
- String QdSlBlCd = Tela_1 + Out1On + Out2Off + Out3Off + Out4On; // 06 Quarto desligado Sala ligada Banheiro ligado Carregador desligado
- String QdSlBdCl = Tela_1 + Out1On + Out2Off + Out3On + Out4Off; // 05 Quarto desligado Sala ligada Banheiro desligado Carregador ligado
- String QdSlBdCd = Tela_1 + Out1On + Out2Off + Out3On + Out4On; // 04 Quarto desligado Sala ligada Banheiro desligado Carregador desligado
- String QdSdBlCl = Tela_1 + Out1On + Out2On + Out3Off + Out4Off; // 03 Quarto desligado Sala desligada Banheiro ligado Carregador ligado
- String QdSdBlCd = Tela_1 + Out1On + Out2On + Out3Off + Out4On; // 02 Quarto desligado Sala desligada Banheiro ligado Carregador desligado
- String QdSdBdCl = Tela_1 + Out1On + Out2On + Out3On + Out4Off; // 01 Quarto desligado Sala desligada Banheiro desligado Carregador ligado
- String QdSdBdCd = Tela_1 + Out1On + Out2On + Out3On + Out4On; // 00 Quarto desligado Sala desligada Banheiro desligado Carregador desligado
- String Tela = "";
- String Telaf = Tela_2;
- //String Telaf = "<p><center>Temperatura: " + String((float)temp_c) + "C </p>" + "<p><center>Umidade: " + String((int)humidity) + "% </p>" + Tela_2;
- String LuzQuarto;
- String LuzSala;
- String LuzBanho;
- String Carga;
- #define Diag 2 // GPIO2 Port somente para visualizacao durante teste. Pode ser comentado na versao para instalar
- float temp_c; // Variavel para temperatura
- int humidity; // Variavel para umidade
- #define Saida1 4 // GPIO4 Port para ligar Controle do triac (Pino 2 do MOC3023)
- const int Switch1 = 5; // GPIO5 Port para ligar o interruptor
- #define Saida2 13 // GPIO13 Port para ligar Controle do triac (Pino 2 do MOC3023)
- const int Switch2 = 14; // GPIO14 Port para ligar o interruptor
- #define Saida3 16 // GPIO12 Port para ligar Controle do triac (Pino 2 do MOC3023)
- const int Switch3 = 12; // GPIO16 Port para ligar o interruptor
- #define Saida4 15 // GPIO0 Port para ligar Controle do triac (Pino 2 do MOC3023)
- const int Switch4 = 0; // GPIO15 Port para ligar o interruptor
- byte Switch1_atual = 0; // Variavel para staus de GPIO5 (Status do interruptor)
- byte Switch2_atual = 0; // Variavel para staus de GPIO14 (Status do interruptor)
- byte Switch3_atual = 0; // Variavel para staus de GPIO16 (Status do interruptor)
- byte Switch4_atual = 0; // Variavel para staus de GPIO15 (Status do interruptor)
- byte Bit0 = 0;
- byte Bit1 = 0;
- byte Bit2 = 0;
- byte Bit3 = 0;
- /*
- unsigned long previousMillis = 0; // Variavel para medir periodos
- const long interval = 2000; // Periodo de leitura da temperatura e umidade
- //---------------------------------------
- void gettemperature() // Funcoa para ler temperatura e umidade
- {
- if (millis() - previousMillis >= interval) // Se passou o intervalo
- {
- previousMillis = millis(); // Restaura valor de previousMillis
- humidity = sht1x.readHumidity(); // Le umidade em SHT10
- temp_c = sht1x.readTemperatureC(); // Le temperatura em SHT10
- }
- }*/
- //---------------------------------------
- void setup(void)
- {
- pinMode(Switch1, INPUT_PULLUP); // Define GPIO5 como entrada e liga o resistor de pullup
- pinMode(Switch2, INPUT_PULLUP); // Define GPIO como entrada e liga o resistor de pullup
- pinMode(Switch3, INPUT_PULLUP); // Define GPIO como entrada e liga o resistor de pullup
- pinMode(Switch4, INPUT_PULLUP); // Define GPIO como entrada e liga o resistor de pullup
- Switch1_atual = digitalRead(Switch1); // Atualisa status de GPIO5
- Switch2_atual = digitalRead(Switch2); // Atualisa status de GPIO
- Switch3_atual = digitalRead(Switch3); // Atualisa status de GPIO
- Switch4_atual = digitalRead(Switch4); // Atualisa status de GPIO
- pinMode(Diag, OUTPUT); // Define GPIO2 como saida (So pra diagnostico)
- pinMode(Saida1, OUTPUT); // Define GPIO4 como saida
- pinMode(Saida2, OUTPUT); // Define GPIO como saida
- pinMode(Saida3, OUTPUT); // Define GPIO como saida
- pinMode(Saida4, OUTPUT); // Define GPIO como saida
- digitalWrite(Saida1, HIGH); // Liga GPIO
- digitalWrite(Saida2, HIGH); // Liga GPIO
- digitalWrite(Saida3, HIGH); // Liga GPIO
- digitalWrite(Saida4, HIGH); // Liga GPIO
- Serial.begin(115200); // Inicialisa o serial port em 115200
- WiFi.begin(ssid, password); // Inicialisa o wifi
- Serial.println(""); // Imprime
- while (WiFi.status() != WL_CONNECTED) // Aguarda conexão
- {
- delay(500); // Delay
- Serial.print("."); // Imprime . enquanto não conecta
- }
- Serial.println(""); // Imprime
- Serial.print("Connected to ");
- Serial.println(ssid);
- Serial.print("IP address: ");
- Serial.println(WiFi.localIP());
- if (mdns.begin("esp8266", WiFi.localIP())) // Se ......????
- {
- Serial.println("MDNS responder started"); // Imprime
- }
- server.on("/", []() // Ao requeste
- {
- server.send(200, "text/html", QlSlBlCl); // Executa o HTML Ql (Quarto ligado)
- });
- server.on("/Controle", []() // Ao requeste /Quarto
- {
- //gettemperature(); // Le temperatura e umidade. Comentar se tiver sem sensor pois fica lento
- LuzQuarto = server.arg("LuzQuarto"); // Recupera o valor do parametro luz enviado
- LuzSala = server.arg("LuzSala"); // Recupera o valor do parametro luz enviado
- LuzBanho = server.arg("LuzBanho"); // Recupera o valor do parametro luz enviado
- Carga = server.arg("Carga"); // Recupera o valor do parametro luz enviado
- if (LuzQuarto == "off") digitalWrite(Saida1, HIGH); // Se o valor de luz e off desliga a saida
- if (LuzQuarto == "on") digitalWrite(Saida1, LOW); // Se o valor de luz e on liga a saida
- if (LuzSala == "off") digitalWrite(Saida2, HIGH); // Se o valor de luz e off desliga a saida
- if (LuzSala == "on") digitalWrite(Saida2, LOW); // Se o valor de luz e on liga a saida
- if (LuzBanho == "off") digitalWrite(Saida3, HIGH); // Se o valor de luz e off desliga a saida
- if (LuzBanho == "on") digitalWrite(Saida3, LOW); // Se o valor de luz e on liga a saida
- if (Carga == "off") digitalWrite(Saida4, HIGH); // Se o valor de luz e off desliga a saida
- if (Carga == "on") digitalWrite(Saida4, LOW); // Se o valor de luz e on liga a saida
- digitalWrite(Diag, digitalRead(Saida2)); // Gpio2 = Gpio4 Diagnostico
- Bit0 = digitalRead(Saida1);
- Bit1 = digitalRead(Saida2);
- Bit2 = digitalRead(Saida3);
- Bit3 = digitalRead(Saida4);
- byte Selecao = Bit3 + (Bit2 << 1) + (Bit1 << 2) + (Bit0 << 3);
- switch (Selecao)
- {
- case 0:
- Tela += QdSdBdCd + Telaf; // Monta tela nova
- break;
- case 1:
- Tela += QdSdBdCl + Telaf; // Monta tela nova
- break;
- case 2:
- Tela += QdSdBlCd + Telaf; // Monta tela nova
- break;
- case 3:
- Tela += QdSdBlCl + Telaf; // Monta tela nova
- break;
- case 4:
- Tela += QdSlBdCd + Telaf; // Monta tela nova
- break;
- case 5:
- Tela += QdSlBdCl + Telaf; // Monta tela nova
- break;
- case 6:
- Tela += QdSlBlCd + Telaf; // Monta tela nova
- break;
- case 7:
- Tela += QdSlBlCl + Telaf; // Monta tela nova
- break;
- case 8:
- Tela += QlSdBdCd + Telaf; // Monta tela nova
- break;
- case 9:
- Tela += QlSdBdCl + Telaf; // Monta tela nova
- break;
- case 10:
- Tela += QlSdBlCd + Telaf; // Monta tela nova
- break;
- case 11:
- Tela += QlSdBlCl + Telaf; // Monta tela nova
- break;
- case 12:
- Tela += QlSlBdCd + Telaf; // Monta tela nova
- break;
- case 13:
- Tela += QlSlBdCl + Telaf; // Monta tela nova
- break;
- case 14:
- Tela += QlSlBlCd + Telaf; // Monta tela nova
- break;
- case 15:
- Tela += QlSlBlCl + Telaf; // Monta tela nova
- break;
- }
- server.send(200, "text/html", Tela); // Mostra Quarto desligado
- Tela = ""; // Limpa valor de temperatura e umidade
- delay(100); // Delay
- });
- server.begin(); // Inicaliza servidor
- Serial.println("HTTP server started"); // Imprime
- }
- //--------------------------------------------------
- void loop(void)
- {
- server.handleClient(); // Executa instancia
- if (digitalRead(Switch1) != Switch1_atual) // Se o valor do SW alterou
- {
- delay(40); // Delay
- if (digitalRead(Switch1) != Switch1_atual) // Se o valor do SW alterou
- {
- digitalWrite(Saida1, !digitalRead(Saida1)); // Inverte a saida lamp1
- digitalWrite(Diag, digitalRead(Saida1)); // Gpio2 = Gpio4 Diagnostico
- Switch1_atual = digitalRead(Switch1); // Atualisa o Gpio5 atual
- }
- }
- if (digitalRead(Switch2) != Switch2_atual) // Se o valor do SW alterou
- {
- delay(40); // Delay
- if (digitalRead(Switch2) != Switch2_atual) // Se o valor do SW alterou
- {
- digitalWrite(Saida2, !digitalRead(Saida2)); // Inverte a saida lamp2
- Switch2_atual = digitalRead(Switch2); // Atualisa o Gpio14 atual
- }
- }
- if (digitalRead(Switch3) != Switch3_atual) // Se o valor do SW alterou
- {
- delay(40); // Delay
- if (digitalRead(Switch3) != Switch3_atual) // Se o valor do SW alterou
- {
- digitalWrite(Saida3, !digitalRead(Saida3)); // Inverte a saida lamp3
- Switch3_atual = digitalRead(Switch3); // Atualisa o Gpio atual
- }
- }
- if (digitalRead(Switch4) != Switch4_atual) // Se o valor do SW alterou
- {
- delay(40); // Delay
- if (digitalRead(Switch4) != Switch4_atual) // Se o valor do SW alterou
- {
- digitalWrite(Saida4, !digitalRead(Saida4)); // Inverte a saida lamp2
- Switch4_atual = digitalRead(Switch4); // Atualisa o Gpio14 atual
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement