GSM Modem SIM300 Part 2 (Pengoperasian dengan mikrokontroler)


Pengoperasian D-GSM300 dengan mikrokontroler ATMega 16 dilakukan dengan menghubungkan pin UART D-GSM300 pada pin UART mikrokontroler dan menjalankan at-command via mikrokontroler dan menampilkan respon dari modem pada LCD. Baudrate standar yang digunakan dalam komunikasi D-GSM300 dengan ATMega 16 adalah 115200 bps.

Antarmuka SIM300 Pada ATmega16

Beberapa pengujian pengoperasian modem GSM SIM300 dengan mikrokontroler sebagai berikut:

  1. Pengiriman SMS

Pengiriman sms dilakukan dalam mode teks. Pengoperasian pengiriman sms dengan menggunakan mikrokontroler dilakukan dalam 2 jenis yaitu pengiriman sms pada 1 penerima dan pengiriman sms pada banyak penerima (multiple recipient). Berikut potongan listing program mikrokontroler ATMega16 untuk mengirimkan at-commad pada modem gsm untuk mengirim sms:

void send_SMS()
{
Unsigned char petik=34;
printf("at+cmgf=1\x0D"); 
while (getchar()!='O');
while (getchar()!='K');
printf("at+cmgd=1\x0D");
while (getchar()!='O');
while (getchar()!='K');
printf("at+cmgw=%c087757554xxx %c\x0D",petik,petik);
while(getchar()!=62);
printf("Coba Kirim SMS Dari Mikrokontroler");
putchar(26); 
while (getchar()!='O');
while (getchar()!='K');
printf("at+cmss=1\x0D");
while (getchar()!='O');
while (getchar()!='K');
}

Sedangkan untuk mengirimkan SMS pada banyak penerima, di bagian akhir listing program diatas ditambahkan dengan perintah pengiriman pada nomor selanjutnya seperti contoh berikut.

printf("at+cmss=1,%085749722xxx%c\x0D",petik,petik);
while (getchar()!='O');
while (getchar()!='K');
printf("at+cmss=1,%085236808xxx%c\x0D",petik,petik);
while (getchar()!='O');
while (getchar()!='K');

Dari Pengoperasian ini didapatkan bahwa komunikasi antara modem gsm dengan mikrokontroler telah berjalan dengan baik. Hal ini dibuktikan bahwa sms dengan isi pesan “Coba Kirim SMS Dari Mikrokontroler” di terima disemua nomor tujuan.

2. Pembacaan SMS

Pembacaan sms dari modem gsm dilakukan dalam mode teks sehingga tidak perlu dilakukan decoding untuk membaca isi pesan. Pengoperasian pembacaan sms dengan mikrokontroler dilakukan dengan mengirimkan at-command pada modem gsm secara serial dari mikrokontroler. Modem gsm akan merespon dengan membaca sms dan dikirimkan secara serial pada mikrokontroler. Karakter sms yang dikirimkan modem gsm pada mikrokontroler secara serial ditampung dalam suatu array dan ditampilkan pada layar LCD. Berikut potongan listing program pembacaan sms pada indeks memori 1 dari mikrokontroler dan ditampilkan pada layar LCD 16×2.

void read_SMS()
{
lcd_clear();
lcd_gotoxy (0,0);
lcd_putsf("Waiting Read SMS"); 
delay_ms(1000);
w=0;
ram_bebas=0; 
printf("at+cmgr=1\x0D");
while (ram_bebas!='K')
{
ram_bebas=getchar(); 
take_char[w] = ram_bebas;
w++;
} 
lcd_clear();
x=0;
for(w=0; w<16; w++)
{
lcd_gotoxy (w,0);
sprintf(buf,"%c",take_char[x]);
lcd_puts(buf); 
x++; 
}
x=16;
for(w=0; w<16; w++)
{
lcd_gotoxy (w,1);
sprintf(buf,"%c",take_char[x]);
lcd_puts(buf); 
x++; 
}
delay_ms(10000);
lcd_clear();
x=32;
for(w=0; w<16; w++)
{
lcd_gotoxy (w,0);
sprintf(buf,"%c",take_char[x]);
lcd_puts(buf); 
x++; 
}
x=48;
for(w=0; w<16; w++)
{
lcd_gotoxy (w,1);
sprintf(buf,"%c",take_char[x]);
lcd_puts(buf); 
x++; 
}
delay_ms(10000);
lcd_clear();
x=64;
for(w=0; w<16; w++)
{
lcd_gotoxy (w,0);
sprintf(buf,"%c",take_char[x]);
lcd_puts(buf); 
x++; 
}
x=80;
for(w=0; w<16; w++)
{
lcd_gotoxy (w,1);
sprintf(buf,"%c",take_char[x]);
lcd_puts(buf); 
x++; 
}
delay_ms(10000); 
}

Respon modem gsm dengan perintah diatas jika dipantau dengan PC seperti saat Pengoperasian dengan menggunakan PC pada pembahasan sebelumnya adalah sebagai berikut .

+CMGR: "REC READ","+6285749722xxx","","10/09/28,16:27:07+28"
Gsmtswl05
 OK

Sedangkan hasil pembacaan sms jika ditampilkan pada layar LCD seperti yang diuraikan pada tabel berikut.

3. Menambahkan phonebook

Untuk menambahkan nomor pada phonebook dilakukan dengan mengirimkan at-command +cpbw melalui mikrokontroler pada modem gsm secara serial. Berikut potongan listing program yang digunakan untuk menambahkan nomor pada phonebook melalui mikrokontroler.

………………………………..
printf("at+cpbw=,%c085746064489%c\x0D",petik,petik);
while (getchar()!='O');
while (getchar()!='K');
………………………………..

Hasil dari Pengoperasian menambahkan nomor pada phonebook menggunakan mikrokontroler berjalan dengan baik.

4. Membaca phonebook

Untuk membaca nomor pada phonebook dilakukan dengan mengirimkan at-command +cpbr melalui mikrokontroler pada modem gsm secara serial. Berikut potongan listing program yang digunakan untuk membaca nomor pada phonebook melalui mikrokontroler.

………………………………..
printf("at+cpbr=4\x0D",petik,petik);
while (getchar()!='O');
while (getchar()!='K');
………………………………..

Respon modem gsm dengan perintah diatas jika dipantau dengan PC seperti saat Pengoperasian dengan menggunakan PC pada pembahasan sebelumnya adalah sebagai berikut .

+CPBR= 4,” 085746064xxx”,”129”,”biren”
OK

Sedangkan hasil pembacaan phonebook jika ditampilkan pada layar LCD seperti yang diuraikan pada tabel berikut.

