Cara Mengirim SMS dengan SIM800 dan Arduino

SIM800 adalah salah satu modem GSM/GPRS yang bekerja di empat band frekuensi, yakni 850, 900, 1800 dan 1900 MHZ. Sedangkan GPRs-nya mengadopsi teknologi multi slot class 12/10 dan mendukung skema coding GPRS CS1-CS4. Selain itu, dengan tambahan fitur Bluetooth, radio FM serta ukurannya yang kompak menjadikan modul ini alternatif utama pengganti module SIM900 yang legendaris.

pinout module SIM800

[AdSense-A]

Untuk mengirim SMS dengan modul SIM800 ini dengan Arduino caranya cukup mudah. Cukup menyediakan beberapa kabel jumper untuk mengkoneksikan antara modul dengan Arduino.  Namun yang perlu Anda perhatikan bahwa modul ini bekerja dengan rentang tegangan 3,4 – 4,4V. Sebuah tegangan yang ‘nanggung’ mengingat di papan Arduino tidak tersedia level tegangan ini. Yang ada hanya level tegangan 3,3V dan 5V. Dengan demikian, mau tidak mau Anda harus menyediakan power supply tambahan yang menyediakan level tegangan 3,4 – 4,4V. Ingat, jangan sekali-kali menghubungkan pin VCC modul SIM800 dengan tegangan 5V, karena dapat merusakkan modul. Dan jika Anda memaksakan menggunakan level tegangan 3,3V di papan Arduino, maka nanti akan muncul warning ‘Under Voltage’ di jendela Serial Monitor dan fungsi-fungsi modul akan intermittent (kadang jalan kadang ngga)

Alat dan bahan untuk eksperimen kirim SMS dengan SIM800L – Arduino

  1. Arduino Uno
  2. Modul SIM800L
  3. Beberapa kabel jumper male-female
  4. DC-DC converter (set output tegangan di 3,7 V)
  5. Power supply 12V

Berikutnya, susunlah komponen di atas seperti tampak pada gambar di bawah

cara kirim sms dengan sim800L dan arduino

Jika hardware sudah siap, langkah berikutnya adalah mengisi firmware di sisi Arduinonya. Buka software IDE Arduino, dan isikan sketch sederhana berikut ini:

#include <SoftwareSerial.h>

#define SIM800_TX_PIN 8
#define SIM800_RX_PIN 7

SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN);

void setup() {
 Serial.begin(9600);
 while(!Serial);

 Serial.println("Inisialisasi modul SIM800L");
 serialSIM800.begin(9600);
 delay(1000);

 Serial.println("Kirim SMS...");

 //Set mode teks untuk pengiriman sms
 serialSIM800.write("AT+CMGF=1\r\n");
 delay(1000);

 //Mulai mengirim Sms
 serialSIM800.write("AT+CMGS=\"081910026910\"\r\n");
 delay(1000);
 serialSIM800.write("System ready");
 delay(1000);
 serialSIM800.write((char)26); //CTRL-Z
 delay(1000);
 Serial.println("SMS Terkirim!");
}

void loop() {

}

Penjelasan Sketch ‘Kirim SMS dengan SIM800L – Arduino’

Cara kerja sketch di atas cukup sederhana, yakni mengemulasi pin 7 dan 8 Arduino menjadi pin serial dengan library‘SoftwareSerial.h’. Mengapa tidak menggunakan hardware serial di pin 0 dan 1? Karena pin ini digunakan untuk memonitor jalur serial Arduino yang menuju port USB laptop melalui jendela Serial Monitor (untuk keperluan debugging).

Kembali lagi ke pin 7 dan 8 Arduino. Pin ini dihubungkan secara cross (bersilangan) dengan pin Tx dan RX modul SIM800L supaya dapat berkomunikasi. Protokol komunikasi yang digunakan adalah komunikasi serial asinkron biasa. Sedangkan ‘bahasa’ yang digunakan/dimengerti modem adalah AT Command. Jadi mau tidak mau Arduino (atau kontroller lain) harus menggunakan set instruksi AT command ini (bisa Anda cari datasheet-nya di internet). Khusus untuk mengirim sms, urutan AT command-nya adalah sebagai berikut:

AT+CMGS=”nomor-tujuan” [enter]

[ketik isi SMS]

CTRL-Z

Yang kalau diterjemahkan dalam bahasa Arduino dapat Anda lihat pada baris 23-28 pada sketch di atas

Ohya, satu lagi, salah satu parameter yang penting dalam komunikasi serial asinkron adalah parameter baudrate. SIM800 ini settingan default baudrate-nya adala 115.200 bps. Anda dapat dengan mudah mengubahnya menjadi 9600 bps dengan cara memasukkan AT command : ‘AT+IPR=9600’ melalui aplikasi console/terminal semacam Hyper Terminal, Putty, atau lewat jendela Serial Monitor Arduino. Caranya dapat Anda baca di sini

Untuk sementara sekian dulu tutorialnya, Anda dapat mengembangkannya sesuai dengan kebutuhan project Anda, salah satunya adalah membuat SMS controller. Selamat berkreasi….

[AdSense-A]

0 0 votes
Article Rating

Leave a Reply

158 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Irham Tantowi

gan, saya pakai modul sim800l, tp belum bisa connect , masuk at command bisa .. cuma untuk kirim sms belum bisa.. led indicator msih berkedip cepat 10kali, lalu jeda beberapa detik, trus bekedip lg. kira2 permasalahannya apa ya gan? terima kasih

Irham Tantowi

normalnya led berkedip tiap brp detik mas? saya sudah coba 3 sim card, 2 modul sim800l hasilnya sama.. sy sudah baca di bolg ini tetep led blink jalan terus , apa ada settingan awalnya? atau gmn ya mas? terima kasih

Azam Msa

Bang, saya ada tugas kampus terkait GPS tracking dg menggunkan arduino. Disini saya sudah ada bahannya, diantaranya; – Arduino Uno – Atwin Quad Band GPRS-GSM Shield Arduino A6390 – GPS Neo 6m Sudah coba saya oprek dg copas coding yg saya dpt setelah surfing via Google. Tapi blm ada yg sukses. <>; ketika di misscall, mesin akan mengirim sms dengan mengirimkan lokasi koordinat dari GPS. Bisa mohon bantuannya mas,??.. Pleease, aku dah putus asa banget :'( Kalau akau pakai coding di atas kayaknya nggak bisa support, soalnya tdk pakai GPS gitu.. Mohon mas yaa.. Kalau bisa, saya kasi imbalan untuk… Read more »

Azam Msa

Tahapan: hanya masih bisa di misscall aja bang. Yg seharusnya kalau di misscall, perangkat langsung akan mengirimkan sms yg berisikan format titik kordinat GPS.
Mungkin abang punya coding untuk ini yg bisa langsung di uploadkan ke sketch.. Heheee

Azam Msa

Oke bang. Sudah ta Add/Invite via BBM & WhatsApp..
Terima Kasih bang

kaze

gan sebelumnya sim900 & arduinonya udah mau konek (kirim sms terima sms semua lancar jaya), tapi sekarang led status & led net sim900 cuma berkedipnya bentaran aja.. abis itu gak konek lagi antara sim900 dengan arduinonya.. ini kenapa ya..?

Fuji tri yanto

Malem mas ajie,bisa bantu saya?bisa ga mas info sample skectch read sms dengan sim800l at command,untuk send sms nya udah bisa seperti di atas,,tapi yg read nya gmn mas?matur sywun

bayu

kalau mensimulasikan dulu di proteus gimana y mas? cara untuk kirim sms nya?

rifqi

bang mau nanya, kalo ngirim sms dari serial monitor bisa gak ? dan kodingan nya jadi gimana nya?

edoirfandi

mas haruskan perintah at command ya kalau pake perintah yang serial.print bisa gak

herm

bang mau nanya, bagaimana cara di arduino mengirim data ? maksudnya, diatas ada kata “system ready”. itu cara ngirim bit- bitnya sehingg menjadi seperti kata kata itu gimananya bang? maksih

