Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //LIBRERIE
  2. #include <ESP8266WiFi.h>
  3. #include <ESP8266HTTPClient.h>
  4. #include <ArduinoOTA.h>
  5.  
  6. //DATI ACCESSO WIFI
  7. const char* ssid = "sconnesso_giu";
  8. const char* password = "pippo1pippo1";
  9.  
  10. //IMPOSTAZIONI IP
  11. IPAddress ip(192, 168, 15, 88); //indirizzo webserver
  12. IPAddress gateway(192, 168, 15, 1); //idirizzo internet
  13. IPAddress subnet(255, 255, 255, 0);
  14.  
  15. //TEMPO DI ATTESA PER UNA NUOVA MAIL IN SECONDI
  16. int MailInterval = 60;
  17.  
  18. //PIN DA UTILIZZARE
  19. int Pin = D4;
  20.  
  21. //----------------------FINE CONFIGURAZION----------------------
  22.  
  23. void setup() {
  24.   // AVVIO SERVER E CONNESSIONE AL WIFI
  25.   Serial.begin(115200);
  26.  
  27.   //OTA
  28.   ArduinoOTA.setHostname("allarme_giu");
  29.   ArduinoOTA.setPassword((const char *)"sesuonasocazzi");
  30.   ArduinoOTA.begin();
  31.  
  32.   //IMPOSTA LA MODALITà DEL PIN
  33.   pinMode(Pin, INPUT_PULLUP);
  34.  
  35.   //CONNESSIONE ALLA WIFI
  36.   WiFi.mode(WIFI_STA);
  37.   WiFi.config (ip, gateway, subnet);
  38.   WiFi.begin(ssid, password);
  39.   if(WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Connessione WiFi fallita! Mi riavvio..."); delay(1000); ESP.restart(); }
  40.  
  41.   //CONVERTI ATTESA MAILINTERVAL IN SECONDI
  42.   MailInterval = MailInterval*1000;
  43. }
  44.  
  45. void Allarme() {
  46.   Serial.println("Allarme scattato");
  47.   //DICHIARA E AVVIA HTTP
  48.   HTTPClient http;
  49.    
  50.   //DICHIARO E RESETTO LO STATUS HTTP
  51.   int HttpStatus = 0;
  52.  
  53.   //TENTO DI INVIARE LA MAIL FINCHE NON HO ESITO POSITIVO "200"
  54.   while( HttpStatus != 200) {
  55.     http.begin("http://url");
  56.     Serial.println("Attendo 5 secondi");
  57.     //5 SECONDI DI ATTESA PER L'HTTP STATUS
  58.     delay(5000);
  59.     Serial.println("Fine attesa");
  60.     HttpStatus = http.GET();
  61.     Serial.println(HttpStatus);
  62.     http.end();
  63.   }
  64.  
  65.   //ATTESA PER LA PROSSIMA EMAIL
  66.   delay(MailInterval);
  67. }
  68.  
  69. void ContaImpulsi() {
  70.    int i = 0;
  71.    int allarme = 0;
  72.    while( i < 2) { if (digitalRead(Pin) == 0)  { allarme++; } i++; Serial.println("incremento"); Serial.print(i); Serial.println(""); delay(1000); }
  73.    if (allarme == 2) { Allarme(); }
  74.    Serial.println("Allarme ");
  75.    Serial.print(allarme);
  76.    Serial.println("");
  77. }
  78.  
  79. void loop() {
  80.   //OTA
  81.   ArduinoOTA.handle();
  82.  
  83.   //CONTOLLO ALLARME
  84.   if (digitalRead(Pin) == 0)  { ContaImpulsi(); }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement