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:

Gambar terkait

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:

  1. Arduino
  2. SIM800l V2
  3. Kabel Jumper
  4. 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:

  1. #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.
  2. 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.
  3. 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.
  4. SIM800L.println(“Test SMS Kelas Robot”); dan ini adalah bagian untuk pesan yang dikirim, silahkan kamu ubah juga sesuai dengan pesan yang kamu inginkan.

14 Comments

    Jakha Putra

    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?

    Reply
      Ajang Rahmat

      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.

      Reply
      Ajang Rahmat

      kalo pake pin Serial Arduino langsung aja. Gak usah pake program Software Serial.
      Kalo upload program harus cabut dulu jumpernya, kalo enggak nanti bentrok.

      Reply
    Mr Dower

    bro mau tanya batre 5v yang ada di gambar itu batre apa yak, belinya dimana

    Reply
    Iswanti

    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?

    Reply
      Alvarez

      coba liat programnya

      Reply
    Aditya Yohana

    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);
    }
    }

    Reply
    wahyu

    koding untuk esp dan sim800l nya gimana yaa? dan kalau mnggunakan multi rx tx esp32 giamana

    Reply
    Wahyuda

    Kalau untuk esp32 + sim800l dan pzem 004T v3 , bagaimanakN mengguakan multi uart bg?

    Reply
    Ersyad

    Bang apakah bisa menambah atau menghapus no tanpa merubah script nya

    Reply
    pegi

    boleh minta part sim800l v2 evb frtizing?

    Reply
    paws

    gan kalau pas saya test sim800l tetapi lampu indikator sinyalnya tidak mau berkedip itu kenapa ya gan?
    mohon bantuannya

    Reply



Leave a Reply to Jakha Putra Cancel reply

Your email address will not be published. Required fields are marked *