Mengirim Notifikasi Email Dengan ESP-32 dan Protokol SMTP

Mengirim Notifikasi Email Dengan ESP-32 dan Protokol SMTP
930 x 180 AD PLACEMENT

Halo teman – teman semuanya kali ini DT Production akan memberikan tutorial bagaimana mengirim sebuah notifikasi email dari ESP-32, sehingga example ini bisa dikembangkan pada proyek – proyek yang dikerjakan teman – teman. contohnya mengirim data pembacaan sensor ke email dll.

Ada banyak cara yang dapat kita manfaatkan untuk mengirimkan data dari kontroler seperti wifi kontroler NodeMCU, Wemos, ESP-32 dll. teman – teman dapat menggunakan layanan pihak ke-3 atau sering dibilang Third Party seperti IFTTT. akan tetapi pada kesempatan ini, kita akan belajar bagaimana membuat sebuah REST API dengan PHP bisa dibilang REST API dikarenakan kita akan dihubungkan ke aplikasi lain. jadi Skema datanya akan seperti ini.

Dapat dilihat pada gambar diatas bahwa kita akan mengirimkan gmail menggunakan Simple Mail Transfer Protocol (SMTP). yang tentunya kita juga akan membuat sebuah email (Gmail) yang berperan sebagai sender / pengirim. yang nantinya email destination / tujuan akan kita masukan kedalam skrip smtp yang berformat .php pastinya. Jika teman – teman belum paham apa itu SMTP silahkan baca teorinya berikut ini.

Menurut niagahoster.co.id

930 x 180 AD PLACEMENT
Simple Mail Transfer Protocol atau SMTP adalah suatu protokol untuk berkomunikasi dengan server guna mengirimkan email dari lokal email ke server, sebelum akhirnya dikirimkan ke server email penerima.

Dan kini kita tiba pada proyek percobaan yang akan kita buat. Jadi pada peta proyek nya adalah, kita akan menggunakan protokol http dimana kita akan menggunakan POST Method yang disediakan dari library HTTP Client ESP32 ataupun ESP8266. silahkan teman – teman pada tutorial sebelumnya tentang menggunakan POST Method pada ESP32 . dimana ada 2 parameter yang akan kita buat yang masing – masing nilainya yaitu ‘pesan’ dan ‘email penerima’. masing – masing dari kedua nilai tersebut akan kita tampung kedalam variabel yang bertipe String.

Perlu diingat pada proyek ini teman – teman harus menyediakan 1 akun email, bisa menggunakan Gmail karna pada proyek ini kita akan menggunakan Gmail. Selanjutnya teman – teman juga harus berlangganan Shared Hosting terlebih dahulu. teman – teman dapat menggunakan layanan shared hosting gratisan yaitu 000webhost untuk jangka pendek dan jika ingin lebih bagus gunakanlah layan hosting berbayar.

Sampai disini diharapkan teman – teman sudah mempunyai kedua syarat diatas. Selanjutnya kita akan melakukan seting pada email sender/pengirim yang akan kita gunakan. Dimana kita akan membuat akun email tersebut dapat ditautkan atau dihubungkan dengan aplikasi lain atau sistem yang akan kita buat ini. ikuti langkah – langkah berikut.

Belum punya ESP-32 ?? teman – teman bisa dapatkan di toko DT Production, silahkan klik tombol berikut untuk pembelian via Tokopedia.

930 x 180 AD PLACEMENT

 

Pengaturan Email

  • Buka dan login ke akun Gmail yang sudah dibuat sebagai sender/pengirim.
  • Kemudian pada dashboard gmail, klik setelan (icon berlogo gear).
  • Selanjutnya klik setelan pada menu dropdown.
  • Lalu teman – teman masuk pada menu akun & impor selanjutnya pada menu “Ubah setelan akun” pilih Setelan Akun Google Lainya. lihat gambar dibawah.
  •  
  • Pilih keamanan
  •  
  • Scroll ke bawah dan temukan menu “Akses Aplikasi Kurang Aman”. dan klik Aktifkan Akses.
  •  

Sampai disini kita sudah berhasil mengatur agar email sender bisa terhubung dengan sistem yang akan kita buat. Jika tahap ini dilewatkan tentu saja google email akan di cegat oleh google, sehingga hanya notifikasi dari google saja yang akan masuk kepada kotak masuk email tujuan.

Membuat File smtp.php

