Blog Archives

Tutorial Mikrokontroler: Program Cek Koneksi Starduino Dengan Modem GSM Wavecom Dengan Perintah AT

starduino_wavecom2

Gambar di samping adalah foto pengujian koneksi antara Starduino Board yang berbasis mikrokontroler ATmega8 dengan Modem GSM Wavecom M1306B.

Pengujian koneksi dilakukan dengan cara sebagai berikut: Starduino mengirimkan “AT<CR>” kepada modem, yang mana jika perintah tersebut diterima dengan benar oleh modem, maka modem akan mengirimkan jawaban berupa “OK”.

Sebagai indikator adalah LED yang terhubung ke pin 13 dari Starduino (pada gambar adalah LED Merah yang sedang menyala, dan selanjutnya disebut sebagai LED-13). Skenario pengecekan koneksi antara Starduino dengan Modem GSM Wavecom adalah sebagai berikut:

  • Sebelum mengirimkan perintah “AT<CR>”, Starduino akan menyalakan LED-13 secara berkedip sebanyak 3 kali dengan periode kedipan yang cukup cepat yakni sekitar 100ms (50ms ON – 50ms OFF).
  • Setelah LED berkedip 3 kali, Starduino mengirimkan perintah “AT<CR>”.
  • Selanjutnya, Starduino menunggu balasan dari Modem GSM Wavecom.
  • Jika menerima data “OK”, maka Starduino akan kembali mengedipkan LED-13 sebanyak 3 kali namun dengan periode yang lebih lama yakni sekitar 1000ms (500ms ON – 500ms OFF).
  • Selama perintah “AT<CR>” dari Starduino dijawab dengan “OK” oleh Modem GSM Wavecom, maka LED-13 akan berkedip-kedip terus dengan pola yang sama seperti yang telah dijelaskan.

Nah, berikut adalah listing programnya.

/* CEK KONEKSI MODEM DENGAN AT=OK
    Chandra MDE – Teknik Elektro Links */
int OK;
char curr_char, prev_char;

void setup()
{
  pinMode(13, OUTPUT);
  Serial.begin(115200);
}

void loop()
{
  while(1)
  {
    //Kedip 3 kali (cepat) sebelum kirim AT<CR> ke MODEM
    //=====================================
    digitalWrite(13, HIGH); delay(50);
    digitalWrite(13, LOW);  delay(50);
    digitalWrite(13, HIGH); delay(50);
    digitalWrite(13, LOW);  delay(50);
    digitalWrite(13, HIGH); delay(50);
    digitalWrite(13, LOW);  delay(500);

    //Kirim AT<CR> ke MODEM
    //=================
    Serial.print("AT");
    Serial.write(13);

    //Tunggu balasan dari MODEM
    //====================
    curr_char = prev_char = 0;
    OK = 0;
    while(!OK)
    {
      if (Serial.available() > 0)
      {
        curr_char = Serial.read();
        if (prev_char==’O’ && curr_char==’K’)
          OK = 1;
        else
          prev_char = curr_char;
      }
    }

    //Pastikan tidak ada karakter tersisa di buffer serial
    //===================================
    while (Serial.available()) Serial.read();

    //Kedip 3 kali (lama) setelah terima “OK” dari MODEM
    //====================================
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);   
  }
}

Saya merasa tidak perlu menjelaskan listing program di atas secara terperinci. Listing program di atas sudah diberi komentar-komentar yang akan membantu Anda membaca dan memahami blok-blok program beserta fungsi-fungsinya.

Pada aplikasi modem, sangatlah penting untuk mengetahui setiap saat apakah koneksi antara kontroler dengan modem terhubung dengan baik. Setelah kontroler mengetahui bahwa koneksi dengan modem baik, maka kontroler dapat mengirimkan perintah-perintah selanjutnya sesuai dengan program. Dan jika ternyata koneksi dengan modem bermasalah, maka kontroler dapat memberikan tanda peringatan kepada user.

Starduino dapat langsung dihubungkan dengan Modem GSM Wavecom karena tipe konektor port serialnya adalah DB9-Male sehingga konektor modem dapat langsung dihubungkan ke port serial Starduino.

Jika Anda membutuhkan Starduino Board atau bahkan lengkap dengan Modem GSM Wavecom seperti pada foto di atas, silakan langsung menghubungi kami melalui: http://teknikelektrolinks.com/kontak.htm.

Semoga bermanfaat, selamat belajar, dan selamat berkarya!

:)

Follow

Get every new post delivered to your Inbox.

Join 169 other followers