Mengecek Signal Strength (Kuat Sinyal) Operator dengan AT Command dan Delphi

Mengecek signal strength operator menggunakan modem atau handphone dapat dilakukan secara terprogram menggunakan Delphi melalui at command. Untuk mengecek sinyal Anda dapat menggunakan perintah at command ‘AT+CSQ’, dengan keterangan sebagai berikut :

Perintah : AT+CSQ

Deskripsi : mengecek signal strength (rssi) dan BER (Bit Error Rate)

Respons: +CSQ : <rssi>,<ber>, dengan parameter <rssi> menunjukkan signal strength dan <ber> menunjukkan bit error rate modem/phone relative terhadap BTS terdekat.

Tes command : AT+CSQ? (untuk mengecek apakah command at+csq didukung oleh modem/handphone

Parameter <rssi> memiliki range nilai sebagai berikut :

0                      : 113 dBm atau kurang

1                       : 111 dBm

2-30              : 109 dBm to -53 dBm

31 -51            : dBm atau lebih besar

99                   : tidak diketahui atau tidak mendapat sinyal

Sedangkan nilai <ber> memiliki range nilai sebagai berikut :

0-7                    : nilai RXQUAL

99                     : tidak diketahui atau tidak mendapat sinyal

Seperti yang Anda lihat pada respon modem di atas, bahwa nilai <rssi> akan bernilai 0 – 99 sedangkan satuan daya (power) standar yang digunakan untuk mengukur kekuatan sinyal adalah dBm. Untuk mengubah nilai yang yang merupakan respon modem ketika mendapat perintah AT+CSQ (0-99), maka dapat digunakan rumus sebagai berikut :

dBm = -113 + (<rssi> x 2)

dengan <rssi> adalah nilai rssi yang merupakan ‘jawaban’ modem setelah diberi perintah AT+CSQ.

Berikut ini adalah source code Delphi untuk membuat program cek signal-strength. Sebelumnya siapkan modem (USB modem 3G) dan SDK Delphi tentunya. Buka program Delphi, buat project baru dengan nama terserah Anda. Ambil komponen TButton (3 bh), TMemo (1 bh), TLabel (3 bh), TEdit (2 bh) dan TComPort (1 bh) dari Component Pallete. TComPort merupakan komponen yang dapat melakukan komunikasi data melalui port serial (COM port) komputer/laptop. Anda dapat mengunduh komponen ini di sourceforge.net jika Anda belum memilikinya. Atur peletakan komponen-komponen di atas seperti pada gambar di bawah.

 

Atur properti tiap komponen seperti pada tabel di bawah

Komponen

Properti

Nilai

Button1 Caption open
Button2 Caption setting
Button3 Caption cek signal
Label1 Caption rssi
Label2 Caption Signal strength
Label3 Caption dBm

 Double click tombol yang bertuliskan ‘open’ dan isikan source code di bawah

procedure TForm1.Button1Click(Sender: TObject);
begin
 comport1.Open;
 comport1.WriteStr('ate1'+#13);
end;

Double click tombol yang bertuliskan ‘setting’ dan isikan source code di bawah

procedure TForm1.Button2Click(Sender: TObject);
begin
 comport1.ShowSetupDialog;
end;

Double click tombol ‘cek signal’ dan isikan script di bawah

procedure TForm1.Button3Click(Sender: TObject);
begin
 memo1.Clear;
 comport1.WriteStr('at+csq'+#13);
end;

Dan terakhir, double click komponen TMemo dan isikan source code di bawah

procedure TForm1.Memo1Change(Sender: TObject);
var a,b:integer;
    rssi:string;
begin
if pos ('OK',memo1.Text)<>0 then
begin
  a:=pos ('+CSQ:',memo1.Text);
 if a<>0 then
 begin
  b:= pos (',',memo1.Text);
  rssi:=copy (memo1.Text,a+6,b-a-6);
  edit1.Text:=rssi;
  edit2.Text:=inttostr(-113+(strtoint(rssi)*2));
 end;
end;
end;

Ohya, jangan lupa menambahkan event handler untuk menangani interupsi dari port serial. Dari Object Inspector, pilih komponen comport1, pilih tab ‘Events’ kemudian double click pada event OnRxChar untuk mengisikan source code sbb:

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
memo1.clear;
ComPort1.ReadStr(Str, Count);
Memo1.Text := Memo1.Text + Str;
end;

Jalankan program di atas dengan menekan tombol F9 dan lihat hasilnya seperti gambar di bawah

 

Untuk mengecek signal, sebelumnya pilih COM port modem (setiap modem selalu menciptakan port serial/port COM virtual) melalui tombol ‘setting’ dan tekan tombol ‘open’ untuk melakukan koneksi ke modem. Sebagai catatan, COM port modem dapat Anda lihat di Control Panel | Device Manager. Kemudian untuk mulai mengecek signal, Anda dapat mengklik tombol ‘cek signal’ dan lihatlah hasilnya di kotak Edit1 dan Edit2

NB : artikel ini untuk menjawab pertanyaan salah satu pembeli buku saya (Membuat SMS Gateway dengan Delphi 7) yang menanyakan tentang prosedur pengecekan sinyal sebelum melakukan proses pengiriman SMS.

0 0 votes
Article Rating

Leave a Reply

35 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
alfen

kok error pak ada tulisan port not open ,itu gimana ya ??

indra

itu coding-nya gak kurang ta pak? inputan ke memo1 belum ada, tapi sudah ada procedure memochange, kalau dirunning tidak jalan pak

indra

mau nanya ni pak, klau misal mau menggabungkan indikator signal (bisa naik turun kayak di HP), IMEI, Merk Modem, Nomor HP dalam satu form. supaya terlihat interaktif caranya gimana ya pak? mohon pencerahannya..
terimakasih

adika

terimakasih buat tutor y pak,,
sangat membantu sekali,,,

O y,,, klw membuat bandwith meter utk koneksi internet bagaimna y pak

thanks b4
🙂

adika

klw utk script y sendiri apa ada contoh y pak?

kang ivan

mau nanya om kalo signal Full nya di berapa rssi ?

Didin

Kalo kekuatan sinyalnya ditampilkan dalam bentuk bar chart, gimana perhitungannya? kekuatan terendah dan tertingginya berapa?

TUKANG DOWNLOAD

mas yg 0 itu dBm nya apa rssi nya ?
klo dari parameter rssi yg diatas, 0 (rssi) = 113 dBM (minus apa ga mas itu ?)
setau saya angka dBm < -53 dBm (lebih kecil dari minus 53 dBm) itu signalnya sudah fullbar
dari parameter diatas seharusnya rssi 31 s/d rssi 51 itu fullbar signalnya… mohon koreksi jika salah….

nubie

om untuk tampilan qos gimana coding nya ya?? maap mengganggu 😀

adel

mas, lo untuk vb6 bisa bantu ?

Ade Wijaya

Salam kenal mas, saya mau nanya gimana caranya kita bisa membaca sms dan mengirim sms dari pc melalui hp android?

tommy

Saya sudah coba, tp event Rxchar tidak pernah dipanggil. Ini kenapa ya?

tommy

Thank yau pak buat fast Respon nya. Seharusnya komunikasi laptop dengan modem sudah ada komunikasi pak,. Karena saya tes kirim sms tidak masalah. Tetapi dia tetap tidak manggil event Rxchar nya.

tommy

di event onRxChar nya sudah diisi dengan cara saya double click dan saya isi sesuai dengan contoh diatas

tommy

Settingan saya :

Port COM15
Baud Rate 115200
Data bits 8
Stop bits 1
Parity None
Flow Control None

Untuk SyncMethod nya smThreadSync
Event -> evRxChar True
TriggersOnRxchar True

Apa yang salah ya? Tetap tidak mau panggil event RxChar

tommy

Comport library 4.11

tommy

Sudah pak, justru itu kalau di trace tidak masuk ke sana atau tidak dijalankan.

jb

variabel RSSI tidak dikenali solusinya gmana?

Herdin

Rumus itu referensinya dari mana mas ? Kalo saya lihat jika rssi 0 maka konversinya bukan -113 tp -115 liat datasheet atcommand gsm shield. Terima kasih

35
0
Would love your thoughts, please comment.x
()
x