Home TutorialArduino Belajar Arduino : SIM800L Sebagai SMS Gateway

Belajar Arduino : SIM800L Sebagai SMS Gateway

by Wahyu Rudiyan Saputra
Mau bikin SMS Gateway atau pengen bikin alat yang bisa nerima SMS menggunakan jaringan GSM sekarang ga perlu lagi mahal-mahal. SimCom merilis produk barunya yang lebih murah yaitu SIM800L. SIM800L memiliki fitur yang lebih baik dari pendahulunya, SIM900. Perbandingan mendasar dari kedua perangkat ini adalah ukuran SIM800L yang lebih kecil daripada SIM900.
SIM800L bekerja pada rentang tegangan 3.4-4.4Volt, dengan begitu perangkat ini membutuhkan supply daya dari regulator adjustment. Spesifikasi teknis dari perangkat ini sendiri yaitu:
    • Chip SIM800L
    • Tegangan kerja 3.4 – 4.4 volt
    • Mendukung Quad Band (850, 900, 1800, 1900)
    • Power Transmisi
      • Class 4 (2W) pada GSM 800 dan EGSM 900
      • Class 1 (1W) pada DCS 1800 dan PCS 1900
    • Konektivitas GPRS
    • Rentang temperatur kerja -40 ~ +85 clecius
    • Antarmuka komunikasi menggunakan Serial
Untuk informasi lebih lengkap dapat dilihat pada datasheet (download disini) dan untuk tabel Command SIM800L (download disini).
SIM800L juga memiliki Pin untuk Dering (Ring), Speaker, Mikrofon, dan Speaker serta untuk kartu SIM GSM pada modul yang digunakan kali ini membutuhkan kartu berukuran micro. Format pinout dari modul ini sendiri dapat dilihat seperti pada gambar dibawah ini.

Pengaturan Tegangan Kerja

Sebelumnya kita membahas tegangan kerja SIM800L berada pada kisaran 3.4 – 4.4 volt. Pada board arduino sendiri hanya memiliki pin tegangan 3.3volt dan 5volt sehingga, dibutuhkan sebuah Regulator atau DC to DC stepdown converter. Saya sendiri menggunakan DC – DC Stepdown Converter yang saya beli dengan harga yang cukup murah, yaa sekitar 14 ribu perak lah, ga mahal kan. DC to DC stepdown converter ini dapat diatur dengan memutar trimpot pada modul hingga menunjukkan tegangan yang dibutuhkan, disini saya menggunakan teganggan dengan kisaran 4 volt. Tampilan fisik dari modul ini kaya gambar di bawah ini.

Nyobain SIM800 : Inget, Hati-hati sama tegangan ke modulnya ya…

Buat penggunaan modul SIM800 ini, kalian harus nyiapin beberapa bahan nih, yaitu:
    • SIM800L pastinya sama kartu GSM yaa guys 1 buah
    • Arduino, bebas mau pake apa aja 1 buah
    • DC – DC Stepdown Buck Module, disini kita pake yang LM2596 1 buah
    • Bread Board 1 buah
    • Kabel jumper 7 buah
    • Solder sama Timah secukupnya
    • Kopi sama Biskuit jangan lupa biar ga bosen hehe…
Persiapan pertama siapin dulu solder dan timah karena kita bakal nyambungin jumper ke modul DC – DC Stepdown. Kalo dah panas soldernya, sambungin kabelnya kaya gini guys…
Untuk sambungan ke arduino, hanya perlu menyambungkan TX ke pin 3, dan RX ke pin 2, serta GND modul ke GND arduino. Power dari Stepdown hanya perlu disambungkan ke V+ dan GND modul. Rangkaian keseluruhan dapat diikuti seperti gambar berikut.
Catatan : Perlu diketahui, untuk catu daya ke modul SIM800L tidak dianjurkan untuk menggunakan power dari board Arduino karena tegangan yang kuran stabil dan arus yang kecil sehingga, saya menggunakan daya dari batrei untuk modul SIM800L. Ketika tegangan yang diberikan melebihi aturan, maka akan ata peringatan “Over-Voltage Warning”.
Kali ini, SIM800 yang saya gunakan memiliki BAUD Rate sebesar 115200 dan untuk Arduino yang saya gunakan juga disamakan saja. Status Led indikator pada modul SIM800 ketika pertama dinyalakan akan berkedip cepat, ini artinya, SIM800L sedang melakukan inisialisasi jaringan, jika telah berhasil, makan Led akan berkedip lebih lambat. Pertama, kita coba dulu koneksi dari Arduino ke SIM800L dengan kode program berikut.
#include "SoftwareSerial.h"
SoftwareSerial SMS_Gateway(2, 3); // Rx | Tx
char tempChar = "";

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Program Mencoba Koneksi ke SIM800 SMS Gateway");

SMS_Gateway.begin(115200);

for(int i = 0; i < 10; i++){
Serial.print("=====");
delay(500);
}
Serial.println();
Serial.println("Koneksi dimulai");
}

void loop() {
// put your main code here, to run repeatedly:
if(SMS_Gateway.available()){
tempChar = SMS_Gateway.read();
Serial.write(tempChar);
}

if(Serial.available()){
tempChar = Serial.read();
SMS_Gateway.write(tempChar);
}
}
Upload program dan coba perintah AT pada Serial Monitor Arduino IDE dengan pengaturan Both CL & NR, jika balasan dari modul “OK” maka, sambungan dari Arduino ke SIM800L telah berhasil.
Selanjutnya, mari kita coba melakukan pengiriman SMS. Disini saya akan menggunakan nomor HP pribadi saya. Kode program untuk pengiriman SMS dari modul SIM800L seperti dibawah ini yaa…
#include "SoftwareSerial.h"
SoftwareSerial SMS_Gateway(2, 3); // Rx | Tx
char tempChar = "";

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Program Mencoba Koneksi ke SIM800 SMS Gateway");

SMS_Gateway.begin(115200);

for(int i = 0; i < 10; i++){
Serial.print("=====");
delay(500);
}
Serial.println();
Serial.println("Koneksi dimulai");

// Baris Program untuk Kirim SMS
Serial.println("Set format SMS ke ASCII");
SMS_Gateway.write("AT+CMGF=1rn");
delay(1000);

Serial.println("SMS_Gateway Set SMS ke Nomor Tujuan...");
SMS_Gateway.write("AT+CMGS="0819xxxxxxxx"rn"); //Masukkan No Tujuan Disini
delay(500);
SMS_Gateway.write("Hi, Ini percobaan SMS menggunakan SIM800L dan Arduino.");
delay(500);
SMS_Gateway.write((char)26);
delay(1000);

Serial.println("SMS Terkirim!");
}

void loop() {
// put your main code here, to run repeatedly:
}

Jika program berhasil dijalankan, maka modul akan mengirim sms seperti berikut.

Pesan dari modul, masuk ke Inbox saya seperti ini.

Nah kalo berhasil, kalian bisa berkreasi guys, bisa ditambah matriks keypad, lcd, dll. Ntar deh kita ber-eksperimen lagi dengan barang-barang yang ada di lab. Buat sekarang cukup dulu yah. Oke guys, terima kasih.

You may also like

15 comments

isep suryana December 1, 2017 - 09:37

kalau arduinonya diganti dengan modul arm bisa gk gan???

Reply
Wahyu Rudiyan Saputra December 2, 2017 - 07:00

Bisa, Perintahnya tetep sama, akses aja via UART STM32 atau ATSAMD, atau uC yang ARM lain…

Reply
Unknown December 13, 2017 - 06:35

kalau sms gateway nya sebagai penerima gmn?

Reply
Husen Alfaqeh December 30, 2017 - 07:32

Mas lampu kedip punya saya blink cpat trus , sudah 3x ganti kartu tapi msih blink nya cepat , tlong mas bantuannya kalau ada kontak wa

Reply
Husen Alfaqeh December 30, 2017 - 07:33

Mas lampu kedip punya saya blink cpat trus , sudah 3x ganti kartu tapi msih blink nya cepat , tlong mas bantuannya kalau ada kontak wa

Reply
Wahyu Rudiyan Saputra January 10, 2018 - 02:29

Kalo sebagai penerima, pakai command AT+CMNI, ntar datanya di parsing aja gan.

Reply
Wahyu Rudiyan Saputra January 10, 2018 - 02:31

itu powernya gan coba di check, di atas saya pake kisaran 3.7 s.d 3.9Volt.

Reply
Keke Kemin February 24, 2018 - 10:25

Power nya sudah 3,7 volt dan modul masih tidak fungsi, apakah kartu sim berpengaruh? Saya pakai IM3 dan sudah saya gunakan sms di hp tak ada masalah

Reply
walalala April 30, 2018 - 09:21

mas klo untuk kirim link google maps tau refrensinya?

Reply
bagus prakoso June 30, 2018 - 08:19

gan , kalo sim 800 L nya berkedip cepat terus kenapa ya? padahal udah coba ganti kartu gsm yg berbeda?

Reply
Sony Bahtiar August 16, 2018 - 10:31

mas ada email, saya mau tnya tanya?
saol sim800lnya

Reply
Unknown August 19, 2018 - 16:23

kak, saya mau aplikasikan sim800l ini dengan sensor suhu. logika nya apabila suhu >30 maka akan kirim sms, tp kenapa sms yg dikirim ga berhenti2 ya? jd saya mau kalo >30 kirim smsnya hanya sekali, itu gimana ya? makasih sebelumya

Reply
Unknown August 22, 2018 - 21:37

Klo ini problemnya jelas kesalahan terletak pada kode programnya, sms dikirim terus karena anda ngeletakin prosedur pengiriman sms pada void loop(). Saran saya gunakan subrutin dan semacam variabel flag jadi sms yang dikirim ga berkali.

Reply
Unknown August 22, 2018 - 21:39

coba ganti bandwidth pake AT+CBAND pake yang DCS atau PCS aja, kosumsi daya lebih rendah. Referensi nya banyak kok di mbah google.

Reply
setia kurniawan September 27, 2018 - 12:56

Mas, maaf mau sharing, saya dah berhasil kirim sms. saya pakai regulator yang tegangan input regulator diambil dari 5v arduino tapi harus pakai kabel yang pendek, barhasil mantap, nah saat sedang kompile tiba-tiba modul sim nya kedip terus, saat saya pegang terasa panas, langsung power saya cabut. setelah itu tu modul kalo hidup pasti kedip terus gak berhenti. Lalu saya ganti dengan modul yang baru, dan berjalan baik lagi. Berikutnya saat sedang kompile dan error tiba tiba modul sim jadi drop dan sim kembali panas, dan rusak lagi tuh modul, karena kedip terus. saya perhatiin kalo modul yang bagus pasti kedipnya berhenti sekitar 8 atau 11 kedipan lalu berhenti sebentar dan mengulang kedip lagi sampai kedipnya lambat, tapi kalo kedip terus berarti tu modul sim rusak. saya dah korban 4 modul yang tiba-tiba panas dan rusak (kedip terus). Mohon petunjuk mas yang udah lama jam terbangnya, atau ada agan-agan yang mau sharing. terima kasih. bisa sharing ke email [email protected].

Reply

Leave a Comment