Dalam tutorial ini mari kita belajar cara mengirim email dari Mikrokontroler PIC menggunakan modul WiFi terkenal ESP8266. Tutorial ini menggunakan IC PIC16F877A dan kompiler MPLABX dan XC8 untuk pemrograman.
Di akhir tutorial ini Anda akan dapat mengirim E-mail dari ID E-mail biasa seperti Gmail, yahoo dll ke ID E-mail lainnya. Karenanya tutorial ini mengasumsikan bahwa Anda memiliki beberapa pengetahuan dasar tentang Modul ESP8266-01 dan Mikrokontroler PIC. Jika tidak, tutorial berikut akan membantu Anda
- Memulai ESP8266
- Interfacing ESP8266 dengan PIC
Jadi mari kita mulai…
Bersiap dengan Anda E-mail ID:
Setelah Anda memutuskan dari ID email mana Anda ingin mengirim email, ikuti langkah-langkah di bawah ini
Langkah 1: Kunjungi https://www.smtp2go.com/ dan Daftar sebagai pengguna baru. Masukkan nama Anda, alamat email dan kata sandi ID email Anda yang ingin Anda gunakan untuk mengirim email.
Tutorial ini menggunakan ID Email: aswinthcd @ gmail.com dan Kata Sandi: circuitdigest.
Langkah 2: Klik mendaftar dan Anda akan dikirimi surat verifikasi ke ID surat yang Anda masukkan. Dalam hal ini adalah aswinthcd @ gmail.com. Buka email dan klik "AKTIFKAN AKUN"
Langkah 3: Mungkin meminta kata sandi lagi, jika diminta masukkan kata sandi sebelumnya. Dalam hal ini adalah 'circuitdigest'. Kemudian Anda akan masuk ke situs web SMPT2GO. Sekarang alamat email Anda siap untuk mengirim email menggunakan Modul ESP8266.
Langkah 4: Langkah terakhir adalah menyandikan ID E-mail dan kata sandi ke dalam format base 64 dengan menggunakan situs web ini https://www.base64encode.org/. Kami akan menggunakan ini dalam program PIC kami
Dalam hal ini nilai yang disandikan akan terlihat seperti yang ditunjukkan pada tabel di bawah ini.
Parameter |
Format normal |
Dikodekan dalam basis 64 |
ID surat |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Kata sandi |
circuitdigest |
Y2lyY3VpdGRpZ2VzdA == |
Mempersiapkan Perangkat Keras Anda:
Skema lengkap proyek ditunjukkan di bawah ini.
Layar LCD digunakan di sini untuk tujuan debugging. Anda tidak wajib menghubungkan ini. Program akan bekerja dengan baik bahkan tanpa layar LCD. Jika Anda ingin tahu lebih banyak tentang skema, kunjungi tutorial ini. (Menghubungkan PIC dengan ESP).
Anda cukup memasang sirkuit ini di papan tempat memotong roti dan kemudian melanjutkan dengan pemrograman.
Memprogram PIC Anda untuk mengirim E-mail:
Untuk mengirim E-mail dari ESP8266 urutan perintah AT harus dikirim ke modul ESP. Langkah-langkah berikut harus diikuti untuk mengirim email dari ESP8266.
- Atur modul dalam mode AP + STA (Titik Akses dan stasiun)
- Hubungkan ke Access point untuk mendapatkan koneksi internet
- Aktifkan banyak koneksi
- Mulai server di port tertentu
- Buat koneksi TCP dengan situs web SMPT2GO
- Arahkan ke bagian Login di situs web
- Masukkan E-mail ID dan Password dalam format base64
- Masukkan From mail ID
- Masukkan To mail ID
- Masukkan Subjek email
- Masukkan badan email
- Tunjukkan akhir email
- Kirim surat
- Keluar dari koneksi TCP
Prosesnya agak panjang dan membosankan, tetapi jangan khawatir. Saya telah menyederhanakan proses dengan membuat file header dan Anda dapat menggunakannya secara langsung hanya dengan memanggil beberapa fungsi (dijelaskan di bawah) yang membuat tugas ini sangat mudah. Kode lengkap beserta file header dapat diunduh dari sini.
Catatan: Jika Anda menggunakan kode dalam proyek baru, pastikan Anda mengunduh file header dan menambahkannya ke dalam proyek Anda.
Saya telah menjelaskan beberapa bagian penting dari kode di bawah ini, bagian lainnya cukup jelas. Tetapi jika Anda ragu, silakan gunakan bagian komentar.
/ * Periksa apakah komunikasi ESP_PIC berhasil * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP tidak ditemukan"); } sementara (! esp8266_isStarted ()); // tunggu sampai ESP mengirim kembali "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP terhubung"); __delay_ms (1500); Lcd_Clear (); / * Ya komunikasi ESP berhasil -Lanjutkan * /
Bagian dari kode ini digunakan untuk memeriksa apakah ada komunikasi yang tepat antara PIC dan ESP8266. Hanya jika keduanya dapat mengirim dan menerima data melalui USART, program akan melanjutkan ke langkah berikutnya.
esp8266_mode (3);
Fungsi ini akan mengatur ESP8266 dalam mode 3. Artinya modul sekarang dapat bertindak sebagai titik akses dan juga sebagai server.
esp8266_connect ("BPAS home", "cracksun");
Fungsi ini digunakan untuk menghubungkan modul ESP8266 Anda ke Router Wifi Anda. Dalam hal ini "BPAS home" adalah nama sinyal Wifi saya dan "cracksun" adalah sandi saya. Anda harus menggunakan detail sinyal Wifi Anda sendiri.
_esp8266_enale_MUX (); // Aktifkan beberapa koneksi _esp8266_create_server (); // Buat server di port 80
Kedua fungsi ini digunakan untuk mengaktifkan banyak koneksi dan membuat server pada port 80.
_esp8266_connect_SMPT2GO ();
Sekarang, dengan menggunakan fungsi ini kita dapat membuat koneksi TCP dengan SMPT2GO. Setelah koneksi dibuat, fungsi ini juga berpindah ke halaman Login situs web.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Gunakan fungsi ini untuk memasukkan ID Email dan kata sandi Anda dalam format base 64. Seperti yang Anda lihat, nilai yang dienkode ini sama dengan yang ditunjukkan pada tabel di atas. Nilai enkode Anda akan bervariasi berdasarkan ID email dan kata sandi Anda.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Fungsi ini digunakan untuk menentukan nama ID pengirim. Dalam tutorial ini saya mengirim email menggunakan ID Gmail saya aswinthcd @ gmail.com maka saya telah meneruskannya sebagai parameter.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Fungsi ini digunakan untuk menentukan nama ID penerima. Saya ingin mengirim email saya ke akun Gmail saya yang lain, oleh karena itu saya telah memberikan parameter sebagai mailtoasiwnth @ gmail.com. Anda dapat menggunakan ID email yang Anda inginkan
_esp8266_start_mail ();
Fungsi ini menginstruksikan server SMPT2GO bahwa kita akan memberi makan di subjek dan badan email dan membuatnya disiapkan untuk hal yang sama.
_esp8266_mail_subject ("Mail dari ESP8266");
Anda dapat menggunakan fungsi ini untuk menentukan subjek email. Sebagai contoh saya telah menggunakan "Mail dari ESP8266" sebagai subjek email.
_esp8266_mail_body ("Pengujian Sukses -CircuitDigest");
Setelah memasukkan subjek, Anda dapat memasukkan badan email menggunakan fungsi ini. Sebagai contoh, saya telah menetapkan “Pengujian Sukses –CircuitDigest” sebagai badan email saya.
_esp8266_End_mail ();
Sekarang kita telah memasukkan subjek dan badan surat kita harus menginstruksikan server SMPT2GO bahwa kita sudah selesai menambahkan rincian ke surat. Ini bisa dilakukan dengan menggunakan fungsi
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Akhirnya setelah mengirim email, kita harus mengakhiri koneksi TCP dengan server SMPT2GO. Ini dilakukan dengan menggunakan fungsi di atas.
Kerja:
Setelah Anda selesai dengan perangkat keras dan program Anda. Cukup buang kode tersebut ke PIC MCU Anda. Kemudian nyalakan sirkuit Anda. Jika semuanya berjalan seperti yang diharapkan, LCD Anda akan menampilkan status proses dan akhirnya menampilkan "Surat terkirim" seperti yang ditunjukkan pada video di bawah ini. Perangkat keras Anda mungkin terlihat seperti ini.
Setelah LCD menunjukkan bahwa surat telah terkirim, periksa Kotak Masuk dan folder Spam Anda untuk surat terkirim. Anda seharusnya menerima email seperti yang ditunjukkan di bawah ini..
Itu saja sekarang Anda dapat membuat proyek IOT Anda sendiri dengan membaca data sensor dan mengirimkannya ke ID email Anda. Buat sistem peringatan Keamanan untuk rumah atau mobil Anda dengan memicu peringatan melalui surat.
Jika Anda ragu atau terjebak di tengah, silakan gunakan bagian komentar dan saya akan dengan senang hati membantu Anda.