Sim800L GPRS Mode

Pada kesempatan kali ini saya akan memberikan sedikit tutorial bagaimana cara menggunakan SIM800L (modul GSM) dengan mode GPRS untuk pengiriman data ke Web server. Sebelumnya, SIM800L ini menggunakan AT-COMMAND untuk berkomunikasi secara serial menggunakan pin TX RX. Disini saya menggunakan Arduino Board sebagai kontrolernya, berikut langkah-langkahnya :

1. Persiapkan konfig Pin antara Arduino dengan SIM800L

ARDUINO SIM800L
D2 (rx) tx pin
D3 (tx) rx pin

Kita akan menggunakan Software serial library pada arduino untuk komunikasi serial dengan SIM800L.

2. Lanjut ke pemrograman

Kita akan membuat sebuah prosedur untuk pengiriman data ke web server, prosedur tersebut bernama kirimData() .

Berikut merupakan source code untuk mengaktifkan GPRS Mode dari SIM800L :

void kirimData()
{
  SIM800.println("AT+CSQ"); // Mengecek Kualitas Sinyal
  ShowSerialData();

  SIM800.println("AT+CGATT?"); //Melihat Support tidaknya GPRS
  delay(100);
  ShowSerialData();

  SIM800.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
  delay(1000);
  ShowSerialData();

  SIM800.println("AT+SAPBR=3,1,\"APN\",\"internet\"");
  delay(1000);
  ShowSerialData();

  SIM800.println("AT+SAPBR=1,1");
  delay(1000);
  ShowSerialData();

  SIM800.println("AT+HTTPINIT"); //Persiapan HTTP request
  delay(1000); 
  ShowSerialData();

  //pengiriman data ke alamat URL web server
  SIM800.print("AT+HTTPPARA=\"URL\",\"http://ulindev.com/project/tes/dataku.php?nilai=");
  SIM800.print(random(0,100));
  delay(2000);
  ShowSerialData();

  SIM800.println("AT+HTTPACTION=0"); //submit request 
  delay(5000);
  ShowSerialData();

  SIM800.println("");
  delay(100);

  SIM800.println("AT+HTTPTERM");//baca data dari website yang diakses
  delay(300);
  ShowSerialData();
}

Code diatas akan mengirim data ke http://ulindev.com/project/tes/dataku.php dengan metode GET request yang akan diterima oleh variabel nilai yang nantinya akan terisi data random dengan range 0 – 100. Pada tahap ini, silahkan diganti sesuai kebutuhan, semisal nilai random diganti dengan nilai yang diambil dari sensor.

3. Source code pendukung

Jika langsung dijalankan, maka source code diatas akan terjadi error, pastilah karena code tersebut belum lengkap.

Kita akan membuat prosedur ShowSerialData() untuk melihat pesan balasan dari SIM800L. Berikut source codenya :

void ShowSerialData()
{
  while(SIM800.available()!=0)
    Serial.write(char (SIM800.read()));
}

4. Uji coba

Setelah semua script berhasil digabung dan tidak ada error, silahkan dicoba memonitoring data yang masuk di alamat http://ulindev.com/project/tes/

Jika data berhasil dikirim dengan source code yang ada pada prosedur kirimData() maka nilai, tanggal dan waktu akan berubah, seperti pada gambar berikut :

hcix-c0d3r tester
hcix-c0d3r tester

Silahkan di coba, jika ada sesuatu yang ingin didiskusikan silahkan berkomentar dibawah.

Oh iya, source code lengkap bisa didownload disini.

Selamat belajar. Semoga bermanfaat.

58 Comments

Add a Comment

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