Menampilkan data ke PC melalui serial port menggunakan Borland Delphi

Posted on Updated on

untuk pemrosesan data dengan tingkat yang lebih rumit, sering kali menggunakan PC atau personal komputer untuk menampilkan data sehingga data yang diambil bisa dibuat grafik atau mungkin disimpan dalam database sebagai record untuk monitoring system misalkan monitoring system suhu berbasis web dan sebagainya. salah satu bahasa pemrograman yang bisa digunakan adalah borland delphi. dalam project ini saya menggunakan borland delphi 6.0 sebagai pemrogramannya.

komponen serial yang saya gunakan adalah TMSComm yang diimpor dari Visual Basic melalui activeX. Port serial yang digunakan adalah Com 1 dengan baudrate 9600 tapi ini nantinya bisa dirubah sesuai dengan kebutuhan. project ini akan membaca data dari masukan adc mikrokontroler ATMega8535 kemudian akan ditampilkan dalam bentuk display angka dan grafik tegangan terhadap waktu. berikut adalah screenshoot programnya :


Gambar 1. screenshoot program borland delphi

Pada postingan yang berjudul “Komunikasi serial AVR” bisa langsung dihubungkan dengan aplikasi ini. Komponen serial port di delphi juga cukup banyak. Biasanya yang paling sering digunakan adalah komponen MSComm dan CPort. tetapi itu terserah kita sebagi programmernya. Aplikasi ini bisa bukan hanya untuk monitoring data, tetapi pada dasarnya bisa dikembangkan juga untuk sistem kontrol.
ini adalah sourcecode lengkap dari project ini :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, MSCommLib_TLB, TeEngine, Series, ExtCtrls,
  TeeProcs, Chart;

type
  TForm1 = class(TForm)
    MSComm1: TMSComm;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Chart1: TChart;
    Series1: TLineSeries;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  mulai: boolean;
  x, data: real;

implementation

{$R *.dfm}

//procedure untuk membuat delay dalam milisecond
procedure delay(interval:integer);
var awal:longint;
begin
   awal:=gettickcount;
   repeat
   application.ProcessMessages
   until (gettickcount-awal) >= longint(interval);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if mscomm1.PortOpen then
mscomm1.PortOpen := false;
//silakan ganti sesuai port yg digunakan
mscomm1.CommPort := 1;
//silakan ganti baudrate sesuai dgn baudrate mikrokontroler
mscomm1.Settings := '9600,n,8,1';
mscomm1.InputLen := 4;
mscomm1.PortOpen := true;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
mulai := true;
x := 0;
delay(500);
while mulai = true do  // looping selama mulai bernilai true
begin
//Rutin Utama
x := x+1;
data := mscomm1.Input;
label1.Caption := floattostr(data);
series1.AddXY(x,data);

if x = 100 then
begin
series1.Clear;
x := 0;
end;

delay(200);

end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
mulai := false;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if mscomm1.PortOpen = true then
begin
mscomm1.PortOpen := false;
end;
close;
end;

end.

Link untuk download Full Sourcecode :

Advertisements

22 thoughts on “Menampilkan data ke PC melalui serial port menggunakan Borland Delphi

    gombez said:
    June 26, 2009 at 6:42 am

    nek serial indrong onok opo ora?

    ADIHOLIX responded:
    June 26, 2009 at 9:38 am

    onok..indrongmu kunciten…

    widakdop said:
    June 26, 2009 at 5:36 pm

    nek nampilkan data langsung di save ke txt/excel/ms access gmana master ?

    ADIHOLIX responded:
    June 27, 2009 at 6:36 am

    wah kalo itu masih belajar mas widakdop…ntar kalo sempet tak tanyakan ke mas heru,MoW..tunggu aja..

    prita said:
    July 16, 2009 at 2:15 pm

    bkn na tu cuma nampilkan data aj y dgn grafik?brarti sma ma monitoring dr grafik aj kn master…..
    trus kontrol nya dmn?klo ad data error yg g d inginkn tp g d tmpilkan piye carane master…….

      ADIHOLIX responded:
      July 18, 2009 at 2:35 pm

      ya kontrolnya buat sendiri….disini saya cuma kasih contoh aja untuk interfacenya…master??? wah aku bisa di install donk…

    pengembara said:
    September 2, 2009 at 11:12 am

    gawean mu apik mister….

      ADIHOLIX responded:
      September 3, 2009 at 2:03 pm

      wah,mas pengembara bisa aja klo memuji…nggak kok mas,ini cuma sekedar sharing aja..sapa tau bisa berguna buat yg baca…hehehe…trims udah mampir lagi..

    dotkitelectronic said:
    September 9, 2009 at 10:24 pm

    tolong buatkan project untuk menggerakkan relay melalui component button ok (mikro pake AT89S51 dan aplikasi form pake DELPHI 7)trims…

    3ddy_y4h0v said:
    September 21, 2009 at 9:11 am

    wah wah wah… mantap buanget ya… salam kenal para master disini, saya pemula banget ini, gak ngerti masalah komputer.. mohon bimbingannya, bagus banget site ini, tapi kok komennya kayaknya ada yang gak sesuai topik ya kayak komen dari mas Gombez di atas, ya mbok ya o.. kalo komen itu.. apa namanya??? yang mendukung isi site gitu lho mas..

      ADIHOLIX responded:
      October 8, 2009 at 1:40 pm

      hehe..iso ae mas bokri iki…ngono yo ngono tapi yo ojo ngono mas…hihihihi…

    dotkitelectronic said:
    September 28, 2009 at 9:30 am

    gimana mas? bisa nggak?….

    dotkitelectronic said:
    September 28, 2009 at 9:38 am

    gimana..? ga bisa program di mikrokontrolnya ya?..

    dotkitelectronic said:
    September 28, 2009 at 9:54 am

    aplikasinya pake komponen button ok delphi 7 , MK pake 89S51,RS 485,bikinin contoh pemrograman untuk button ok delphi 7 dan pemrograman untuk MK AT89S51,jadinya klo button di klik relay aktif trus klo di klik lagi relay pasif,gitu lho….maksudku…,,bisa kan..?

    CJDW said:
    November 25, 2009 at 4:46 am

    mas aku nyoba pake software nya tapi error, trus waktu compile file delphi nya ada keterangan gini mas:
    Field Form1.MSComm1 does not have a corresponding component. Remove the declaration?
    ..atau.
    [Fatal Error] Project2.dpr(5): File not found: ‘MSCommLib_TLB.dcu’

    Yo opo mas, maklum masih newbie masalah delphi.
    he..he..
    THanks

      ADIHOLIX responded:
      November 28, 2009 at 2:17 pm

      file *.dcu ne komponen lebokno nang folder C:\Program Files\Borland\Delphi6\Lib

    CJDW said:
    November 28, 2009 at 10:09 pm

    yo mas wngi tak utak-atik kenek akhire
    suwun.

      fatoni said:
      May 10, 2012 at 2:26 pm

      boleh minta tolong nggak, aq punya alat bisa komunikasi dengan komputer lewat serial com, aq coba pake hyper terminal alat tersebut bisa mengirim data setelah saya tekan # 0 1 ENTER, kira2 klo bikin program pake delphi gmn ya caranya

    hendro said:
    September 20, 2011 at 10:34 am

    maaf mas, salam kenal nama saya hendro jatmiko dari universitas lampung
    saya sedang skripsi, mau nanya mas bagaimana impor TMSComm dari visual basic, mohon bantuannya

    hendro said:
    September 20, 2011 at 11:54 am

    kalau muncul pesan
    could not convert variant of type (olestr) in type (double)
    piye yo mas

    asroful said:
    March 4, 2012 at 11:53 am

    saya sudah coba, kog pas di klik ‘mulai’ muncul dialog peringatan “invalid variant type conversion”, kira2 apa yang salah.? mohon pencerahannya?

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