Ajifahreza

mungkin untuk pengirimannya menggunakan komunikasi serial dengan kode ASCII “system ready” jika di kodekan ASCII : (115,121,115,116,101,109,160,114,101,97,100,121) dalam bahasa heksadecimal atau bahasa mesin binner (1000101011001000011001010110001011010000000110000100110110000010001010010000000110010111100000000100100001) dengan setting boudrate (9600) yang artinya bit/second (bps) data yang dikirim 9600 bit/second. seperti itu contohnya mohon maav jika saya salah penerapan ….

Ridwan

Saya menggunakan sim900a. Lokasi dari modul gps di kirim melalui sim900a.

Novaldi.SH

mas mau nyanya saya menggunakan sim900a. mau ngirim sms lewat modul tsb. nah sisa pin yang ada tinggal 1,0… apa bisa dipake mas?? trus saya menggunakan 2 alat yang menggunakan software serial…apakah berpengaruh juga kalau salah satu alatnya tidak jalan?? board yg saya pakai ATMega 328(arduinbo uno)

jefry ronis

gan maw nanya ni, sya bkin alat sensor magnet trus sya bkin notifikasi sensornya ke sim800l tpi sms notifikasinya mengirim trus gan, ga berhenti kecuali dimatiin alatnya gan, mohon pencerahannya gan

dani

mas mau nanya, saya nyobain ngehubungin sim900 dengan arduino, indikator power nyala, pas ditekan tombol kecil led status dan net menyala, lalu saat dilepas berkedap kedip beberapa kali, led status masih menyala diam. Tapi beberapa saat mati, apakah itu artinya terhubung ke operator? atau malah sebaliknya?

Reny

Misi,
kalau pakai sim900 sama apa beda dengan sim800 coding nya?

rizky

mas saya pake sim808 shield v2, tp engga bisa at manual juga no respon itu gimna?

Anam

Permisi, saya sudah coba coding dan rangkaian yg diatas tp sms nya blm bisa terkirim. Itu knapa yaa ?
Moho pencerahannya 🙂

LOL

mz itu TX RX nya pin brp? maksudku pin 7 tuh TX ato RX?

Menia

misi mas

Menia

apa mas ada tutorial sim 900 dengan komunikasi GPRS?trims

Zonnete Bryllian Dheo

Mas, ada tutor buat receiving sms gak.? share dong… makasih 🙂

jerry septian

mas bisa tidak ya sim800 ini forward sms dari operator ?
untuk mengirim informasi notifikasi untuk mengetahui jumlah pulsa
terimakasih

Anggun Sinta

Mas, mau tanya. Saya bikin SMS gateway pake Arduino mega dan SIM 800 L. Kalo boleh tau parameter yang diukur untuk SMS Gatewaynya apa aja yaa selain delay? Makasih. Mohon bantuannya.

Anggun Sinta

parameter mengenai pengiriman dan penerimaan SMS mas

andi

Mas boeh minta codingnya gak.
Sy mau buat sistem keamanan. Ketika saya mengirim sms perintah ke SIM900 maka saya menerima balasan berupa link kordinat google maps. Sy pakek GPS Ublox-Neo6MV2 dan arduino uno. Amkasaleh@gmail.com

Hariawan

Gan mau tanya dong , kenapa pas masuk ke at selalu ga muncul ya , biasanya kesalahannya ada dimana ya ? Mohon pencerahannya bang hehe makasih

Annona Dieni

mau tanya gan, saya ingin membuat program pengiriman sms dari modul sim900, tetapi di ATcommand AT+CMGS untuk mengirim sms perlu diberi nomor.
Sedangkan saya ingin mengirim sms kepada nomor yang sms saya dengan menggunakan kode angka pada keypad.
Misalnya ketika menekan angka 1 akan mengirim sms berisi “OK”
angka 2 mengirim pesan berisi “Sebentar”
Sedangkan program yang saya punya hanya dapat menampilkan isi sms, karena masih bingung tentang ATcommand yn digunakan
mohon bantuannya.

Annona Dieni

pertanyaan keduan gan, ketika saya upload programnya program langsung mengirim sms dinomor pada AT+CMGS
Saya ingin dari modul gsm mengirim sms ketika menekan kode keypad.
jadi program untuk at cmgs gmn ya?

Annona Dieni

nomer yg di reply belum bisa mas karena saat menekan angka keypad 1, isi sms OK hanya tampil di lcd dan belum bisa mengirim.
sebenarnya di program saya punya database kontak ada 8 mas jadi saya hanya membalas ke 8 kontak itu tapi kembali lg untuk membalas belum bisa.
trapping itu seperti apa ya?
saya sudah memberi script keypad

annona dieni

Nomer yg dibalas berbeda beda mas tergantung dr kontak database yg saya simpan diprogram

annona dieni

Gan, ini Modul GSM SIM900 kalo pake Arduino Uno, tanpa ada tambahan perangkat lain, dengan program yang sama, pas buka serial monitor, net lightnya oke oke aja dan bisa kirim SMS. Kalo dipasang di Arduino Mega, ada tambahan perangkat LCD, keypad, pas buka serial monitor langsung mati net lightnya. Bagaimana?

annona dieni

Begini mas saya jelaskan saja alur dr program yg saya ingin buat.
Jadi ini merupakan sistem berlangganan, jadi pada program ini tersimpan database pelanggan berisi alamat dr pelanggan.
Caranya,ketika pelanggan sms namanya ke modul maka di lcd akan muncul database yg terpanggil oleh nama pelanggan td.
Dan modul membalas menggunakan kode angka pada keypad yg berisi macam2 pesan ditiap kode.
Permasalahannya, ketika pelanggan yg nomernya ada di ATCMGS sms ,hanya nomer di ATCMGS yg databasenya terpanggil dan untuk membalas pesan masih belum bisa

yogi afrison utama

kok dari gambar itu vcc sam ground pada sim800 nya terhubung?
benar gk sih gambarnya itu?

Harun

Mas Aji kalau ngirim sms ke banyak nomor sekaligus dengan sim800 bisa ??
klau bisa kodingnya giman mas ??
makasih

iwa

Mas kan saya bikin pedeteksi kbocoran LPG. Trz kadarnya di tampilin di LCD. Supaya kadar Gasnya yg di tampilin d LCD itu ikut terkirim sama SMSnya gimana kodingnya ??

ponk

mas tutor sim900a dong , ???

Muhammad Kevin Mubarok

Mas cara ngecek pulsa langsung dari modul 800 gimana?apakah bisa ditampilkan di LCD?mohon pencerahannya

Adnan

mas, kalo sim card not detected gimana ya(led kedip 1 detik sekali), coba tes AT+COPS? hasilnya = 0, karena antenna bawaan kurang bagus atau apa ya, dah dicoba pake kartu laen sama aja

Adnan

saya nyambung sim800l ke arduino pake dc-dc buck converter buat nurunin tegangan ke 4v, sementara belum punya usb-to-TTL jadi gk bsa ngetes di laptop/komputer,

Adnan

sudah di ganti ke 4,2v gk ada perubahan mas, apa dia hanya support kartu sim 2G ya? kartunya baru beli kemarin sih simpati

Adnan

hmmm gitu, oh ya saya coba2 ukur tegangan TXD sim ke RX arduino = 2,7v, tapi kok yang RXD ke TX arduinonya = 5v ya mas? atau memang seperti itu? soalnya baca2 katanya mesti dibawah 2,8v. maaf banyak tanya mas

Adnan

gimana ya mas, modulnya kedetek sama arduino, dikasih at command respon, cek sinyal pake at+csq ada, coba ganti2 kartu tetep aja sim gk kedetek2, apa modulnya rusak ya? takutnya sudah beli modul baru tapi masalahnya muncul lagi, terimakasih banyak sudah menjawab mas

Dion Arizona

