Projekt je dostupný zadarmo na stiahnutie!
Arduino ESP8266 ESP32 PHP E-mail (Mailer) Event

Notifikátor udalostí na e-mail


Notifikátor udalostí odosiela e-maily prostredníctvom php stránky na váš mail v prípade krízových, alebo dôležitých informácii. Systém je možné použiť pre odosielanie e-mailov pre situácie:
  • Pohyb v noci okolo PIR senzora - vhodné pre areály, haly
  • Senzor vytopenia - vhodné pre práčovne, byty
  • Teplotné senzory - oznam pri mínusovej teplote - vhodné pre sady, kotolne
  • Prekročenie vlhkosti, tlaku vzduchu - vhodné pre meteostanice
  • Prekročenie otáčok motora - hall snímač s magnetom
  • Prekročenie napätia/prúdu
  • a ďalšie veličiny, ktoré je možné merať
  • Úlohou notifikátora je teda priniesť krátku správu o statuse domácnosti/miestnosti/pracovného pristoru a o výchylkách z normálu informovať okamžite. Vďaka nízkej dátovej náročnosti (pár bajtov) je možné použiť i 3G router s dátovým tarifom a naň pripojiť ESP dosky, alebo Arduino a odosielať okrem problému aj doplnkové informácie, napríklad aktuálnu teplotu a pod.

    Senzor pohybu pre objekt zabezpečený počas nočných hodín - tichý alarm:

    Senzor teploty - využitie v sade:

    Vytopenie:

    Akcia na vytopenie:

    Arduino + Ethernet W5100

    #include <SPI.h>
    #include <Ethernet.h>
    #define Hostname "Arduino"   
    byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};    
    char server[] = "www.mywebsite.com";      
    IPAddress ip(192, 168, 1, 254); //IP adresa zo subnet rozsahu
    EthernetClient client;   
    void setup() {
     Serial.begin(9600);
    }
     
    void loop() {
       if (Ethernet.begin(mac) == 0) {    
        Serial.println("Chyba konfiguracie DHCP, nastavim manualnu IPv4"); 
        Ethernet.begin(mac, ip);                       
      }  
    
    
    if (client.connect(server, 80)) { 
        Serial.println("Pripojenie na webserver prebehlo uspesne.."); 
        client.print("GET /email.php");   //umiestnenie php scriptu na webserveri  
        client.println(" HTTP/1.1");              
        client.println("Host: www.mywebsite.com");
        client.println("Connection: close");    
        client.println();                       
     client.stop();    
     Serial.println("E-mail uspesne odoslany!"); 
      } else {                                          
        Serial.println("Pripojenie neuspesne"); 
      }  
    delay(10000);
    }
    			

    Arduino + Ethernet W5500

    #include <SPI.h>
    #include <Ethernet2.h>
    #define Hostname "Arduino"   
    byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};    
    char server[] = "www.mywebsite.com";      
    IPAddress ip(192, 168, 1, 254); //IP adresa zo subnet rozsahu
    EthernetClient client;   
    void setup() {
     Serial.begin(9600);
    }
     
    void loop() {
       if (Ethernet.begin(mac) == 0) {    
        Serial.println("Chyba konfiguracie DHCP, nastavim manualnu IPv4"); 
        Ethernet.begin(mac, ip);                       
      }  
    
    
    if (client.connect(server, 80)) { 
        Serial.println("Pripojenie na webserver prebehlo uspesne.."); 
        client.print("GET /email.php");   //umiestnenie php scriptu na webserveri  
        client.println(" HTTP/1.1");              
        client.println("Host: www.mywebsite.com");
        client.println("Connection: close");    
        client.println();                       
     client.stop();    
     Serial.println("E-mail uspesne odoslany!"); 
      } else {                                          
        Serial.println("Pripojenie neuspesne"); 
      }  
    delay(10000);
    }
    			

    NodeMCU (ESP8266)

    #include <ESP8266WiFi.h>
    #include <WiFiClientSecure.h>
    
    const char* ssid = "wifimeno";
    const char* password = "wifiheslo";
    
    const char* host = "mojweb.xxx";
    const int httpsPort = 443;
    const char* fingerprint = "35 85 74 EF 67 35 A7 CE 40 69 50 F3 C0 F6 80 CF 80 3B 2E 19"; //odtlacok sha1 certifikatu
    
    void setup() {
      Serial.begin(9600);
      Serial.println();
      Serial.print("connecting to ");
      Serial.println(ssid);
      WiFi.mode(WIFI_STA);
      WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi connected");
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
    
      
    
    }
    
    void loop() {
      // Use WiFiClientSecure class to create TLS connection
      WiFiClientSecure client;
      Serial.print("connecting to ");
      Serial.println(host);
      if (!client.connect(host, httpsPort)) {
        Serial.println("connection failed");
        return;
      }
    
      if (client.verify(fingerprint, host)) {
        Serial.println("certificate matches");
      } else {
        Serial.println("certificate doesn't match");
      }
    
      String url = "/email.php";
      Serial.print("requesting URL: ");
      Serial.println(url);
    
      client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                   "Host: " + host + "\r\n" +
                   "User-Agent: BuildFailureDetectorESP8266\r\n" +
                   "Connection: close\r\n\r\n");
                   delay(10000);
    }
    

    PHP e-mail sender:

       <?php
    $sprava= "Ahoj svet!";
    $sprava= wordwrap($msg,70);
    mail("adresaprijimatela@jehomail.com","Hello",$sprava);
    ?>