Cara Mudah Program Kirim SMS SIM800L GSM Module Dengan Arduino
Banyak dari kita yang dari kecil memimpikan untuk bisa membuat HP sendiri. Nah kali ini mimpi tersebut akan sedikit demi sedikit kita wujudkan. Dengan Menggunakan SIM800L, kita bisa mengirim dan menerima SMS, melakukan TELP, dan masih banyak lagi.
Saya menggunakan SIM800L V2, seperti pada gambar dibawah ini:
Kenapa saya memilih yang versi 2, karena versi ini sudah bisa langsung mendapat power dari 5V tanpa harus menggunakan module penurun tegangan seperti SIM800 yang warna merah. Dan yang versi ini lebih cepat dalam menangkap sinyal.
Apa yang perlu disiapkan:
- Arduino
- SIM800l V2
- Kabel Jumper
- Adaptor 5v (jika ada)
Untuk adaptor 5v kamu bisa gunakan casan HP, ini hanya untuk power eksternal saja jika memang dibutuhkan. tapi kamu bisa coba dulu langsung colok ke Arduino seperti rangkaian dibawah ini:
Jika ingin menggunakan Adaptor, kamu bisa lihat rangkaian seperti gambar dibawah ini:
Adaptor disini fungsinya sebagai power tambahan untuk SIM800L itu juga jika diperlukan, tapi jika cukup menggunakan power dari Arduino ikuti saja rangkaian yang pertama. Tapi jika ternyata SIM800L nya tidak kunjung mendapatkan sinyal, kemungkinan besar kekurangan daya maka kamu perlu adaptor dan ikuti rangkaian yang kedua.
CATATAN: Ciri SIM800L sudah dapat sinyal adalah, LED yang asalnya kedip cepat jadi kedip pelan.
Ok jika sudah siap sekarang kita akan mencoba Program Untuk mengirim SMS, silahkan kamu ketik ulang atau salin program dibawah ini:
#include <SoftwareSerial.h> SoftwareSerial SIM800L(10, 11); void setup() { Serial.begin(9600); SIM800L.begin(9600); SIM800L.println("AT+CMGF=1"); Serial.println("SIM800L started at 9600"); delay(1000); Serial.println("Setup Complete! SIM800L is Ready!"); SIM800L.println("AT+CNMI=2,2,0,0,0"); SIM800L.println("AT+CMGF=1"); delay(1000); SIM800L.println("AT+CMGS=\"081287931296\"\r"); delay(1000); SIM800L.println("Test SMS Kelas Robot"); delay(100); SIM800L.println((char)26); delay(1000); } void loop() { }
CATATAN:
- #include <SoftwareSerial.h> ini berfungsi untuk menyertakan Library SoftwareSerial yang digunakan oleh SIM800L, ke pemrograman Arduino. Tapi karena Library SoftwareSerial sendiri sudah bawaan Arduino, jadi kamu tidak perlu add terlebih dahulu ke Arduino IDEnya jadi tinggal gunakan saja.
- SoftwareSerial SIM800L(10, 11); mendifinisikan SIM800L sebagai variabel yang mewakili SoftwareSerial, dengan pin 10 sebagai rx dan 11 sebagai tx. Yang nantinya pin 10 akan dipasangkan ke tx module SIM800L dan pin 11 ke rx nya.
- SIM800L.println(“AT+CMGS=\”081287931296\”\r”); ini bagian untuk atur no hape yang akan dikirim sms, silahkan kamu ubah nomernya dengan nomer yang ingin kamu kirim sms.
- SIM800L.println(“Test SMS Kelas Robot”); dan ini adalah bagian untuk pesan yang dikirim, silahkan kamu ubah juga sesuai dengan pesan yang kamu inginkan.
Bang Kalau Kode RX TX Saya Ganti Ke SoftwareSerial SIM800L(0, 1); Ada Masalah Gak, Tapi Jumper Nya TX RX Juga saya pindah ke 0 dan 1, Gimana ya bng?
kalo mau langsung ke Serial pin Arduino, gak usah pake Software Serial lagi langsung aja pake program Serial.
Masalahnya kalo Upload program bentrok, jadi harus dicabut dulu jumpernya.
kalo pake pin Serial Arduino langsung aja. Gak usah pake program Software Serial.
Kalo upload program harus cabut dulu jumpernya, kalo enggak nanti bentrok.
bro mau tanya batre 5v yang ada di gambar itu batre apa yak, belinya dimana
adaptor bro… bisa pake casan HP
adaptor 5V, ditoko elektronik. Bisa pake casan HP
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?
coba liat programnya
kak.. saya mau pakek ini ke sensor api kira kira bisa ngga ?
dengan sketc seperti ini
#include
SoftwareSerial SIM800L(10, 11);
// inialisasi pin sensor dan alarm/buzzer
const int pinApi = 8;
const int pinAlarm = 9;
const int pinLeda = 13;
const int pinLedb = 12;
// inialisasi variabel data
int data;
// ———– program default/setting awal ———– //
void setup()
{
// inialisasi baud rate SIM 800L
SIM800L.begin(115200);
// inialisasi status I/O pin
pinMode(pinApi, INPUT); // pin sebagai input
pinMode(pinAlarm, OUTPUT); // pin sebagai output
pinMode(pinLeda, OUTPUT); // pin sebagai output
pinMode(pinLedb, OUTPUT); // pin sebagai output
}
// —– program utama, looping/berulang terus-menerus —– //
void loop()
{
// variabel data adalah hasil dari pembacaan sensor
// berupa logic LOW/HIGH
data = digitalRead(pinApi);
// jika data bernilai logic LOW
if (data == LOW)
{
// alarm dinyalakan
digitalWrite(pinAlarm, HIGH);
delay(100);
digitalWrite(pinLeda, HIGH);
delay(100);
digitalWrite(pinLedb, LOW);
delay(100);
SIM800L.println(“AT+CMGF=1”);
Serial.println(“SIM800L started at 9600”);
delay(1000);
Serial.println(“Setup Complete! SIM800L is Ready!”);
SIM800L.println(“AT+CNMI=2,2,0,0,0”);
SIM800L.println(“AT+CMGF=1”);
delay(1000);
SIM800L.println(“AT+CMGS=”081287931296″r”);
delay(1000);
SIM800L.println(“Test SMS Kelas Robot”);
delay(100);
SIM800L.println((char)26);
delay(1000);
}
// jika data tidak bernilai logic LOW
else
{
// alarm dimatikan
digitalWrite(pinAlarm, LOW);
delay(100);
digitalWrite(pinLeda, LOW);
delay(100);
digitalWrite(pinLedb, HIGH);
delay(100);
}
}
koding untuk esp dan sim800l nya gimana yaa? dan kalau mnggunakan multi rx tx esp32 giamana
Kalau untuk esp32 + sim800l dan pzem 004T v3 , bagaimanakN mengguakan multi uart bg?
Bang apakah bisa menambah atau menghapus no tanpa merubah script nya
boleh minta part sim800l v2 evb frtizing?
gan kalau pas saya test sim800l tetapi lampu indikator sinyalnya tidak mau berkedip itu kenapa ya gan?
mohon bantuannya
bang minta tolong bang
saya ada tugas membuat pendeteksi adanya api DAN ADANYA NOTIFIKASI KE SMS menggunakan sim800l
coding nya gimana ya bang
code sim 800l
tx 2
rx 3
sensor suhu
vcc 5v
d0 7
buzzer
+ 12
gnd – gnd
mita tolong bang