mas saya sudah coba tes koneksi sim800l, tidak ada eror. kemudian saya kembangkan ke sms gateway. sudah saya ikuti prosedur sesuai. berhasil tidak ada eror. nah tetapi sms tidak masuk nomer tujuan mas. mohon pencerahannya mas. terima kasih

Mairi

Saya mau tanya gimana cara baca sms sesuai perintah, kayak contoh kita perintah led menyala hanya saat kita kirim sms “led nyala” maka sim800l membaca sms lalu led baru menyala. Mohon bantuannya

Mayang artika tami

mas mau tanya..saya baru beli sim 800L trs sdh saya download library sim 800L , sudah saya kasih tegangan 3,7V-4V juga , di example send sms librari sim 800L nya dibilang rx : pin 7 tx : pin 8 , saya sdh ganti nomor hp nya jg bsrta isi sms , saya upload tpi cek di serial monitor kluar
Power check failed
Init error
Init error
Init error
Saya naik turun tegangan tpi msih aja
Mohon bantuannya mas

Mayang artika tami

Blink sim800L nya kedip cepat 8x trus brhnti trus kedip lgi 8x seterusnya..

Mayang artika tami

Mas gimana ya sketch utk menghentikan fungsi void loop sementara sktar 5 menit habis itu difungsikan kembali
Jadi gini mas , saya buat sensor suhu via sms jdi saat suhu 30C maka akan dikirim sms tpi kendalanya saat suhu 30C dia sms trs saya mau sekali aja sms nya .. Trimakasih

Mayang artika tami

Meletakan variabel logika nya cukup satu aja ya mas sesudah void loop atau diatas void loop ? Atau di setiap baris A0,A1,A2,dst kita masukin variabel logika nya ?
Tlong mas dikasih contoh..

Iswanti

kalo kaya gitu, nanti pada saat suhu >30 kirim sms, terus suhu turun jd 28 misalkan, trs naik lg jd >30 smsnya akan terkirim lagi ga?

Iswanti

oh gitu, oke kak terimakasih banyak 🙂
soalnya pernah buat logika seperti itu tp kirim sms nya jd sekali, jd harus reset arduino baru bisa kirim sms lg

Iswanti

saya buat seperti itu knp malah ga ke kirim ya?

Styawan

Mas saya menggunakan suplay tegangan baterai hp untuk sim800l nya dan kedipannya standar delay 2-3 detik. Tapi ko pas di coba tes program untuk komunikasi sama arduino tidak dapat konek mas ? Mohon bantuannya

Mayang artika tami

Ok makasih mas ya pembelajaran nya. Saya coba dulu , nanti saya tanya lagi ya kalau ada kendala .terimakasih mas

nafis

Assalamualaikum
Mas saya ada modul gsm a6 mini ,apakah tutorial mas ini bisa di gunakan

nafis

kalau untuk pin nya gmana ya mas……..di a6 tu yg ada pin utx,urx,htx dan hrx

anonymus

maaf melenceng om.. mau tanya apa bisa sim 800L di buat untuk mengontrol arduino dengan web? misalkan saya punya button pada web saat di klik maka arduino akan mengaktif kan relay nah kurang lebih seperti itu… mohon pencerahanny om karena saya cuma menemukan tuttorial mengirim data ke web saja… sebelum ny terima kasih

anonymus

mkasih bnyk om pencerahan ny btw om belum bikin tutorial ny ya hehehe.. mungkin tuttorial dari luar negeri bnyak ya om

anang adi

mas maaf mau tanya. mengenai modul SIM 800L,mas saptaji punya referensi bukunya tidak? saya mencari referensi bukunya agak sulit dan juga belum ketemu. terimakasih

Jefri Purwantoro

Permisi mas, saya mau bertanya tentang modul SIM 800L ini, apakah SIM 800L dan arduino bisa diprogram untuk menerima dan mengirim sms secara otomatis ? Karna saya sedang mencari referensi untuk tugas akhir saya mas. Mohon bantuannya

zakki bahtiar

kalo digabung antara kirim n baca sms..syntax programnya gmna ya???

158
0
Would love your thoughts, please comment.x
()
x