Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //LIBRERIE
- #include <ESP8266WiFi.h>
- #include <ESP8266HTTPClient.h>
- #include <ArduinoOTA.h>
- //DATI ACCESSO WIFI
- const char* ssid = "sconnesso_giu";
- const char* password = "pippo1pippo1";
- //IMPOSTAZIONI IP
- IPAddress ip(192, 168, 15, 88); //indirizzo webserver
- IPAddress gateway(192, 168, 15, 1); //idirizzo internet
- IPAddress subnet(255, 255, 255, 0);
- //TEMPO DI ATTESA PER UNA NUOVA MAIL IN SECONDI
- int MailInterval = 60;
- //PIN DA UTILIZZARE
- int Pin = D4;
- //----------------------FINE CONFIGURAZION----------------------
- void setup() {
- // AVVIO SERVER E CONNESSIONE AL WIFI
- Serial.begin(115200);
- //OTA
- ArduinoOTA.setHostname("allarme_giu");
- ArduinoOTA.setPassword((const char *)"sesuonasocazzi");
- ArduinoOTA.begin();
- //IMPOSTA LA MODALITà DEL PIN
- pinMode(Pin, INPUT_PULLUP);
- //CONNESSIONE ALLA WIFI
- WiFi.mode(WIFI_STA);
- WiFi.config (ip, gateway, subnet);
- WiFi.begin(ssid, password);
- if(WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Connessione WiFi fallita! Mi riavvio..."); delay(1000); ESP.restart(); }
- //CONVERTI ATTESA MAILINTERVAL IN SECONDI
- MailInterval = MailInterval*1000;
- }
- void Allarme() {
- Serial.println("Allarme scattato");
- //DICHIARA E AVVIA HTTP
- HTTPClient http;
- //DICHIARO E RESETTO LO STATUS HTTP
- int HttpStatus = 0;
- //TENTO DI INVIARE LA MAIL FINCHE NON HO ESITO POSITIVO "200"
- while( HttpStatus != 200) {
- http.begin("http://url");
- Serial.println("Attendo 5 secondi");
- //5 SECONDI DI ATTESA PER L'HTTP STATUS
- delay(5000);
- Serial.println("Fine attesa");
- HttpStatus = http.GET();
- Serial.println(HttpStatus);
- http.end();
- }
- //ATTESA PER LA PROSSIMA EMAIL
- delay(MailInterval);
- }
- void ContaImpulsi() {
- int i = 0;
- int allarme = 0;
- while( i < 2) { if (digitalRead(Pin) == 0) { allarme++; } i++; Serial.println("incremento"); Serial.print(i); Serial.println(""); delay(1000); }
- if (allarme == 2) { Allarme(); }
- Serial.println("Allarme ");
- Serial.print(allarme);
- Serial.println("");
- }
- void loop() {
- //OTA
- ArduinoOTA.handle();
- //CONTOLLO ALLARME
- if (digitalRead(Pin) == 0) { ContaImpulsi(); }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement