Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Este sketch aciona o sistema de irrigação
- O sistema é ligado automaticamente a cada tempo calculado por
- numero de segundos / 40 segundos
- Está programado para ligar a cada 86400 segundos (24 Horas) 2160 ciclos de 40 segundos
- O valor é definido para variavel count.
- O sistema fica ligado pelo tempo definido pela variavel Tempo em usegundos.
- A tecla ajuste deine o horario de inicio do ciclo de aguar.
- Sistem rodando a partir de 09/06/2017
- */
- extern "C"
- {
- #include "user_interface.h"
- }
- os_timer_t mTimer;
- unsigned int Count = 1;
- byte Flag2;
- #include <ESP8266WebServer.h> // Bibioteca para Servidor Web ESP8266
- //#include "setting.h"
- const char* ssid = "sss"; // Sua rede
- const char* password = "pppp"; // Sua senha
- ESP8266WebServer server(80); // Instancia server
- unsigned long Intervalo = 0; // Tempo decorrido
- unsigned long Tempo = 60000; // 60 Segundos
- // Strings com HTML
- String A_1 = "<!DOCTYPE HTML><html><head><meta http-equiv='refresh' content='1;URL=/Controle'/></head><h1><center> Controle de Agua</center>";
- String A_2 = "</p></center><h3><BR></h3><html>\r\n";
- String Al = ""; // Agua ligada
- String Ad = ""; // Agua desligada
- String Ail = "";
- String Aid = "";
- String Agua;
- String Hora;
- String Min;
- int HoraT = 0;
- int MinT = 0;
- #define Saida1 2 // GPIO Port para ligar Controle do triac (Pino 2 do MOC3023)
- const int Switch1 = 4; // GPIO Port para ligar o interruptor
- byte Switch1_atual = 0; // Variavel para staus de GPIO (Status do interruptor)
- int Flag1 = 0;
- //---------------------------
- void tCallback(void *tCall)
- {
- Count++;
- Flag2 = 0;
- }
- //---------------------------
- void usrInit(void)
- {
- os_timer_disarm(&mTimer);
- os_timer_setfn(&mTimer, tCallback, NULL);
- os_timer_arm(&mTimer, 30000, true); // Interrupt a cada 30.000ms (30 seg)
- }
- //---------------------------------------
- void setup(void)
- {
- usrInit(); //iniciar a interrupcao
- Al += A_1; // Monta tela pra informar que a luz
- Al += "<p><center>Agua</p><p><a href=\"/Controle?Agua=off \"><button style=\"background-color: rgb(255, 0, 0);height: 100px; width: 200px;\"><h1> ON</h1></button></a>";
- Al += "<p><center> </p>";
- Al += "<p><center> </p>";
- Al += "<p><a href=\"/Controle?Hora=on \"><button style=\"background-color: rgb(255, 0, 0);height: 50px; width: 150px;\"><h1>Acerta+1H</h1></button></a>";
- Al += "<p><a href=\"/Controle?Min=on \"><button style=\"background-color: rgb(255, 0, 0);height: 50px; width: 150px;\"><h1>Acerta+1M</h1></button></a>";
- Ad += A_1; // Monta tela pra informar que a luz
- Ad += "<p><center>Agua</p><p><a href=\"/Controle?Agua=on \"><button style=\"background-color: rgb(0, 255, 0);height: 100px; width: 200px;\"><h1> OFF</h1></button></a>";
- Ad += "<p><center> </p>";
- Ad += "<p><center> </p>";
- Ad += "<p><a href=\"/Controle?Hora=on \"><button style=\"background-color: rgb(255, 0, 0);height: 50px; width: 150px;\"><h1>Acerta+1H</h1></button></a>";
- Ad += "<p><a href=\"/Controle?Min=on \"><button style=\"background-color: rgb(255, 0, 0);height: 50px; width: 150px;\"><h1>Acerta+1M</h1></button></a>";
- pinMode(Switch1, INPUT_PULLUP); // Define GPIO5 como entrada e liga o resistor de pullup
- Switch1_atual = digitalRead(Switch1); // Atualisa status de GPIO
- pinMode(Saida1, OUTPUT); // Define GPIO como saida
- digitalWrite(Saida1, LOW); // Liga GPIO
- Serial.begin(115200); // Inicialisa o serial port em 115200
- WiFi.begin(ssid, password); // Inicialisa o wifi
- IPAddress subnet(255, 255, 255, 0); // Acrescentei para fixar o IP 12/5/2017
- WiFi.config(IPAddress(192, 168, 0, 28), IPAddress(192, 168, 0, 1), subnet); // Idem
- 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());
- server.on("/", []() // Ao requeste
- { server.send(200, "text/html", Al); // Executa o HTML Al (Agua ligada)
- });
- server.on("/Controle", []() // Ao requeste /Agua
- {
- Agua = server.arg("Agua"); // Recupera o valor do parametro luz enviado
- Hora = server.arg("Hora");
- Min = server.arg("Min");
- if (Agua == "off") digitalWrite(Saida1, LOW); // Se o valor de Agua e off desliga a saida
- if (Agua == "on") digitalWrite(Saida1, HIGH); // Se o valor de Agua e on liga a saida
- if (Hora == "on") Count = Count + 120; // Se o valor de Tempo e off muda horario de ligar
- if (Min == "on") Count = Count + 2; // Se o valor de Tempo e off muda horario de ligar
- if (digitalRead(Saida1) == HIGH) // Se a saida esta ligada, carrega a pagina "ligada"
- {
- Ail += Al; // Monta tela nova Agua ligada
- Ail += "<p><center>Horas: " + String(HoraT) + ":" + String(MinT) + " </p>";
- Ail += A_2;
- server.send(200, "text/html", Ail); // Mostra Agua ligada
- Ail = ""; // Limpa valor de temperatura e umidade
- }
- if (digitalRead(Saida1) == LOW) // Se a saida esta desligada, carrega a pagina "desligada"
- {
- Aid += Ad; // Monta tela nova Agua desligada
- Aid += "<p><center>Horas: " + String(HoraT) + ":" + String(MinT) + " </p>";
- Aid += A_2;
- server.send(200, "text/html", Aid); // Mostra Agua desligada
- Aid = ""; // Limpa valor de temperatura e umidade
- }
- delay(100); // Delay
- });
- server.begin(); // Inicaliza servidor
- Serial.println("HTTP server started"); // Imprime
- Intervalo = millis();
- }
- //--------------------------------------------------
- void loop(void)
- {
- server.handleClient(); // Executa instancia
- if (digitalRead(Saida1) == HIGH)
- {
- if (Flag1 == 0)
- {
- Flag1 = 1;
- Intervalo = millis();
- }
- if ( millis() - Intervalo >= Tempo)
- {
- digitalWrite(Saida1, LOW);
- }
- }
- if (digitalRead(Saida1) == LOW)
- {
- Flag1 = 0;
- }
- if (Flag2 == 0)
- {
- Flag2 = 1;
- if (Count >= 2880) // 24 Horas 86400 seg 86400/30 = 2880
- {
- digitalWrite(Saida1, HIGH);
- Count = 0;
- }
- }
- HoraT = Count / 120;
- MinT = (Count / 2) - (HoraT * 60);
- yield(); //um putosegundo soh pra respirar
- //unsigned long MeuID = ESP.getFlashChipSize();
- //Serial.println(MeuID,HEX);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement