Tutorial Mikrokontroler: Program Cek Koneksi Starduino
Dengan Modem GSM Wavecom Dengan Perintah AT
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;
Chandra MDE – Teknik Elektro Links */
int OK;
char curr_char, prev_char;
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(115200);
}
{
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);
{
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);
//=================
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;
}
}
//====================
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();
//===================================
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);
}
}
//====================================
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.
Semoga bermanfaat jangan lupa subscribe channel Filosopi Youtube terima kasih.
Tidak ada komentar:
Posting Komentar