judul
Breaking News
Loading...
Sabtu, 11 Oktober 2014

GSM Modul - SIM900A

Sabtu, Oktober 11, 2014
SIM900A adalah modul SIM yang digunakan pada penelitian ini. Modul SIM900 GSM/GPRS adalah bagian yang berfungsi untuk berkomunikasi antara pemantau utama dengan Handphone. ATCommand adalah perintah yang dapat diberikan modem GSM/CDMA seperti untuk mengirim dan menerima data berbasis GSM/GPRS, atau mengirim dan menerima SMS. SIM900 GSM/GPRS dikendalikan melalui perintah AT (GSM 07.07, 07.05, dan SIMCOM).
AT Command SIM900A
AT+Command adalah sebuah kumpulan perintah yang digabungkan dengan karakter lain setelah karakter ‘AT’ yang biasanya digunakan pada komunikasi serial. Dalam penelitian ini ATcommand digunakan untuk mengatur atau memberi perintah modul GSM/CDMA. Perintah ATCommand dimulai dengan karakter “AT” atau “at” dan diakhiri dengan kode (0x0d). Berikut adalah beberapa perintah ATcommand yang digunakan dalam penelitian ini.
AT memeriksa koneksi dengan modul GSM.
AT+CMGR membaca pesan masuk.
AT+COPS memeriksa nama provider GSM yang digunakan.
AT+CREG memeriksa registrasi jaringan.
AT+CSQ memeriksa kualitas sinyal.
AT+CGDCONT menetapkan PDP konteks.
AT+CSTT mengatur APN (Access Point Name), User id dan Pass.
AT+CDNSORIP menunjukan bahwa permintaan berupa domain atau IP.
AT+CIICR membuka koneksi nirkabel menggunakan GPRS.
AT+CIPSTART start koneksi dengan server.
AT+CIPSEND mengirim data ke server.
AT+CIPCLOSE menutup koneksi dengan server.

ATCommand yang digunakan untuk pengecekan memori pesan adalah:

<SEND> AT+CPMS?<ENTER>
<REPLY> +CPMS: "SM",0,10,"SM",0,10,"SM",0,10
Cek Sinyal GSM
Fungsi subroutien ini adalah sebaga berikut:
Cek Register Network

<SEND> AT+CREG? <ENTER>

<REPLY> +CREG: 0,1
<REPLY> OK
Cek kualitas sinyal

<SEND> AT+CSQ<ENTER>
<REPLY> +CSQ: 16,0
<REPLY> OK
Cek Nama Provider

<SEND> AT+COPS<ENTER>
<REPLY> +COPS: 0,0,”TELKOMSEL”
<REPLY> OK

Dibawah ini adalah Syntax Coding pembacaan Pesan Masuk:

unsigned char Read_Message(int indexpesan)
{
bit OK;
char IndexSms=0;
static unsigned char ax=0,io=0,ia=0,no=0;
static unsigned char ai=0,ii=0,oi=0,ni=0;
unsigned int LenString=0;
unsigned int LenSms=0;
unsigned int LenHp=0;
unsigned char parsing=0, r,q;

RstBuffUart();
IndexSms=indexpesan;
printf("AT+CMGR=\r\n%d",IndexSms);
q=wait_karakter('+',5000);
wait_karakter('\n',5000);
r=wait_Oke();
flagRead=0;
if (r==1 && q==1 ){OK=1;}

LenString=strlen(buffusart0);
if (LenString>10 && LenString<90 )parsing=1;
else return 5;
if (parsing==1) {

for(ai=0;buffusart0[ai]!=0;ai++){
if(buffusart0[ai]==','){
ii=ai+2;
oi=0;
clear_buffer(NoHp);
for(ni=ii; buffusart0[ni]!=0; ni++){
NoHp[oi++]=buffusart0[ni];
if(buffusart0[ni+1]=='"')break;
}
break;}
}
for(io=0;buffusart0[io]!=0;io++){
if(buffusart0[io]=='@'){
ia=io;
ax=0;
clear_buffer(sms);
for(no=ia; buffusart0[no]!=0; no++){
sms[ax++]=buffusart0[no];
if(buffusart0[no]=='\n')break;
}
break;}
}

lcd_clear();lcd_gotoxy(0,1);lcd_gotoxy(1,1);lcd_puts(NoHp);

lcd_gotoxy(2,0);lcd_putsf("SMS diterima");
LenHp=strlen(NoHp);
LenSms=strlen(sms);
LenString=0;
LenString=strlen(buffusart0);
if(OK==1&& LenHp!=0 && LenSms!=0 )
{
if(strncmp(buffusart0+2,"ERROR",5)==0){return ERROR;}
if(strncmp(buffusart0+(LenString - 4),"OK",2)==0){return _OK;}
if(strncmp(buffusart0+2,"+CMS ERROR: 517",15)==0){ return CME;}
}
}
}

Silahkan Copy boleh, tapi dipelajari dulu subroutien dari pembacaan sms. Subroutien ini berkerja ketika mikrokontroller mengirimkan AT+CMGR = [index], jika index tidak sama NULL atau kosong maka akan mengembalikan Nilai 1 (penanda) bahwa pesan masuk dapat dieksekusi untuk proses yang selanjutnya. :)



Terimakasih telah berkunjung ke blog Az robot Indonesia, dengan sub judul Module GSM - SIM900A

Ter

1 komentar:

  1. mas codingnya diatas pake codevision buatnya?
    kalau boleh minta codingnya keseluruhan mas.
    fatur.mikronika@gmail.com

    BalasHapus

 
Toggle Footer