Pada file ini berfungsi untuk mengambil nilai yang ada pada parameter – parameter yang kita kirimkan dari kontroler ESP-32. Selanjutnya nilai tersebut akan kita tampung kedalam variabel dan akan kita masukan pada kondisi untuk menggunakan protokol SMTP dalam hal mengirimkan email pada penerima.

  • Masuk dan bukalah file manager pada layanan hosting teman – teman
  • Buatlah sebuah folder bernama smtp pada direktori Public_html
  • Selanjutnya buatlah sebuah file bernama smtp.php
  • Salin dan tempelkan code berikut kedalam smtp.php
<?php 
if (isset($_POST['destination']) &amp;&amp; isset($_POST['konten'])) {
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

$mail_destination = $_POST['destination'];
$konten = $_POST['konten'];
$email_sender = "emailpengirim@gmail.com"; //ganti dengan akun email sender
$password_sender = "password-email-pengirim"; //ganti dengan password akun email sender
$mail_header = "dt-production.com";

// Konfigurasi SMTP
$mail-&gt;isSMTP();
$mail-&gt;Host = 'smtp.gmail.com';
$mail-&gt;SMTPAuth = true;
$mail-&gt;Username = $email_sender;
$mail-&gt;Password = $password_sender;
$mail-&gt;SMTPSecure = 'tls';
$mail-&gt;Port = 587;

$mail-&gt;setFrom('ESP-32@'.$mail_header, 'ESP-32 NO-REPLY');
$mail-&gt;addReplyTo('ESP-32@'.$mail_header, 'ESP-32');

// Menambahkan penerima atau beberapa penerima
$mail-&gt;addAddress($mail_destination); //dengan variabel
//$mail-&gt;addAddress('emailsaya@gmail.com'); //model string

// Menambahkan cc atau bcc 
$mail-&gt;addCC('cc@dt-production.com');
$mail-&gt;addBCC('bcc@dt-production.com');

// Subjek email
$mail-&gt;Subject = 'Email FROM ESP-32';

// Mengatur format email ke HTML
$mail-&gt;isHTML(true);

// Konten/isi email
$mailContent = "&lt;h1&gt;ESP-32 Mail (No Reply)&lt;/h1&gt; &lt;p&gt;".$konten."&lt;/p&gt;";
$mail-&gt;Body = $mailContent;

// Menambahakn lampiran
//$mail-&gt;addAttachment('archive.zip');
//$mail-&gt;addAttachment('lmp/file2.png', 'nama-baru-file2.png'); //atur nama baru

// Kirim email
if(!$mail-&gt;send()){
    echo 'False';
    //echo 'Mailer Error: ' . $mail-&gt;ErrorInfo;
}else{
    echo 'True';
}
}
?>

Harap Baca!

930 x 180 AD PLACEMENT
Pada code smtp.php ada beberapa nilai dari variabel yang perlu diubah sesuai dengan keterangan pada variabel tersebut. syntax “//” merupakan keterangan.
  • Selanjutnya simpan file smtp.php.
  • Kemudian kita akan teman – teman perlu mengunduh library yang akan kita gunakan. klik disini untuk mengunduh.
  • Kemudian upload ke direktori file hosting bersama dengan file smtp.php
  • Sampai disini teman – teman akan mendapatkan struktur file sebagai berikut.

Pemrograman Arduino IDE

Pada tahap ini kita akan melakukan upload sketch untuk proyek ini pada kontroller ESP-32, ada beberapa hal yang harus diperhatikan bahwa teman-teman perlu mengganti nilai – nilai dari variabel yang pada sketch contohnya : nama WiFi & Password, alamat email penerima, isi pesan, kemudian Domain dari website teman – teman sendiri. berikut ini adalah sketch nya.

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

String mail_destination = "emailsaya@gmail.com"; 
String konten = "Haloo ini email dari ESP-32";

void setup() {
  const char* ssid = "DTproduction"; //Nama WiFi
  const char* password = "abcdefg"; //Password WiFi
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting..");
  }
  Serial.println("Connection OK");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin("http://domainsaya.com/smtp/smtp.php");
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");
    int httpResponseCode = http.POST("destination=" + mail_destination + "&amp;konten=" + konten); //post 2 parameter
    delay(200);
    if (httpResponseCode &gt; 0) {
      String response = http.getString();
      Serial.println(response); //menampilkan respon dari website
    } else {
      Serial.print("Error on sending POST: ");
      Serial.println(httpResponseCode);
    }
    http.end();  
  } else {
    Serial.println("Error in WiFi connection");
  }
  delay(10000);
}

930 x 180 AD PLACEMENT

Programmer & Videographer.

2 thoughts on “Mengirim Notifikasi Email Dengan ESP-32 dan Protokol SMTP

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

You might also like
930 x 180 AD PLACEMENT