Catatan :

  • Sistem komunikasi serial mikrokontroler dengan modem GSM SIM300 menggunakan receiver interrupt service dengan ukuran buffer  min 100.
  • Sebaiknya kalo mengoperasikan modem sim300 atau modem lainnya dengan mikrokontroler dibuat “no echo” dengan at-command “ate0” pada awal program sehingga yang dibaca oleh mikrokonroler murni hanya respon dari sim300 atas at-command yang kita kirim.
  • Contoh penerapan “Sistem Informasi Ketinggian Air Secara Interaktif Dengan Media Seluler
    • Dendi
    • May 22nd, 2011

    Terima kasih atas informasinya…
    ini sangat membantu

    • chikonews
    • June 22nd, 2011

    nice info
    tapi klo bisa disertai dengan gambar mas
    saya juga baru ngoprek sim300c yang pengirimannya dikendalikan oleh mikro avr Atmega8535

    • kira2 gambar apa yang di butuhkan mas,,,??
      bisa kasih masukan masalah gambar tsb.
      mungkin nanti bisa saya tambahkan.
      soalnya saya kira ini hanya bahas masalh cara pengoperasian sim300 via mikrokontroler (programing).

    • chikonews
    • June 24th, 2011

    gambar pin mana saja yang dihub dari avr8535 ke sim300c, soalnya saya bngung menghubungkan (saya pake avr8535 V2.0 –>modul jadi sudah sekalian sismin) ke sim300c.
    oh y mas, ATmega16 yang diatas itu sama Atmega8535 sama tidak sih?program di atas klo dicoba ke 8535 jalan tidak? maklum masih belajar soal mikro saya
    terima kasih atas jawabannya

    • Untuk antarmuka modem SIM300 dengan mikrokontroler melalui port serialnya…
      silahkan cek gambar diatas,,,!!!
      dari fitur, atmega16 sama dengan atmega8535 hanya perbedaan memori flash,eeprom dll…
      program diatas bisa juga digunakan di ATmega8535,,,

      oy kalo boleh tau sim300 anda masih batangan atau sudah siap pakai (ada slot SIM card, battery dll)…???
      kalau masih batangan, rangkaiannya silahkan merujuk ke manual book sim300…

    • chikonews
    • June 25th, 2011

    sudah siap pakai,
    sekarang saya mau test komunikasi sim300c ke laptop (pake converter rs232 ke USB) . Saya coba ikuti spt tulisan di blog yang part1
    kog malah suruh install driver y mas?emg tidak langsung kebaca y? trus kalo mau masukin kodingan yang PC ke sim300c lewat mana y?
    kalo bisa tahap pertahap y mas,

  1. Yang butuh driver itu adalah converter rs232 ke USB nya bukan modemnya,,,
    coba ja install dulu driver converter tersebut,,,
    setelah driver terinstal coba cek koneksi converter rs232 tersebut dengan menggunakan hyperterminal (pilih com nya sesuai dengan deteksi device n baudrate yang digunakan) n pin TX dan RX dishort kemudian ketik sembarang huruf di aplikasi Hyperteminal. Jika huruf yang kita ketik keluar di layar maka koneksi converter USB to RS232 berjalan dengan baik.
    Setelah itu baru koneksikan TX dan RX USB converter tsb ke modem GSM nya,,,
    ketikkan at-command nya di aplikasi Hyperterminal tersebut.

    • chikonews
    • June 25th, 2011

    oh ya maap masih amatir, tapi sesuadah saya install driver kog saya lihat di control panel-system-hardware-device manager kog USB to rs232 lambangnya masih (?) apakah itu sudah terisntall dg benar? soalnya port com waktu saya ke hyperterminal sudah kedetect port COM 7
    oh y cara ngeshortnya Rx-Tx gmana mas? itu di RS232nya ?

    • kalo masih tanda ? berarti masih belum terinstall,,,
      coba klik propertise di USB to RS232 nya n lakukan update driver,,,
      converter usb to rs232 nya beli di toko komputer yah,,?
      kalo itu pin no.2 dan no.3 di short pake kabel ja…

    • chikonews
    • June 26th, 2011

    io mas, kog tau? emg beda ya klo beli di tko komp ma yang kagak? apa malah mending bikin sendiri?
    ok saya coba dl mas, tq infonya lo

    • kalo hanya untuk konverter biasa gpp pakai itu tapi kalo khusus interfacing elektronika sebaiknya beli yang memang dirancang khusus..

    • chikonews
    • July 1st, 2011

    oh y maaf mas mau tanya lagi
    misal kita baca sensor, trus data dari sensor itu pengen kita kirim ke HP
    kira2 konsep kodingannya seperti apa ya mas di mikronya?

    • Maksudnya data sensor dikirim ke HP via protokol SMS ta,,,??
      kan cukup simpel tinggal baca sensor lalu simpan data sensor pada sebuah variabel,,,
      lalu data di tulis dalam bentuk sms dan dikirim,,.
      misal membaca sensor ultrasonic dan disimpan pada variabel “sensor”

      //~~~~~~~~~~ codingnya kirim smsnya ~~~~~~~~~~
      ……………………………………………………
      sensor=get_ultrasonic();
      printf(“at+cmgw=%c087757554xxx %c\x0D”,petik,petik);
      while(getchar()!=62);
      printf(“Sensor ultrasonic:%0.2f”,sensor);
      putchar(26);
      while (getchar()!=’O’);
      while (getchar()!=’K’);
      printf(“at+cmss=1\x0D”);
      while (getchar()!=’O’);
      while (getchar()!=’K’);
      …………………………………………………
      //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        • muktar
        • July 28th, 2012

        mas..klw pake software arduino gmana programX???

      • wah saya belum pernah punya hardware arduino jd belum pernah coba bgaimna pemogramannya…
        sekilas arduino kan hanya merk modulnya dan chip mikrokontrolernya masih keluarga atmega so kalau menurut saya tidak banyak perbedaannya.

        • muktar
        • August 7th, 2012

        gene mas..saya pake PIR untuk deteksi gerak..dengan program sketch arduino..kemudian ngirim sms dengan starter gsm..bisa minta listing program penuhkah untuk deteksi gerak via smsx??? biar nanti di coba
        Makasih sebelumnya..

      • ini link progaram untuk send sms nya dan tinggal modifikasi sesuai data dari PIR untuk send ke HP.
        http://ubuntuone.com/7dljs4bO4412YCUzA1mlf3

    • haha
    • July 3rd, 2011

    mas,kok sim300 saya g ada balasan tulisan “ok” yah setelah dikirim at command dengan tampilan lcd, padahal wktu di tes di hypeterminal menggunakan uart rs 232 dia kebales ok,tapi wktu menggunakan uart ttl,itu tidak kebalas ok,cuman balasan tulisan yg sama seperti at commandnya.terima kasih

    • bisa jadi buffer uart mikrokontroler yang disediakan terlalu kecil sehingga tidak mampu menampung data yang dikirim oleh sim300.
      oya, sebaiknya kalo mengoperasikan sim300 dengan mikrokontroler dibuat “no echo” dengan at-command “ate0” pada awal program sehingga yang dibaca oleh mikrokonroler murni hanya respon dari sim300 atas at-command yang kita kirim tanpa mengirim balik at-command yang kita kirim ke mikrokontoler.

    • haha
    • July 3rd, 2011

    itu gmn yah mas cara mengatasi uart buffer yg terlalu kecil itu padahal saya jg memakai atmega 16

    • UART nya sudah pakai fitur uart receive interrupt kan,,,
      disetting wizard disana telah da setting ukuran buffer yang kan kita gunakan,,,
      default nya 8 Byte,,,
      setidaknya ukuran buffer adalah 100 Byte untuk menampung karakter yang dikirim oleh modem

    • ari
    • July 14th, 2011

    mau tanya lagi mas
    bisa g mas menghubungkan SIM300c dengan mkrocon avr8535, dengan menggunakan komunikasi serial UART RS232 pada sim300c, dengan terlebih dahulu membuat converter menggunakan max232?

    • maksudnya bagaimana ya,,,???
      oy kalo boleh tau, sim300c yang kamu gunakan sudah dalam bentuk modul siap pakai atau masih modem batangan,,,???
      setau sya modem sim300 sudah format TTL jadi kalo mau komunikasi UART dengan mikrokontroler tidak perlu converter tegangan lagi kecuali jika ingin komunikasi UART dengan PC maka perlu converter tegangan (bisa dengan max232),,,
      kalo punya sy dulu sim300 sudah dalam bentuk modul dan telah menyediakan UART TTL (untuk mikro) dan UART untuk PC…
      dengan begitu UART TTL saya gunakan untuk melakukan aktivitas at-command via mikrokontrol dan UART PC digunakan untuk trace apakah semua perintah oleh mikro pada sim300 berjalan dengan baik…

        • ari
        • July 17th, 2011

        modul jadi mas, saya pake yang modul GSM starter kit
        oh jadi tinggal colok pake kabel biasa saja ya mas? yang di konektor J1 pin RXD dan TXD langsung colok ke pin ADC mikro (port A) secara cross gt y mas?

  2. ari :
    yang di konektor J1 pin RXD dan TXD langsung colok ke pin ADC mikro (port A) secara cross gt y mas?

    TXD dan RXD modem bukan cross ke ADC tapi ke TXD dan RXD mikrokontroler (PORTD.0 dan PORTD.1)..

    • lolo
    • July 19th, 2011

    Mas saya wktu itu buat progam untuk membaca sms dan menghidupkan led sesuai fomat sms,awalnya tuh pogram lanca,tapi setelah beberapa lama kemudian,itu progam sepeti ga jalan lg yahh. itu kira2 kenapa yah?

    • sudah coba di trace at-command yang dikirim oleh mikrokontroler ke hp/modem dan respon dari hp/modem ke mikrokontroler g, kira2 masih sesuai dengan settingan yang dulu di inputkan gak,,,??
      biasanya sih kalo mikrokontroler lama g di hidupin, program yang tersimpan di dalam nya rada ngaco so minta di download ulang program mikronya,,,

        • lolo
        • July 20th, 2011

        sudah mas,saya pake dah monitoring keduanya,respon modem sama data yg dikirim mikon yang berupa at command,kebanyakan nyangkutnya gara sms masuk,trs mikonnya ga mau ngirim at+cmgr buat ngebaca sms,itu solusinya gmn yah ? apa ganti mikon?

  3. lolo :
    sudah mas,saya pake dah monitoring keduanya,respon modem sama data yg dikirim mikon yang berupa at command,kebanyakan nyangkutnya gara sms masuk,trs mikonnya ga mau ngirim at+cmgr buat ngebaca sms,itu solusinya gmn yah ? apa ganti mikon?

    dicoba program ulang ja dulu mikronya,,,
    sepintas sepertinya masalhanya bukan karena mikronya(hardware),,
    kalo boleh tau, sistem pengiriman at-command untuk baca smsnya pakai sistem timing atau pakai direct respon setiap ada sms masuk,,,?
    pengalaman saya kalo pakai sistem direct respon setiap ada sms masuk, programnya sering nyangkut gara2 sistem pengolahan data serialnya kurang sempurna,,,

    • lolo
    • July 20th, 2011

    pake direct respon,stiap ada sms masuk,dengan tanda +c,langsung kirim at command utk baca sms,nah setelah beberapa lama at+cmgr nya ini ga ke kirim,itu kira2 kenapa yah mas?

    • untuk memantau bahwa ada sms masuk menggunakan fasilitas uart receiver interrupt g,,,???
      kemungkinan terjadi miss dalam timing nya,,,
      oy, pada alat tersebut ada aktivitas rutin lainnya g selain memantau/membaca sms masuk dan memberikan kontrol pada lampu,,,??
      kalo masih ada aktivitas rutin lainnya seperti membaca sensor dll yang aktivitasnya bisa diganggu sebentar untuk membaca sms, sebaiknya proses pembacaan sms nya di buat prosedural aja,,,

    • lolo
    • July 22nd, 2011

    saya ga memakai interrupt mas,da,mang hrs pke interrupt yah? saya menampilkan lcd dot matrix..

    • sebenarnya kalo menggunakan serial biasa bisa asal perintah yang kirim via sms pendek (misal angka 8 untuk menyalakan lampu ke 4 dari 4 lampu dlam biner 1000) dan buffer serial selalu di bersihin setelah data dibaca (baca sms) karena kemungkinan data itu menumpuk di buffer serial sehingga perintah sms tidak terbaca sempurna sebab terjadi tumpang tindih data di buffer serial dan itulah yang menyebabkan program seolah tak berjalan setelah beberapa waktu karena miss dalam perintah,,,

    • ari
    • August 7th, 2011

    mas saya mau tanya, anda khn pake modul GSM yang sudah jadi juga khn? nah d situ khn terdapat batre litium, apakah itu buat clock internal? jika ia bisa g clock itu digunain untuk penjadwalan pengiriman? mungkin ada pin buat clock agar bisa dibaca oleh mikro?

    • mohon ma’af atas keterlambatan responnya…
      memang benar baterai itu sebagai baterai backup RTC modem dan memory modem tapi sepintas saya lihat dari datasheet modem nya tidak terdapat pin out pengaksesan RTC dari modem tersebut…
      mungkin kalo untuk tujuan itu bisa dipakai RTC luar modem untuk penjadwalan sms seperti yang pernah saya lakukan yaitu memakai RTC DS1307 untuk penjadwaln pembacaan sms dan pengiriman sms…

        • ari
        • August 15th, 2011

        oh begitu ya, terima kasih atas jawabannya
        dan ada yang ingin saya tanyakan, saya pake codevision untuk pemrograman, tetapi kenapa fungsi “sprintf” selalu error, keterangannya “undefined symbol ‘sprintf’ ” apa perlu di dideklarasikan? padahal format penulisannya sudah sesuai kira2 seperti ini:
        while (1)
        {
        // Place your code here
        lcd_gotoxy(0,0);
        sprintf (lcd_buffer,”adc=%c”,read_adc(0));
        lcd_puts(lcd_buffer);
        };

        utk lcd_buffer sudah saya deklarasikan “char lcd_buffer [33];”
        mohon bantuannya

  4. ari :

    oh begitu ya, terima kasih atas jawabannya
    dan ada yang ingin saya tanyakan, saya pake codevision untuk pemrograman, tetapi kenapa fungsi “sprintf” selalu error, keterangannya “undefined symbol ‘sprintf’ ” apa perlu di dideklarasikan? padahal format penulisannya sudah sesuai kira2 seperti ini:
    while (1)
    {
    // Place your code here
    lcd_gotoxy(0,0);
    sprintf (lcd_buffer,”adc=%c”,read_adc(0));
    lcd_puts(lcd_buffer);
    };

    utk lcd_buffer sudah saya deklarasikan “char lcd_buffer [33];”
    mohon bantuannya

    sudah masukin library “stdio.h” belum…???
    kayaknya belum deh…🙂

      • ari
      • August 15th, 2011

      heh? gmana tuw maksudnya? masukin library?
      yang pake include itu kah? bisa lebih dijelasin lagi langkah2nya?

      • yups…
        tambahin #include “stdio.h”

        • ari
        • August 15th, 2011

        oh iya mas dah bisa,
        trus kalo kita pake adc, sensor ngluarin tegangan dari 2 – 4,8 Vdc, kog yang tampil di LCD malah adc= (kaya huruf korea).
        itu kenapa ya mas? padahal saya penginnya keluar angka antara 2 – 4,8 Vdc

  5. ari :
    oh iya mas dah bisa,
    trus kalo kita pake adc, sensor ngluarin tegangan dari 2 – 4,8 Vdc, kog yang tampil di LCD malah adc= (kaya huruf korea).
    itu kenapa ya mas? padahal saya penginnya keluar angka antara 2 – 4,8 Vdc

    kalau merujuk program anda

    “sprintf (lcd_buffer,”adc=%c”,read_adc(0));”

    so pasti yang ditampilin adalah bentuk karakter karena %c itu untuk menampilkan karakter khusus yang merujuk pada karakter ASCII. coba diganti dengan begini maka yang tampil adalah nilai ADC itu sendiri.

    “sprintf (lcd_buffer,”adc=%d”,read_adc(0));”

    mungkin sedikit tambahan tipe konversi data saat mau ditampilkan pada LCD ato lainnya:

    %c –> menampilkan dalam bentuk karakter ASCII
    %d –> menampilkan data desimal
    %f –> menampilkan data pecahan

    selebihnya coba cari ja di om gugel.

    next..! masalah adc.
    adc berfungsi mengkonversi data analog menjadi data digital. Dalam hal ini hasil konversi bukan sebagaimana yang anda maksud diatas.
    Data hasil konversi bergantung resolusi dari adc itu sendiri. misal gampangnya begini, nilai tegangan yang akan di konversi 0-5 V dan resolusi adc yang digunakan adalah 8 bit maka hasil konversi ADC dari tegangan tersebut akan bernilai dari 0(untuk 0V)-255(untuk 5V). sedangkan jika diterapkan pada adc 10 bit maka data hasil konversi teganyan tersebut bernilai dari 0(untuk 0V)-1023(untuk 5V). Baru dari data tersebut kita olah sesuai keinginan.

      • ari
      • August 17th, 2011

      oh berarti masalah adc, tegangan diubah ke biner 8 bit (kalo pilih 8 bit) trus data biner tsb disimpan d variabel
      nah variabel tersebut yang kemudian kita olah (masukkan ke persamaan), apakah seperti itu?

    • diah
    • September 6th, 2011

    mas mau tanya, saya masih awam,
    1. settingan agar mikro avr (saya pakai 8535 spt yg mas2 yg komen d atas) agar terhubung dengan modul gsm di codevison avr bagaimana y? hal2 yang perlu diperhatikan di USART apa saja,
    2. selain itu saya juga baca2 kalau modul gsm juga perlu dilakukan setting terlebih dahulu , apakah itu benar?
    terimakasih atas jawabannya

    • ma’af atas keterlambatan responnya…

      diah :
      mas mau tanya, saya masih awam,
      1. settingan agar mikro avr (saya pakai 8535 spt yg mas2 yg komen d atas) agar terhubung dengan modul gsm di codevison avr bagaimana y? hal2 yang perlu diperhatikan di USART apa saja,

      yang perlu di perrhatikan adalah baudrate yang digunakan. selain itu gunakan buffer receive serial interrupt yang lumayan besar untuk menampung semua data yang di kirim oleh modem gsm jika kita mengirimkan at-command pada modem.

      2. selain itu saya juga baca2 kalau modul gsm juga perlu dilakukan setting terlebih dahulu , apakah itu benar?
      terimakasih atas jawabannya

      kalo settingan di modem gsm tidak da yang khusus karena modem gsm sudah siap pakai dan langsung jalan brdasarkan at-command yang kita kirimkan. settingan itu perlu jika kita butuh respon bukan brdasarkan default respon dari modem itu sendiri misalnya:
      1. menjalankan dalam format teks mode dengan kirim at-command “at+cmgf=1” karena biasanya defaultnya dalam format PDU mode.
      2. menonaktifkan echo dari modem dengan at-command “ate0”

    • Pajo
    • September 30th, 2011

    Artikel yg sangat bagus mas!!

    Mw tanya😀
    data yg dikirim oleh modul GSM dibaca di mikrokontroler dlm bentuk apa mas??

    • data yang dikirim oleh modem gsm ke mikrokontroler adalah jawaban dari at-command yang kita kirim dan data tersebut berupa karakter ASCII so jika kita ingin menampilkannya ke LCD atau ke PC kita menampilkannya dalam bentuk karakter juga (%c)…

  6. Diatas pengiriman secara sms yah.bagaimana hanya memanfaatkan gprs pada gsm sim card at commandnya bgmn?

    • untuk modem gsm sim300 kayaknya g support gprs,,,
      dan da versi yang lebih barunya yang telah ssupport gprs…
      untuk at-command akses gprs coba ngerefer ke manual book product…

    • ari
    • October 30th, 2011

    mas kenapa saya pake nie coding
    lcd_gotoxy(0,0);
    lcd_putsf(“Cek Hardware”);
    lcd_gotoxy(0,1);
    lcd_putsf(“GSM SIM300C”);
    delay_ms(500);
    printf(“AT”);
    putchar(13);
    while (getchar()!=’O’);
    while (getchar()!=’K’);
    delay_ms(500);
    printf(“ATE0”);
    putchar(13);
    while (getchar()!=’O’);
    while (getchar()!=’K’);
    delay_ms(500);
    printf(“AT+CMGF=1”);
    putchar(13);
    while (getchar()!=’O’);
    while (getchar()!=’K’);
    lcd_gotoxy(11,1);
    lcd_putsf(“OK”);
    delay_ms(500);

    dengan Rx interupt 256 n Txinterupt 32
    kog ga ada tulisan OK ?
    tapi waktu saya coba tes kirim SMS pake Uc berhasil,
    niatnya kode di atas buat inisialisasi waktu awal pengoperasian SIM300 sih, tapi kog g ada balasan OK
    ada saran or solusikah?

    • sebenarnya jika program kirim sms diletakkan sesudah detecting hardware diatas n ternyata kirim sms nya berhasil berarti program diatas telah sukses hanya saja kemungkinan terjadi kesalahan pada saat nampilin konfirm OK pada lcd. saya berasumsi begitu karena jika ada salah satu dari inisialisasi diatas gagal maka otomatis program kirim sms nya gagal. untuk lebih pastinya coba di trace via PC untuk mengetahui apakah respon dari sim300 sesuai dengan harapan kita.

      oy kalo boleh tanya, kira2 buat apa Txinterrupt pada program anda,,??

    • ari
    • October 31st, 2011

    oh saya hanya berpikir mungkin saja saat transmit butuh buffer juga, ternyata tidak dikasih interup jg bisa,
    biasanya kalo saya trace program satu per satu nyangkutnya di bagian

    while(getchar()!=’O’);
    while(getchar()!=’K’);

    soalnya program ngirim sms saya letakkan setelah detecting hardware, tapi tanpa

    while(getchar()!=’O’);
    while(getchar()!=’K’);

    dan SMS berhasil dikirim, soalnya kalo ini aja g berhasil bagaimana ntar buat baca SMS lewat LCD, posing

    • Biasanya setiap respon modem akan diakhiri “OK” jika berhasil ato “ERROR” jika gagal eksekusi at-command yang kita kirimkan.
      sebaiknya cek aja dulu via PC untuk mengetahui respon dari modem.

      Oy ketika baru menyalakan sim300, dy butuh waktu untuk mempersiapkan diri menerima at-command so jika kita mengirimkan at-command disaat modem belum siap sudah bisa di pastikan akan error. Sebaiknya nyalain dulu modem gsm hingga siap menerima at-command, baru nyalain mikrokontroler,,,,

        • ari
        • November 1st, 2011

        bener mas keknya nyangkut kalo di kasih
        program getchar()!
        jadi kesannya kog komunikasinya 1 arah gini ya, mau baca balasan modem g bisa, padahal kalo pake hyperterminal bisa

  7. ari :
    bener mas keknya nyangkut kalo di kasih
    program getchar()!
    jadi kesannya kog komunikasinya 1 arah gini ya, mau baca balasan modem g bisa, padahal kalo pake hyperterminal bisa

    kalo send sms yang ada command getchar() bisa, seharusnya g da masalah dengan inisialisasi diatas,,,

    coba lampirkan program yang anda pakai, nanti saya bantu analisis,,!!!

      • ari
      • November 1st, 2011

      lcd_clear();
      lcd_gotoxy(0,0);
      lcd_puts(” Cek Send SMS “);
      printf(“AT\x0D\x0A”);
      delay_ms(500);
      printf(“ATE0\x0D\x0A”);
      delay_ms(500);
      printf(“AT+CMGF=1\x0D\x0A”);
      delay_ms(500);

      printf(“AT+CMGS=”);
      putchar(‘”‘);
      printf(“085xxxxxx”);
      putchar(‘”‘);
      putchar(‘,’);
      putchar(13);
      putchar(10);
      printf(“test Send SMS OK”);
      putchar(26);
      delay_ms(10000);
      lcd_puts(“OK SMS Terkirim”);

      nah waktu inisialisasi “Cek SMS” di atas berjalan lancar n sms bisa dikirim, tapi kalo diantara printf dan delay_ms diselipin perintah
      while(getchar()!=’K’);
      jadi g mau kirim sms,
      saya pake Codevision avr 2.05 disitu ada perbedaan di bagian USART nya

      #ifndef _DEBUG_TERMINAL_IO_
      // Get a character from the USART Receiver buffer
      #define _ALTERNATE_GETCHAR_
      #pragma used+
      char getchar(void)
      {
      char data;
      while (rx_counter==0);
      data=rx_buffer[rx_rd_index++];
      #if RX_BUFFER_SIZE != 256
      if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
      #endif
      #asm(“cli”)
      –rx_counter;
      #asm(“sei”)
      return data;
      }
      #pragma used-
      #endif

      perbedaan pada bagian if rx_buffer_size!=256, di versi cvavr sebelumnya perintah tersebut tidak ada, selain itu khn saya pake buffer 256, apa pengaruh ya kira2?

    • agung
    • November 1st, 2011

    Saya sedang belajar membuat komunikasi dari inovative atmega 8535 ke gsm starter kit…

    sudah coba codigan di atas… tapi Gsm stater kit tidak merespon… AT commandnya… tolong info2 nya saudara2.🙂 mohon di bantu.

      • ari
      • November 2nd, 2011

      GSM starter kit yang modul jadi y mas? saya juga pake itu. Dulu kendala saya gara2 echo masih diaktifin, coba dimatiin caranya
      pake hyperterminal (modul GSM dengan PC) ketik ate0 kemudian setting baudratenya, kalo saya clock 8535 sebesar 4MHz sehingga hanya mampu 19200kbps, di atas itu error, kalo 11,059MHz keknya bisa ampe 1152000. pake at+ipr= baudrate kemudian ketik at&w buat nyimpen settingan.
      kalo bisa kasih kabar.

    • agung
    • November 2nd, 2011

    iyaa.. Alhamdulillah bisa mas… Makasii ya mas Infonyaa… terima kasih bnyak. Cuma untuk Command

    while (getchar()!=’O’);
    while (getchar()!=’K’);

    tidak bisa jalan ya mas… stack di situ…

    Kalau pakai RTC di GSM stater kit… ada info nya juga ga mas ? hehehhe.

      • ari
      • November 2nd, 2011

      loh masnya juga stak di command

      while (getchar()!=’O’);
      while (getchar()!=’K’);

      juga? apa dah tau itu gara2 apa mas?
      ane juga pake RTC, tapi masih error, kayaknya rangkaiannya yang salah. soalnya punya ane kebacanya cuma 0 semua n kedip2 g jalan waktunya.
      kalo berhasil kasih tau juga mas rangkaiannya kek apa,
      katanya mas ‘coys’ sh Xtal agak sensitif, nie aja ane ampe beli 6 tapi masih sama aja, jadi menurut ane sh keknya masalah di rangkaiannya

  8. lho,,,
    problemnya sama yach,,,???
    jangan2 modul rangkaian yang di pakai sama juga ya pakai starter kit IE,,,??

    oke, tolong kasih info ttg respon modem jika diberi at-command via hyperterminal

    1. at+cmgf=1
    2. ate0

    apakah mendapat respon ‘OK’ ???
    mohon diperhatikan secara detail, apakah huruf kapital atau ga,,,

    trus untuk RTC, memang ini agak susah dikit dalam hal komunikasi,,,
    bisa jadi dikarenakan Xtal yang g pas atau kabel I2C yang agak longgar/panjang atau R pull up yang g cocok,,,

    untuk R pull up RTC biasanya sekitar 1K-1K8,,,
    trus untuk cek komunikasi I2C sudah sukses pa belum dengan RTC bisa ditambahkan code berikut:

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    lcd_putsf(“Cek Hardware”);
    lcd_gotoxy(0,1);
    lcd_putsf(“RTC”);
    delay_ms(500);
    if (i2c_start() == 0)
    {
    sprintf(buf, “NO BUS”);
    }
    else if (i2c_write(0xD0))
    {
    sprintf(buf, “‘OK'”);
    }
    else
    {
    sprintf(buf, “‘ERROR'”);
    }
    i2c_stop();
    lcd_gotoxy(4,1);
    lcd_puts(buf);delay_ms(1000);
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      • ari
      • November 2nd, 2011

      via hyperterminal responnya OK, huruf besar semua begitu pula ate0,

      while(getchar()!=’K’);

      udah ane ganti besar n kecil tetep nyangkut mas,
      oh ya mas listing program di atas khn di main programnya ane tulis program buat baca adc, kog katanya memory RAM 384 too large gt keterangannya, ada apa y tuw?

    • agung
    • November 2nd, 2011

    klo untuk Command sih ga ada masalah mas… jadi saya ga pake perintah “while” saya ubah dengan delay aja saya kasi 500 ms. buffer juga sudah saya naikin.. sampai 200 tetap ga bisa mas stack di while terus.

    iya hurus besar kecil juga saya sudah ganti tetap nyangkut di while…

    nah i2c saya sudah saya pake di.. buat compas.. klo ada 2 i2c dalan 1 configurasi bisa ya mas ????

    klo RTC saya lagi cari2 ni.. belum ketemu.. mas.

  9. wah,,,
    kok aneh ya,,,???
    secara tidak lgsung berarti ini hanya komunikasi 1 arah saja tanpa bisa baca respon dari sim300,,,
    bisa dikasih link untuk drawing rangkaian modul starterkit sim300 kalian..!!!
    q coba cek dari rangkaiannya,,,
    soalnya dari program seharusnya itu sudah bisa,,,

    Oy for Ari: bisa jelaskan maksud \x0A pada:

    printf(“AT\x0D\x0A”); atau printf(“AT+CMGF=1\x0D\x0A”);

    untuk i2c bisa menkomunikasi hingga 8 device sekaligus dalam 1 bus data (cukup 1 pull up). Dulu q menggunakan i2c untuk RTC ds1397 dan eeprom at24c128…

      • ari
      • November 3rd, 2011

      wa kirim aja ya datasheetnya ke email u mas coys,
      oh \x0A khn hex dari 10 kalo g salah itu spasi mas
      habis di enter (\x0D) khn dibelakang OK ada kursor spasi kosong no char, pikiran ane sh gt
      besuk coba wa ilangin masih bisa ngirim pa gak, dah malem ini soalnya wkwkw
      oh ya mas itu gmana yang ket warning memory RAM flash too large, maksudnya gmana tuw?
      wa kirim ke sini ya coys.jrux@gmail.com

      • oke,,,
        ane baca2 dulu datasheetnya,,,

        kalo masalah “warning memory RAM flash too large” disebabkan memory flash terlalu kecil dengan program yang anda buat,,,
        mungkin bisa disebabkan oleh variable array yang terlalu besar,,,

    • agung
    • November 3rd, 2011

    software buat drwaing apa ya mas ??? sya belum pernah nihh…
    ya sepertinya begitu ini cuma komunikasi 1 arah…
    tapi di data sheet nya bisa 2 arah.
    dan di aplikasi contoh… ada yang 2 arah.

    oh ya itu RTC yang di GSM staer kit bisa di gunakan tidak yaa ???

      • ari
      • November 3rd, 2011

      kalo ane coba kemaren sih g bisa di setting RTC nya, dah bawaan dari sono. Punya ane aja wa liat clocknya tulisannya masih taon 2007. Wa juga kemaren kepikiran mau pake RTC GSM tapi ternyata g bisa di set (T_T).

        • agung
        • November 3rd, 2011

        terus baterai nya untuk apa tu yaa ??? tapi di data sheet di tulis include RTC… hadehhhh…

    • agung
    • November 3rd, 2011

    oh yaa mas gi mana caranya 1 “i2c” bisa lebih dari 1 device yang komunikasi… ? waktu pemilihan port kan cuma 1 mas ….. apa bisa di port yang beda ?

      • ari
      • November 3rd, 2011

      kalo g salah mainnya di alamat addresnya, jadi bus I2C (data n clck) nanti mainnya diparalell, tiap device yg butuh jalur i2C pasti ada pin data n clk, nah hubungin saja, kalo g salah gt sh waktu liat2 rangkaian

    • ya kita cukup menghubungkan semua scl dan sda setiap device ke bus i2c (secara paralel) dan pengaksesan setiap device dilakukan via program berdasarkan alamat setiap device, misal anda menggunakan RTC dengan alamat 1 dan kompas dengan alamat 2 dalam bus i2c maka kalo ingin membaca RTC, kirim dulu alama yang dituju yaitu 1 baru lakukan akses data dan begitu juga pada kompas,.

  10. mas mo tnya program baca sms yg ada d atas….
    pas ud d compile ko selalu ada error… keterangan errornya itu undifined symbol ‘take_char’ . knp uh mas???? ntrus tipe data dari take_char it apa mas????

      • agung
      • November 3rd, 2011

      yaa buat apa tu yaa… buat mengambil karakter dari modem kalii…. mas.
      typenya character kali ya…

    • itu berarti belum dideklarasikan,,,
      take_char dalam program adalah array untuk menampung karakter dari buffer serial yang dikirim oleh modem untuk bisa dibaca/diolah oleh diprogram berikutnya misalnya menampilkan respon modem pada LCD. tipe data take_char adalah char.

    • ari
    • November 3rd, 2011

    agung :
    terus baterai nya untuk apa tu yaa ??? tapi di data sheet di tulis include RTC… hadehhhh…

    g tahu juga ane maksudnya buat apa, tapi kemaren waktu wa coba pake hyperterminal, dah wa ketik at+cclk=trus wa setting, jawabannya error molo
    tapi ngmng2 dah lw coba belum buat nyetting clocknya? apa format saya yg salah yah waktu nyetting?

    • kayaknya g da yang aneh dengan rangkaiannya,,,
      cuma kekurangannya starter kit ini tidak bisa menggunakan rs232 dan uart TTL sekaligus so tidak bisa ngecek via PC nyantolnya program mikro itu dimana..

      coba pake program ni tuk kirim sms. set dulu baudrate sesuai sistem minimun kalian soalnya ni pake 1152000. Ni link programnya http://ubuntuone.com/7dljs4bO4412YCUzA1mlf3

      untuk masalah baterai itu berfungsi sebagai baterai backup RTC dan dari datasheet RTC tersebut bisa difungsikan sebagai auto ON modem berdasarkan alarm.

      untuk setting waktu RTC coba pakai at-command berikut ” AT+CCLK=yy/MM/dd,hh:mm:ss-zz” dimana

      yy=years (2 angka terakhir)
      mm=months (2 angka terakhir)
      dd=days (2 angka terakhir)
      hh=hours
      mm=minute
      ss=second
      zz=zone time

        • ari
        • November 3rd, 2011

        itu gmana cara download ke chipnya, kog tombol build project all file di codevisionavrnya mati?

    • ari
    • November 3rd, 2011

    coys :
    oke,,,
    ane baca2 dulu datasheetnya,,,
    kalo masalah “warning memory RAM flash too large” disebabkan memory flash terlalu kecil dengan program yang anda buat,,,
    mungkin bisa disebabkan oleh variable array yang terlalu besar,,,

    walah padahal array cuma buat buffer data sensor lo, itu aja di global var cuma ada 1 array, masa ia dah penuh aja mas?
    waduh

    • kalau buat array sebaiknya jangan terlalu besar dan kalo data sensor agak banyak bisa diakali dengan menyimpan pada eeprom internal mikro walaupun itu kurang efektif…

  11. ari :

    itu gmana cara download ke chipnya, kog tombol build project all file di codevisionavrnya mati?

    yo bikin project baru dulu baru codingnya di replace dengan coding itu. tapi sesuaikan dulu baudratenya sesuai sistem minimum anda,,,

      • ari
      • November 3rd, 2011

      tanya lagi, ane bngung mas at+cmgw tuw sebenarnya apa sih? kog nulis ke memory, maksudnya kek gmana?
      trus itu kalo berhasil ngirimnya ke no diantara %c itu ya?

      • perbedaan at+cmgs dengan at+cmgw adalah yaitu penyimpanan dalam memori. jika at+cmgs adalah menulis pesan/sms lalu dikirim langsung ke penerima tanpa disimpan dalam memory dan tidak bisa diforward ke nomor lain. sedangkan at+cmgw dy menulis sms dulu dan disimpan di memori lalu dikirim ke nomor yang dituju (kalo di hp biasa dikenal dgn save sent item) dan cara ini memungkinkan sms tersebut bisa dikirim ke banyak nomor lain dengan cara forward.

    • ari
    • November 4th, 2011

    kalo gt datanya fix donk mas, kek di progam anda tuw sms yg dikirim isinya cuma dt1 ampe dt8?

    printf(“at+cmgw=%c085236808160%c\x0D”,petik,petik);
    nah fungsi petik 2x di atas tuw apa mas?kog nilainya 34

    ini saya keknya juga harus pake mega16, soalnya 8535 keluar lagi penjelasan kalo “Linker error: global RAM variables size: 547 bytes is too large” waktu pengen download program ke chip.
    keknya emg ukurannya terlalu kecil untuk bikin proyek kirim SMS

    • ari :
      kalo gt datanya fix donk mas, kek di progam anda tuw sms yg dikirim isinya cuma dt1 ampe dt8?

      itu kan cuma contoh n uji coba ja n data yang dikirim cm 8 data ja,,,
      kalo berhasil selanjutnya terserah anda, apa mau data dari sensor atau data dari mana ja n jumlahnya terserah juga tp sesuikan dengan jumlah halaman sms karena kalau terlalu banyak bisa nyangkut di penyedia jaringannya…

      kalo diprogram sy yang real datanya mencapai 70-80 data n kalo di tulis dalam sms mencapai 8-9 halaman sms,,,,

      printf(“at+cmgw=%c085236808160%c\x0D”,petik,petik);
      nah fungsi petik 2x di atas tuw apa mas?kog nilainya 34

      format untuk send sms dengan menyimpan dulu pada memori adalah at+cmgw=”nomor tujuan”. karena dalam printf tidak memperbolehkan da lbh dari 2 pasang tanda petik maka saya akali dengan menggunakan karakter ascii dgn nilai 34 yang kalau direalnya dia adalah tanda ”

      ini saya keknya juga harus pake mega16, soalnya 8535 keluar lagi penjelasan kalo “Linker error: global RAM variables size: 547 bytes is too large” waktu pengen download program ke chip.
      keknya emg ukurannya terlalu kecil untuk bikin proyek kirim SMS

      sebenarnya kalo untuk program yang kira2 agak komplek tidak disarankan menggunakan 8535 karena keterbatasan memori karena yang tipe ini biasanya digunakan untuk program kecil2. Paling g minimal menggunakan yang 16 untuk program komplek.

    • ari
    • November 12th, 2011

    duh, tetep g bisa mas, keknya komunikasinya tetep satu arah nie.
    mas kalo contoh program buat nampilin karakter di UART gmana mas?
    stress saya

    • nampilin karakter uart yang bgaimana ya,,,???

        • ari
        • November 15th, 2011

        ya itu misal, modem balas tulisan OK, nah kita ambil tulisan OK lalu tampilin di UART
        kalo kemaren saya coba di simpan di array, tapi tetep g bisa. Apa gara2 ngambil karakter ‘K’ aja nggak bisa makanya g bisa juga y nampilin kata OK di LCD

  12. ari :
    ya itu misal, modem balas tulisan OK, nah kita ambil tulisan OK lalu tampilin di UART
    kalo kemaren saya coba di simpan di array, tapi tetep g bisa. Apa gara2 ngambil karakter ‘K’ aja nggak bisa makanya g bisa juga y nampilin kata OK di LCD

    coba coding untuk baca sms yang da dimodem gsm diatas ja…
    tapi pastikan ada pesan dimemori index 1
    n coding ni

    while (ram_bebas!='K')
    {
    ram_bebas=getchar(); 
    take_char[w] = ram_bebas;
    w++;
    }

    diganti

    while (w!=25)        //nilai ini dikira2 ja sesuai banyaknya karakter sms
    {
    ram_bebas=getchar(); 
    take_char[w] = ram_bebas;
    w++;
    }

    coba dilihat hasil pembacaannya..!!!

    • chikonews
    • November 22nd, 2011

    oh da bisa baca balasan modem mas sekarang
    ternyata yang dibutuhin bukan cuma Tx dan Rx tetapi RTS juga perlu, soalnya RTS itu sinyal dari modul GSM buat bales At command
    tererengkyu mas

      • bree
      • May 25th, 2012

      Saya mau tanya,itu apakah berarti pin Tx, Rx, dan RTSnya pada RS232 dishort/digabung dg kabel ?

        • chikonews
        • May 25th, 2012

        Tidak, Hubungin aja sec. cross kabel Rx dg Tx (antara miko dg modem) setelah itu hubungin RTS dg RTS (mikro dg modem). Tidak ada yang d short. Dikarenakan pada modem GSM (sim300C) yg saya gunakan, sinyal RTS digunakan untuk tanda pertukaran data . Tapi dalam kasus lain (modem selain sim300c) kebanyakan tanpa pin RTS dan komunikasi bisa dilakukan makanya di short.

    • ari
    • December 6th, 2011

    mas coy
    itu yang baca SMS tuw yang jadi buffer n buat parsing (mencacah) yg mana?
    apakah “ram_bebas–>buffer” dan “w–> parsing” ?
    kalo iya tuw nanti variable berupa apa? n masuknya di global or local variable?

    • sebenarnya tanpa menggunakan ram_bebas bisa juga n langsung ke take_char[w]. ram_bebas hanya sebagai penyimpanan sementara. w disana untuk mencacah dia telah mencapai karakter ke berapa dari pembacaan tersebut sekaligus untuk identifikasi di program berikutnya apakah karakter ke-w sama dengan karakter tertentu ato ga,,,
      untuk itu semua saya masukkan ke global variable karena bisa jadi itu nanti juga digunakan di sub rutin yang lainnya. jika hanya digunakan dalm rutin tertentu sebaiknya gunakan local variable ja.

        • ari
        • December 7th, 2011

        kog g jalan ya mas punya saya, ini ada yang salahkah?
        w=0;
        ram_bebas=0;
        ram_bebas=getchar();
        if(ram_bebas==’@’)
        {
        take_char[w]=ram_bebas;
        w++;
        }
        if(take_char[0]==’@’&&take_char[1]==’1′)
        {
        printf(“at+cmgs=%c0856xxxx%c\x0D”,petik,petik);
        printf(“SMS Balasan”);
        putchar(26);
        }

  13. untuk karakter ‘@’ dan ‘1’ ini berasal dari respon modem atau dari perintah serial yang lain,,,???

    w=0;
    ram_bebas=0;
    ram_bebas=getchar();
    if(ram_bebas==’@’)
    {
    take_char[w]=ram_bebas;
    w++;
    }

    jika bener karakter pertama yang diterima oleh buffer rx adalah ‘@’ dan dgn perintah begini sudah pasti tidak akan didapat nilai dari take_char[1]==’1′ karena anda menggunakan if conditional tak berulang so perintah di bawahnya tidak akan pernah terpenuhi.

      • ari
      • December 7th, 2011

      oh itu dari pesan sms yang ane kirim ke modem, kalo modem nrima tuw pesan jadinya ntar modem kirim sms.
      la trus gmana mas coy?

      • oh begitu,,,
        kalo melihat dari tabel punya saya diatas, isi pesan sms terdapat pada karakter ke-67 karena sebelum isi sms tersebut terdapat nomor pengirim sms, waktu penerimaan dsb so untuk membaca karakter awal dari isi sms kita bacanya di take_char[67]. Untuk punya anda silahkan ditrace dulu isi sms terletak pada karakter ke berapa.

        kalo dalam program saya yang diterapkan pada sistem terletak di karakter 70…

        ..................
         printf("at+cmgr=1");
            putchar(13);
            while (ram!='K')
              {      
               ram=getchar();      
               if(x>=70 && x<=78)               //isi pesan terletak di karakter 70-78
                 {
                  karakter[ke] = ram;            //memindahkan karakter pada array
                  ke++;
                 }
               x++;
              }
                    
            if(karakter[5]=='w')                   //baru disini cek apakah karakter ke-6 isi sms adalh 'w'
              {
               if((karakter[5]==gsmtswl[5])&&   //untuk memastikan ulang karakter benar sesuai settingan kita dalam hal ini punyaq adalah karakter w dan l
                  (karakter[6]==gsmtswl[6]))
                  {
        ....................
        
    • ari
    • December 8th, 2011

    nah yg saya bngung, karakter tuw mulai bacanya dari mana mas?
    dari mulai +cmt kah?

    • kalau di program saya tersebut, karakter membaca isi sms nya saja (merujuk pada tabel karakter pembacaan sms di artikel diatas dimana isi pesan terletak pada karakter 67),,,
      kalo boleh tau, karakter pembacaan sms sama dengan punya saya tersebut diatas g,,,??

        • ari
        • December 8th, 2011

        karakter pembacaa yg mas maksud tuw yang “gsmtswl”? kalo itu yang dimaksud beda, saya mau pake “vlmslr” keknya, trus yang saya bngung pada kode yag ini

        +CMGR: “REC READ”,”+6285749722xxx”,””,”10/09/28,16:27:07+28″

        kog awal dan akhir, bisa dapet enter,spasi,enter,spasi dari mana itu mas?
        ama buat buffer di sisi Rx, apakah jumlahnya harus lebih dari jumlah karakter total yang akan dibaca? misal kaya punya mas khn jumlah total karakternya 81 jadi paling g buffernya di atas 81, begitukah? atau malah g pengaruh?

  14. karakter pembacaa yg mas maksud tuw yang “gsmtswl”? kalo itu yang dimaksud beda, saya mau pake “vlmslr” keknya.

    ya bener. isi sms yang sy baca adalah “gsmtswl” yang saya kirim via hp. kalo anda menggunakan “vlmslr” kan tinggal menyesuaikan dikit.

    trus yang saya bngung pada kode yag ini

    +CMGR: “REC READ”,”+6285749722xxx”,””,”10/09/28,16:27:07+28″

    kog awal dan akhir, bisa dapet enter,spasi,enter,spasi dari mana itu mas?

    enter dan spasi itu adalah respon dari modem. memang kalo dilihat sekilas, tidak ada spasi dan enter tapi kalo dicek via program dan ditampilkan ke LCD atau ditampilkan dlam format hex pada hyperterminal maka akan diperoleh nilai ascii dari spasi dan enter.

    ama buat buffer di sisi Rx, apakah jumlahnya harus lebih dari jumlah karakter total yang akan dibaca? misal kaya punya mas khn jumlah total karakternya 81 jadi paling g buffernya di atas 81, begitukah? atau malah g pengaruh?

    memang buffer Rx harus lebih besar dari jumlah karakter yang akan diterima karena kalau lebih kecil ketika buffer telah penuh maka dia akan otomatis menindih pada bit2 buffer yang awal sampai pembacaan rx selesai. yang perlu diperhatikan adalah dalam pembuatan array. usahakan array dibuat sekecil mungkin karena jika berukuran besar akan mengakibatkan memori flash yang digunakan membengkak drastis.

      • ari
      • December 9th, 2011

      mas saya coba pake program buat baca sms di atas
      tapi saya nemuin sedikit kejanggalan
      waktu baca sms tuw kalo mikro di restart tuw karakter pertama yang tampil enter, spasi +cmgr
      tapi kalo program trus dibiarkan jalan, waktu looping di lcdnya karakter pertama tampilannya menjadi enter,spasi,enter,spasi +cmgr
      itu kek gmana jadinya mas? jadi bngung mau ambil karakternya

      • kayaknya terjadi kesalahan dipembacaan buffer data diawal program pada looping pertama…
        bisa lampirkan listing program yang digunakan,,,??

    • ari
    • December 9th, 2011

    setelah saya amati lagi karakter saya mulainya 2x tampilan lcd jadi 32+32 =64, trus pada tampilan ke 3 di situ muncul isi sms “vlm”
    kita ngehitungnya dari 0 apa dari 1 mas?
    trus kodingannya apa sesuai ama yang dibawah ini tinggal ganti karakter ke 65 ?

    coys :
    oh begitu,,,
    kalo melihat dari tabel punya saya diatas, isi pesan sms terdapat pada karakter ke-67 karena sebelum isi sms tersebut terdapat nomor pengirim sms, waktu penerimaan dsb so untuk membaca karakter awal dari isi sms kita bacanya di take_char[67]. Untuk punya anda silahkan ditrace dulu isi sms terletak pada karakter ke berapa.
    kalo dalam program saya yang diterapkan pada sistem terletak di karakter 70…

    ..................
     printf("at+cmgr=1");
        putchar(13);
        while (ram!='K')
          {
           ram=getchar();
           if(x>=70 && x<=78)               //isi pesan terletak di karakter 70-78
             {
              karakter[ke] = ram;            //memindahkan karakter pada array
              ke++;
             }
           x++;
          }
    
        if(karakter[5]=='w')                   //baru disini cek apakah karakter ke-6 isi sms adalh 'w'
          {
           if((karakter[5]==gsmtswl[5])&&   //untuk memastikan ulang karakter benar sesuai settingan kita dalam hal ini punyaq adalah karakter w dan l
              (karakter[6]==gsmtswl[6]))
              {
    ....................
    
    • ari
    • December 9th, 2011

    coys :
    kayaknya terjadi kesalahan dipembacaan buffer data diawal program pada looping pertama…
    bisa lampirkan listing program yang digunakan,,,??

    dah saya kirim ke email mas

    • ari
    • December 10th, 2011

    ari :

    coys :
    kayaknya terjadi kesalahan dipembacaan buffer data diawal program pada looping pertama…
    bisa lampirkan listing program yang digunakan,,,??

    dah saya kirim ke email mas

    trus listing program agan yang ini apa ya fungsinya?kurang paham ane

    printf(“at+cmgr=1\x0D”);
    while (ram_bebas!=’K’)
    {
    ram_bebas=getchar();
    take_char[w]=ram_bebas;
    if(take_char[w]==13) {take_char[w]=94} // kondisi untak apa y? kog 94
    }
    if(take_char[4]!=’O’ && take_char[5]!=’K’) //ini juga maksudnya gmana?
    {
    x=0;
    ke=0;
    ram=0;
    printf(“at+cmgr=1\x0D”) //ditulis 2x, ntar dari UNREAD jadi READ donk
    ……………………….
    }

    • Sory kalo lambat meresponnya,,,
      lagi agak repot…😀

      dah saya kirim ke email mas

      saya rasa programnya sudah benar cuma yang perlu di pastiin adalah
      listing yang ini:

      while (ram!='K')
          {   ram=getchar();
              if(x>=65 && x<=67)
                  {
                    karakter[ke] = ram;
                    ke++;  
                  }
              x++;
          }

      apakah bener isi sms benar2 dimulai dari karakter ke 65…???
      jika memang benar seharusnya sms balasan bisa terkirim…
      untuk membantu man track sebaiknya kasih info berupa display ke LCD ato apa ja bahwa program telah lolos dari setiap step yang kita inginkan

      if(take_char[w]==13) {take_char[w]=94} // kondisi untak apa y? kog 94

      untuk ini bisa di hapus ja,,,
      ni hanya merubah “CR/enter” menjadi karakter “^”
      dalam final programq, ini tidak dipake kok coz g penting bgt

      if(take_char[4]!=’O’ && take_char[5]!=’K’) //ini juga maksudnya gmana?

      ini untuk memastikan bahwa memang bener2 ada sms baru karena jika kita mengirim at+command read sms pada index 1 disaat tidak ada sms maka akan mendapat respon “OK” doang dari modem…

      printf(“at+cmgr=1\x0D”) //ditulis 2x, ntar dari UNREAD jadi READ donk

      yah ini saya lakukan karena perintah at-command “at+cmgr=1” yang pertama kali digunakan untuk mengidentifikasi ada sms baru atau tidak dan “at+cmgr=1” kedua baru digunakan untu membaca karakter sms dan informasi2 lainnya dari sms tersebut. ini bisa ja dilakukan cukup satu kali ja,,,

    • ari
    • January 10th, 2012

    mas, itu at command buat ngirim pesan ke banyak penerima pake yang mana sih?
    cmss,cmgw, atau cmgf kah?
    selain itu apakah no nya terlebih dahulu di simpan di SIM card atau tidak?

    • untuk mengirim sms itu ada dua cara yaitu:
      1. kirim sms secara direct tanpa menyimpan pesan pada memori so setelah sms terkirim, pesan tersebut akan hilang tanpa jejak di modem. at-command yang digunakan adalah at+cmgs

      2. kirim sms dengan menyimpan terlebih dahulu pesannya pada memori setelah itu baru dikirim. at-command yang digunakan da dua yaitu at+cmgw untuk menulis pesan dan menyimpan pada memori dan at+cmss untuk mengirim pesan yang tersimpan pada memori pada index tertentu. fitur ini yang memungkinkan pesan yang sama bisa dikirim secara massal.

      untuk nomor bisa disimpan dulu ato pun tidak,,,

        • ari
        • January 13th, 2012

        pesan yang disimpan kapasitasnya berarti sesuai memory sim card ya mas?
        trus kalo pesan sudah terkirim ke beberapa no , cara hapus pesan yang tersimpan tsb pake command apa mas?

  15. ari :
    pesan yang disimpan kapasitasnya berarti sesuai memory sim card ya mas?

    Kurang lebih begitu tapi sebaiknya setelah pesan terkirim kesemua nomor sebaiknya kita delete ja sms tersebut agar memudahkan kita untuk membaca sms baru dan mengirim sms baru karena jika tidak dihapus maka kita akan agak kesulitan menemukan nomor index memori pesan yang akan dibaca dikirim.

    trus kalo pesan sudah terkirim ke beberapa no , cara hapus pesan yang tersimpan tsb pake command apa mas?

    at+cmgd= nomor index memori misal at+cmgd=1

    • ari
    • January 15th, 2012

    Mas kalo pengin nulis bilangan pecahan biar bisa dikirim gmana ya caranya?
    ada rumus kek gini
    yn=0.005*x-1.726

    ane dah nyoba kek gini
    adc=read_adc(1);
    delay_ms(500);
    yn=(0.005*adc);
    yn=yn-1.716;
    printf(“at+cmgs=%c0878258xxx%c\x0D”,petik,petik);
    printf(“Volume= %c L”,yn);
    putchar(26);

    tapi kog yang terkirim bukan pecahan ya mas? gmana nie?
    trus tipe variabel buat yn tuw apa? interger, float apa char?

    • bisa kok,,
      punya saya pakai bilangan pecahan dengan 2 angka di belakan koma,,
      gunakan tipe data float dan gunakan %3.2f untuk konversi bilangannya dengan 2 angka dibelakang koma…

        • ari
        • January 16th, 2012

        tapi itu khn di configurasinya (s)printf nya diganti float, long, precision khn?
        nah kalo digitui juga bisa mas punya saya , tapi makan memory gede, makanya pengin perhitungan yang manual, tapi masih salah molo nie

  16. ari :

    tapi itu khn di configurasinya (s)printf nya diganti float, long, precision khn?
    nah kalo digitui juga bisa mas punya saya , tapi makan memory gede, makanya pengin perhitungan yang manual, tapi masih salah molo nie

    bener..
    configurasinya diganti float, long, precision karena kalau tidak compilenya hanya dalam bentuk bilangan biasa walaupun kita menggunakan perhitungan dalam bentuk pecahan…
    emang mikro yang digunakan tipe apa,,,???
    solusinya untuk mengurangi memory yang digunakan adalah me-reduce penggunaan array yang besar….

      • ari
      • January 22nd, 2012

      tapi waktu saya ganti type nya jadi float, long, ma precision
      tulisan di printf (“at+cmgr=1”)
      ikut ke kirim, trus jam yang ane bikin pake Timer 1 juga agak ngaco, Tapi kalo wa kembaliin ke tipe normal g masalah
      akhirnya ane pake yang kaya gini
      yn=adc*0.005;
      a=yn/1000;
      b=yn%1000;
      printf (“Volume = %u,%u”,a,b);
      yang jadi masalah desimalnya tuw 4 angka dibelakang koma, bisa g ya mas dijadiin 2 angka dibelakang koma
      atau pake perhitungan buat misahin bilangan ma desimal gt ada g ya? bngung saya
      Oh ya tanya satu lagi, saya khn ada fungsi SMS request (kalo kita ngirim pake format ttt ntar alatnya otomatis balas)
      nah saya buat fungsi bernama send_sms_request() trus saya taruh di program utama, tapi terkadang g bisa merespon sms yang saya kirim kalo jam digital yang saya buat pake Timer 1 sudah berjalan cukup lama, biasanya kalo udah 1 jam lebih. Itu kenapa ya?

      • ma’af atas keterlambatan reply nya….
        seharusnya perubahan setting menjadi float, long, precision tidak akan berpengaruh terhadap kinerja timer dan proses eksekusi program lain jika penggunaanya tepat terhadap variable tertentu (data yang seharusnya terbaca sebagai bilangan pecahan/float)….

        coba gunakan”printf (“Volume = %0.2u,%0.2u”,a,b);” untuk membuat 2 angka dibelakang koma…

        untuk send_sms_request() ngadatnya di bagian mananya,,???
        kalau ingin respon sesegara mungkin ketika ada sms request, bagusnya dibuat dengan sistem interrupt so ketika terdapat sms request, program secara spontan mengeksekusi untuk me-reply sms terlebih dahulu baru melanjutkan program utama. atau dibuat sistem cek sms request secara periodik. kegagalan yang terjadi pada program anda kemungkinan disebabkan “miss timing” yang disebabkan pergeseran waktu secara sedikit demi sedikit shingga ketika program telah berjalan cukup lama, pergeseran waktu tersebut baru terasa yang mengakibatkan timing eksekusi program lainnya yang berkaitan dengan waktu berubah.

    • ari
    • January 27th, 2012

    nah saya bingungnya di situ mas, sebenarnya sistem saya mempunya 3 mode yaitu reguler, notifikasi dan request
    nah tiap mode dari program saya masukin ke interupt (Timer 1) karena sumber pewaktuan dari situ makanya saya selipin, untuk reguler n notif g masalah karena saya atur setiap 1 jam (reguler) ama 1 menit (notif) pembacaan dan pengirimannya.
    Nah untuk mode request sendiri terbilang beda dengan sebelumnya, karena terdapat command at+cmgr=0 –> untuk mengecek ada sms masuk atau tidak
    nah programnya stak disitu kalo kita masukin ke intterupt, karena program akan berjalan kalo fungsi dia atas berhasil dieksekusi,
    Makanya saya taruh model request di program utama sehingga kesannya multi tasking dimana program request tidak akan memengaruhi program reguler dan notif yang saya taruh di interup (Timer 1). Tapi ya itu kendalanya terkadang kalo dah terlalu lama mode requestnya tidak jalan, tapi mode yang lainnya jalan seperti biasanya.

    • kok menggunakan at+cmgr=0 ?
      apakah sms yang masuk tersimpan di memori dengan index 0?
      Dengan program pembacaan sms saja, apakah program pembacaan smsnya telah berhasil dengan baik tanpa ada masalah?
      coba kirimkan listing programnya ke email saya, nanti saya cek !

        • ari
        • January 28th, 2012

        ya mas saya kirim list program saya
        oh iya lupa at+cmgr=1 maksud saya
        ini mode settingan GSMnya saya ubah
        AT+CNMI=2,2 : mode SMS terima langsung tampil teksnya

        jika sms diterima dengan mode diatas, maka ketika sms diterima akan muncul seperti ini di modem :

        Code:
        +CMT :”+628155555555″,”11/10/01,12 :30 :00+00″,
        isi pesan

        apa malah dihilangin aja kali ya mas at+cmgr=1, karena modenya sudah langsung nampilin teksnya?

    • joe
    • May 2nd, 2012

    Salam kenal, mas mhon bantuan nya, ini ada temen saya ada kesulitan, pakai modem ultimo +24 Lite
    Kok di hubungkan ke Laptop via Usb to serial saya test dr hyperterminal kok ga respon ya..kira2 masalah dimana nya ya??
    Kalo converter Usb to serial nya sih OK, udah di test. Cuman modem nya mash ga mau konek..

    • baudrate usb-serialnya sudah disesuaikan dgn baudrate modem g,,,???

    • tyo
    • May 5th, 2012

    mas coy leh tw listing program lengkapnya?
    neh saya coba yg read_sms() koq bny yg eror yah misal neh

    undefined symbol ‘w’

    • program mana yang anda coba tersebut..??

    • ari
    • May 25th, 2012

    wedeh dah lama g buka nie blog, makasih mas coy gara2 bantuan ente, ane dah jadi ST 2 bulan yang lalu. Blog anda sangat bermanfaat di tambah admin yang ramah hehehehehe.

    • alhamdulillah jika blog cupu saya ini bisa bermanfaat buat orang lain. Tapi sayang ni blog g update karena lg ga da waktu tu main2 sama mikro. Jadi kangen dengan pemrograman.

      oy selamat ya atas ST nya. wkekekekekekeke

    • jefry
    • June 23rd, 2012

    mas kq saya konek dari sim300 ke mikro ga bs ya … saya hubungkan rx ,tx dan ground ….tapi saya ada baca rts dan cts harus dihubungkan ….(di shortkan ) br bisa ……apakah karena itu ya …ada juga yang saya baca rts dihubungkan ke modem ga di shortkan ..mana yg benar ya?mohon pencerahannya mas🙂

    • jefry
    • June 23rd, 2012

    ga bisanya itu modem pada waktu dinyalakan cm bisa call ready habis tu ga ada respon apa2 …dr program mungkin udh benar ..port udh pas …baudrate sama

    • mungkin comment dari rekan2 ini bisa membantu.

      chikonews :

      oh da bisa baca balasan modem mas sekarang
      ternyata yang dibutuhin bukan cuma Tx dan Rx tetapi RTS juga perlu, soalnya RTS itu sinyal dari modul GSM buat bales At command
      tererengkyu mas

      bree :

      Saya mau tanya,itu apakah berarti pin Tx, Rx, dan RTSnya pada RS232 dishort/digabung dg kabel ?

      chikonews :

      Tidak, Hubungin aja sec. cross kabel Rx dg Tx (antara miko dg modem) setelah itu hubungin RTS dg RTS (mikro dg modem). Tidak ada yang d short. Dikarenakan pada modem GSM (sim300C) yg saya gunakan, sinyal RTS digunakan untuk tanda pertukaran data . Tapi dalam kasus lain (modem selain sim300c) kebanyakan tanpa pin RTS dan komunikasi bisa dilakukan makanya di short.

      kayaknya memang ada sedikit perbedaan pada sisi modem, ada yang perlu menggunakan RTS tp ada pula yng tidak. Untuk punya saya 2 modem sim300C tidak membutuhkan RTS semua so makanya saya tidak ulas hal ini dalam artikel karena saya tidak mengalami hal tersebut.

    • jefry
    • June 23rd, 2012

    hmm atmega32 kan ga ada pin rts mas jadi gmana ?maksudnya itu dari mikro ke max 232 dihubungkan rx ,tx dan ground secara cross ya ..terus dari max 232 baru hubungkan rx dan tx scra cros juga lalu ground ama rts dihubungkan jg begitu k mas ?

    • bree
    • June 23rd, 2012

    Kebetulan saya menggunakan ATmega32, nah pin RTS dan CTS pada SIM300C terhubung ke pin ATmega32 yang mana ya ?
    Mohon bantuannya..

    • jefry
    • June 24th, 2012

    mas saya mao tanya ……saya pakai sim300 lalu mikrokontroler nya pertama kali saya menggunakan atmega32 ……. saya hubungkan ke modem (rx dan tx di cross kan ,lalu ground mikro ke modem ) sx cb ga ada rspon sama sx (saya menggunakan hyperteminal untuk melihat )..tapi setelah saya ganti dengan mikrokontroler atmega16 langsung ada respon dari modem tapi tulisan yg muncul di hyperterminal seperti seakan2 seperti baudrate antara hyperterminal dan mikro laen(muncul tulisan ntah apa) …….mas kalau data yg diterima seperti pada gambar selain masalah baudrate …masalah apa lagi ya..mohon pencerahannya ..baudrate yg saya pakai 115200 pada mikro ,,hyperterminal jg sama …….untuk program sudah saya simulasikan dengan proteus dan bisa …..mas tao mengapa saya pakai atmega32 ga ada respon tetapi sx pakai atmega16 malah ada respon ..padahl sama2 atmega yg memliki fitur yg hampir sama …?dan 1 lagi apakah panjang kabel ada masalah(kabel untuk menghubungkan rx ,tx dan ground antara mikro dan modem )….mohon pencerahan mas?:) maaf kepanjangan ..hehehe

    • waduh maaf nih lama ngeresponnya.
      Sekilas dari datasheet memang memiliki fitur yang sama namun berbeda dalam memori.
      saya belum bisa memastikan bagaimana ini bisa terjadi karena saya belum pernah menggunakan atmega32.
      kayaknya ada perbedaan dalam pemogramannya yaitu dalam pengaksesan register2nya. mungkin anda bisa cek sendiri dengan menggunakan widzard codevision avr mengenai pengaktifan fitur2 apakah register2 yang digunakan sama antara atmega16 dengan atmega32.

    • barat
    • July 22nd, 2012

    Salam kenal mas. Saya mau tanya mas, saya lagi pakai sim300 dengan mikro atmega8535. sebelumnya saya coba simulasikan program pengiriman sms persis dengan listing program yang mas tuliskan diatas, hasilnya error massage di: “printf(“at+cmgf=1\x0D”);”. kira-kira masalahnya dimana mas ya,terimakasih.

    • Bisa dijelasin lebih detail errornya bagaimana dan bagaimana anda tahu kalo errornya di bagian “printf(“at+cmgf=1\x0D”);” ??

    • ardiansyah
    • July 28th, 2012

    mas, sismin AT mega 8535 clock 4 Mhz untuk serial 232 nya itu tidak support dengan modem wavecom serial db 15 ya?
    ini sudah saya coba kok masih tidak bisa ya. Mohon penjelasannya

    • baudrate yang digunakan berapa?
      soalnya komunikasi serial sangat erat hubungannya dengan nilai clock yang digunakan?

    • anggi
    • September 19th, 2012

    mas saya mau tanya untuk pengembangan alat skripsi saya nih mas. alat saya mnggunakan atmega8535 dan modem serial wavecom. alat yg kemarin saya buat itu sudah bisa mengirim pesan k no yg sdah d program,nah yg saya blm bsa gmn program untuk si minsis bisa membaca pesan dari kita,?makasi

    • maaf baru respon.
      contoh program untuk send dan read sms bisa didowload di artikel diatas.
      saya telah menambahkan link untuk download contoh programnya pada artikel tersebut.
      semoga bermanfaat🙂

    • arif
    • October 4th, 2012

    mas,,kalo pake modem gsm biasa kaya huawai atau zte bisa ngga y mas dihubungkan langsung dengan mikrokontroler??soalnya at command lewat komputer udah bisa,,lg pngn nyoba modemnya dikendalikan pake mikrokontroler,,tp masalahnya belum bisa2..
    kalo modem dicolok ke komputer kan ada 3 com port,,lha gimana mikrokontroler bisa mengetahui com yg dipake modem itu ya?!

    • sy belum pernah nyoba tp pada dasarnya bisa asal kita tahu protocol komunikasi data via usb.

      Boleh tau interfacing (software) yang digunakan untuk mengirim at command via komputer??

    • crez
    • November 3rd, 2012

    Mas,klo buat cek pulsa (pke AT+CUSD) trus ditampilin sisa pulsa’a di lcd menggunakan mikro atmega32 gmn y..?
    Thx..

    • wah,,,
      ane belum pernah pakai at-command yang itu…
      punya saya untuk mengecek sisa pulsa menggunakan at-command dial-up misal untuk card telkomsel atd*888#;. at-command tersebut baru baca data yang dikirim oleh provider sama seperti halnya ketika baca sms.

  17. mas untuk contoh source code pake avr studio 4 seperti apa ya?
    thank’s mas..

    • wah saya belum pernah pake avr studio mas….so ma’af g bisa kasih gambaran.

    • Iqbal
    • April 13th, 2013

    gan kalo fungsi “x0D” buat apa ya?

    • “x0D” itu mengacu pada code ascii “CR” (carriage return) untuk eksekusi at-command oleh modem. Kalau di keyboard “CR” adalah tombol “ENTER”

    • alex
    • August 29th, 2013

    gan Neo GSM Starter Kit pernah pakek?
    kalo buat angkat lepon masuk gmana ya?padahan henset’nya udah aku pasang tp tombol aku pencet kok gak nyambung2

  18. mas, klo pake modem wavecom sama gk programnya?

  19. mas boleh minta list program full nya?
    terima kasih

  20. If some one wants expert view on the topic of blogging
    and site-building after that i propose him/her to pay a
    quick visit this web site, Keep up the pleasant work.

    • oding
    • September 23rd, 2015

    halo mas saya lg oprek” sim gsm sim900 untuk pengiriman sms dan menerima serta membaca sms yg di terima itu bisa dengan skrip yg di atas serta saya sudah baca yg di komen? saya sudah coba tp gk jalan”

    • G jalannya seperti apa?
      tolong dibandingkan dahulu at-command sim300 sama tidak dengan at-command sim900

        • oding
        • September 27th, 2015

        yg saya baca dr data sheetny sama mas cuman beda di frekuensinya aja
        saya coba buat ngirim sms dr mikro mas, gk jalan di step
        while (getchar()!=’O’);
        while (getchar()!=’K’);
        saya tau benar di situ karena stiap step saya kasi indikasi berupa led
        kalo saya coba dg PC bisa tp terkadang jg eror

      • untuk memastikan bahwa itu problem pada program, pastikan terlebih dahulu trial via PC lancar tanpa error dan respon AT-Commandnya sesuai dengan datasheetnya yaitu ada ending “OK” diakhir respon

    • oding
    • October 9th, 2015

    sudah saya coba mas, kalo di pc bisa lancar sms dan dialing
    tp waktu komunikasi serial dg mikro blm bisa jalan masih mnunggu balesan OK dari modulnya

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: