ESP32/ESP8266 Kirim Notifikasi Email menggunakan Skrip PHP

Dalam proyek ini Anda akan membangun klien ESP32 atau ESP8266 yang membuat permintaan HTTP POST ke skrip PHP untuk mengirim pemberitahuan email dengan pembacaan sensor.

Anda juga dapat mengatur nilai ambang batas, sehingga pemberitahuan email Anda hanya dikirim jika suhu/kelembaban/tekanan di atas nilai tertentu.

Sebagai contoh, kami akan menggunakan sensor BME280 yang terhubung ke papan ESP32 atau ESP8266. Anda dapat memodifikasi kode yang disediakan untuk mengirim bacaan dari sensor yang berbeda atau bahkan menggunakan beberapa papan.

Ini adalah cara yang bagus untuk mengirim pemberitahuan email menggunakan ESP32 atau ESP8266 tanpa bergantung pada IFTTT atau server SMTP.

Untuk membangun proyek ini, Anda akan:

    • Host server dan siapkan nama domain

    • Buat skrip PHP untuk mengirim pemberitahuan email

    • Program ESP32 atau ESP8266 dengan Arduino IDE

Proyek ini juga merupakan tambahan yang bagus untuk dibangun di atas proyek kami sebelumnya:

    ESP32/ESP8266 Masukkan Data ke DatabaseMySQL menggunakan PHP dan Arduino IDE

    Visualisasikan Pembacaan Sensor Anda dariMana Saja di Dunia

1. Hosting Aplikasi PHP Anda

Tujuan dari proyek ini adalah untuk memiliki nama domain dan akun hosting Anda sendiri yang memungkinkan Anda mengirim pemberitahuan email (tanpa menggunakan server SMTP, IFTTT, dll…).

Berikut adalah ikhtisar tingkat tinggi tentang cara kerja proyek:

Saya sarankan menggunakan salah satu layanan hosting berikut yang dapat menangani semua persyaratan proyek:

    Bluehost (mudah digunakan dengan cPanel): nama domain gratis saat Anda mendaftar untuk paket 3 tahun. Saya sarankan memilih opsi situs web tak terbatas;

    Digital Ocean: Server Linux yang Anda kelola melalui baris perintah. Saya hanya merekomendasikan opsi ini untuk pengguna tingkat lanjut.

Kedua layanan tersebut adalah yang saya gunakan dan rekomendasikan secara pribadi, tetapi Anda dapat menggunakan layanan hosting lainnya. Setiap layanan hosting yang menawarkan PHP dan MySQL akan bekerja dengan tutorial ini. Jika Anda tidak memiliki akun hosting, saya sarankan untuk mendaftar ke Bluehost.

Dapatkan Hosting dan Nama Domain denganBluehost »

Saat membeli akun hosting, Anda juga harus membeli nama domain. Jika Anda menyukai proyek kami, Anda dapat mempertimbangkan untuk mendaftar ke salah satu layanan hosting yang direkomendasikan, karena Anda akan mendukung pekerjaan kami.

Catatan: Anda juga dapat menjalankan server LAMP (Linux, Apache, MySQL, PHP) di Raspberry Pi, tetapi tidak dapat mengirim email secara mandiri. Untuk mengirim email dengan Raspberry Pi menggunakan PHP, Anda perlu menggunakan server SMTP (Simple Mail Transfer Protocol).

2. Skrip PHP HTTP – Kirim Pemberitahuan Email

Setelah mendaftar untuk akun hosting dan menyiapkan nama domain, Anda dapat masuk ke cPanel atau dasbor serupa.

Setelah itu, ikuti langkah selanjutnya untuk membuat skrip PHP yang bertanggung jawab untuk menerima permintaan masuk dari ESP32/ESP8266 dan mengirim email.

Jika Anda menggunakan penyedia hosting dengan cPanel, buka Advanced dan cari “File Manager“:

Kemudian, pilih opsi public_html dan tekan tombol “+ File” untuk membuat file .php baru.

Catatan: jika Anda mengikuti tutorial ini dan Anda tidak terbiasa dengan PHP, saya sarankan untuk membuat file yang sama persis. Jika tidak, Anda harus memodifikasi sketsa ESP yang disediakan dengan jalur URL yang berbeda.

Buat file baru di /public_html dengan nama dan ekstensi persis ini: email-notification.php

Edit file yang baru dibuat (email-notification.php) dan salin skrip berikut:



Sebelum menyimpan file, Anda perlu memodifikasi variabel $email_address dengan alamat email penerima:

Setelah menambahkan email penerima, simpan file dan lanjutkan dengan tutorial ini. Jika Anda mencoba mengakses nama domain Anda di jalur URL berikutnya, Anda akan melihat yang berikut:

Jika Anda melihat pesan itu, itu berarti semuanya sedang diatur dengan benar. Anda dapat melanjutkan proyek ini.

3. Mempersiapkan ESP32 atau ESP8266 Anda

Proyek ini kompatibel dengan papan ESP32 dan ESP8266. Anda hanya perlu merakit sirkuit sederhana dan mengunggah sketsa yang disediakan untuk mempublikasikan pembacaan suhu, kelembaban, dan tekanan ke skrip PHP Anda, yang kemudian akan bertanggung jawab untuk menangani notifikasi email.

Bagian yang Diperlukan

Untuk contoh ini kita akan mendapatkan pembacaan sensor dari sensor BME280. Berikut daftar bagian yang Anda butuhkan untuk membangun sirkuit untuk proyek ini:

    Papan ESP32 (baca papan dev ESP32Terbaik)

    • Alternatif – Papan ESP8266 (baca papandev ESP8266 Terbaik)

     Sensor BME280

    Kabel jumper

    Breadboard

Skema

Modul sensor BME280 yang kami gunakan berkomunikasi melalui protokol komunikasi I2C, jadi Anda perlu menghubungkannya ke pin ESP32 atau ESP8266 I2C.

Kabel BME280 ke ESP32

Jadi, rakit sirkuit Anda seperti yang ditunjukkan pada diagram skema berikut (baca Panduan lengkap untuk ESP32 dengan BME280).

Rakit sirkuit Anda seperti pada diagram skema berikutnya jika Anda menggunakan papan ESP8266 (baca Panduan lengkap untuk ESP8266 dengan BME280).

Sketsa ESP32/ESP8266

Kami akan memprogram ESP32/ESP8266 menggunakan Arduino IDE, jadi Anda harus menginstal add-on ESP32/ESP8266 di Arduino IDE Anda. Ikuti salah satu tutorial berikutnya tergantung pada papan yang Anda gunakan:

    Instal Papan ESP32 di Arduino IDE – Anda juga perlu menginstal Perpustakaan BME280 dan library Adafruit_Sensor

    Instal Board ESP8266 di Arduino IDE – Anda juga perlu menginstal Library BME280 dan library Adafruit_Sensor

Setelah menginstal add-on papan yang diperlukan, salin kode berikut ke Arduino IDE Anda, tetapi jangan mengunggahnya dulu. Anda perlu membuat beberapa perubahan untuk membuatnya bekerja untuk Anda.






Mengatur kredensial jaringan Anda

Anda perlu mengubah baris berikut dengan kredensial jaringan Anda: SSID dan kata sandi. Kode dikomentari dengan baik di mana Anda harus membuat perubahan.

Menyetel nama server Anda

Anda juga perlu mengetikkan nama domain Anda, sehingga ESP menerbitkan bacaan ke server Anda sendiri.

Sekarang, Anda dapat mengunggah kode ke papan Anda. Ini harus bekerja langsung baik di papan ESP32 atau ESP8266. Jika Anda ingin mempelajari cara kerja kode, baca bagian selanjutnya.

Cara Kerja Kode

Berikut ringkasan singkat tentang cara kerja kode:

    • Impor semua perpustakaan untuk membuatnya berfungsi (itu akan mengimpor perpustakaan ESP32 atau ESP8266 berdasarkan papan yang dipilih di Arduino IDE Anda);

    • Tetapkan variabel yang mungkin ingin Anda ubah (apiKeyValue);

    • apiKeyValue hanyalah string acak yang dapat Anda modifikasi. Ini digunakan untuk alasan keamanan, jadi hanya siapa pun yang mengetahui kunci API Anda yang dapat mengirim pemberitahuan email.

    • Inisialisasi komunikasi serial untuk keperluan debugging;

    • Buat koneksi Wi-Fi dengan router Anda;

    • Inisialisasi sensor BME280 untuk mendapatkan pembacaan suhu, kelembaban dan tekanan;

Kemudian, di sisa setup() adalah tempat Anda benar-benar membuat HTTP POST dengan pembacaan BME280 terbaru:

Anda dapat mengomentari variabel httpRequestData di atas yang menggabungkan semua pembacaan BME280 dan menggunakan variabel httpRequestData di bawah ini untuk tujuan pengujian:

Demonstrasi

Setelah menyelesaikan semua langkah, aktifkan papan ESP Anda dan biarkan membuat permintaan HTTP ke server Anda:

Jika semuanya berfungsi dengan baik, inilah yang akan Anda lihat di Serial Monitor Arduino IDE Anda:

Buka klien email Anda, Anda harus memiliki email baru dengan subjek "Bacaan [BARU] ESP BME280" dengan pembacaan suhu terbaru:

Untuk mengirim email baru, tekan tombol RESET/ENABLE on-board ESP untuk memulai ulang dan bacaan baru akan dikirim melalui email.

Untuk aplikasi terakhir, saya sarankan menggunakan deep sleep untuk membuat ESP mengirim email setiap X jumlah menit/jam dengan konsumsi daya yang rendah. Baca salah satu panduan ini untuk menambahkan tidur nyenyak ke sketsa Anda:

    ESP32 Deep Sleep dengan Arduino IDE danSumber Bangun

    ESP8266 Deep Sleep dengan Arduino IDE

Aktifkan Pemberitahuan Ambang Batas

Terakhir, ingatlah bahwa setiap kali Anda me-restart ESP Anda (atau ESP bangun dari tidur nyenyak), itu akan mengirim pemberitahuan email baru dengan nilai saat ini. Mungkin berguna untuk menetapkan nilai ambang sehingga Anda hanya menerima pemberitahuan email saat pembacaan Anda di atas atau di bawah ambang batas.

Dalam skrip PHP Anda (email-notification.php), batalkan komentar pada pernyataan if berikut:

Ini akan terlihat seperti ini:

Anda dapat mengubah pernyataan if tersebut dengan tipe nilai dan hanya mengirim email berdasarkan kondisi tersebut. Dengan kode saat ini, hanya akan mengirimkan email notifikasi saat suhu di atas 24.0ºC.

Membungkus

Dalam tutorial ini Anda telah belajar cara mengirim email dengan ESP32 dan ESP8266 menggunakan server dan nama domain Anda sendiri.

Contoh yang diberikan sesederhana mungkin sehingga Anda dapat memahami cara kerja semuanya. Setelah memahami contoh ini, Anda dapat mengubah konten email, mempublikasikan pembacaan sensor yang berbeda, menggunakan beberapa papan ESP, dan banyak lagi.

Anda mungkin juga suka membaca:

    [Kursus] Belajar ESP32 dengan Arduino IDE

    ESP32/ESP8266 Masukkan Data ke Database MySQLmenggunakan PHP dan Arduino IDE

    Visualisasikan Pembacaan Sensor Anda dariMana Saja di Dunia

    ESP32 Deep Sleep dengan Arduino IDE danSumber Bangun

    ESP8266 Deep Sleep dengan Arduino IDE

Sumber : randomnerdtutorials.com

Posting Komentar

0 Komentar