Komunikasi Serial di C#

Komunikasi serial merupakan salah satu cara untuk melakukan koneksi antara beberapa peralatan dalam lingkungan yang berbeda selama masih peralatan tersebut saling terhubung pada serial port. biasanya komunikasi serial digunakan untuk melakukan pengontrolan ataupun memantau keadaan sebuah alat.

Agar melakukan komunikasi serial menjadi lebih menarik dan mudah untuk dioperasikan oleh orang lain, maka diperlukan IDE (Integrated Development Environment) sebagai software yang nantinya dapat digunakan untuk melakukan pemantauan ataupun pengontrolan peralatan yang terhubung pada serial port. salah satu IDE yang dimaksud adalah C# untuk membuat komunikasi serial secara sederhana, dapat dilakukan dengan cara berikut.

  1. Buka aplikasi visual studio ultimate, kemudian buat lah projek baru (File -> New-> Project)ImageGanti pilih Windows Forms Application dan ganti nama aplikasi sesuai dengan yang diinginkan seperti yang lingkari.
  2. Setelah projek baru selesai dibuat, maka akan muncul form untuk memulai membuat aplikasi. Seperti pada gambar berikut.Image
  3. Selanjutkan ambil tools yang ingin digunakan pada bagian toolbox nya, untuk membuat sebuah aplikasi komunikasi baca dan kirim data dapat dilakukan dengan cara berikut ini. Pilih button, kemudian ganti namanya jasi Start, pilih 2 combobox untuk memilih commport dan baudrate dan richtextbox untuk melihat data yang masuk serta serialport, jika telah dilakukan maka akan terlihat pada gambar berikut ini.Image
  4. Klik dua kali pada tombol start untuk memasukkan listing programnya. Setelah diklik dua kali masukkan program berikut ini.
    
    private void button1_Click(object sender, EventArgs e)
            {
                if (!serialPort1.IsOpen)
                    try
                    {
                        serialPort1.PortName = Convert.ToString(comboBox1.SelectedItem);
                        serialPort1.BaudRate = Convert.ToInt32(comboBox2.SelectedItem);
                        serialPort1.Open();
                        button1.Text = "Stop";
                        richTextBox1.ReadOnly = false;
                    }
                    catch
                    {
                        MessageBox.Show("Erorr, Pastikan serial port yang digunakan benar dan telah terhubung!!!");
                    }
                else
                {
                    serialPort1.Close();
                    button1.Text = "Start";
    
                }
            }
  5. Kemudian pada properties seriapPort1 pilih even yang berbentuk seperti tanda petir seperti pada gambar dalam kotak berikut ini. Imagesetelah gambar petir tersebut dipilih, maka akan muncul option, pilih DataReceive dan klik dua kali jika telah diklik, maka masukkan script berikut ini.
    string RXstring;
            private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                 RXstring = serialPort1.ReadExisting();
                this.Invoke(new EventHandler(tampil_kata));
            }
  6. jangan lupa untuk membuat fungsi tampil_kata() seperti pada script berikut.
    private void tampil_kata(object sender, EventArgs e)
            {
                richTextBox1.AppendText(RXstring);
            }
  7. untuk richtextbox, berikan perlakuan yang sama seperti pada serialport. pilih even keypress, kemudian klik dua kali dan masukkan script berikut ini.
    private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (!serialPort1.IsOpen) return;
                char[] buff = new char[1];
                buff[0] = e.KeyChar;
               // serialPort1.Write(buff,0,1);//mengirim data ke serial
                serialPort1.Read(buff,0,1);//membaca data yang dikirim dari serial
                e.Handled = true;
            }
  8. bagian richtexbox ini, terdapat sintax untuk mengirim dan menerima data dari atau ke serial port.
  9. hal terahir yang harus dilakukan untuk memastikan bahwa portserial telah di tutup setelah aplikasi sesesai dijalankan. untuk melakukan ini, diperlukan sebuah even dari form yang telah dibuat tadi, sama hal nya dengan mencari even pada serialport dan richtextbox. setelah even dipilih, maka cari FormClosing bukan Form Closed, setelah itu klik dua kali pada even FormClosing dan masukkan script berikut.
    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (serialPort1.IsOpen) serialPort1.Close();
            }

langkah untuk membangun sebuah komunikasi serial sederhana di C# telah selesai, sehingga hasil nya akan seperti berikut. saat apikasi tidak memilih comport, maka akan keluar message box seperti gambar ini.Image

jika kita telah memilih comport dan baudrate, maka aplikasi akan dapat melakukan komunikasi secara serial, selama aplikasi terhubung dengan serial port pada perangkat yang lain. untuk memudahkan percobaan, dapat dilakukan dengan menggunakan virtual serial, sehingga port serial dapat tersedia di komputer kita. hasil dari aplikasi ini adalah sebagai berikut

  1. membaca data yang dikirim oleh serial port di COM2Image
  2. Mengirim data ke serial port COM2Image

pada saat pengiriman data, pada aplikasi tidak terlihat data apa yang dikirim, ini karena even keypress, jadi data yang diambil sesuai dengan data yang diketikan di keybord. Demikian lah Komunikasi Serial di C# sederhana semoga bermanfaat dan selamat mencoba….. ^_^

************** Riska Analia**************

 

Advertisements

3 thoughts on “Komunikasi Serial di C#

  1. Terima kasiihhh… bagus banget… koding berjalan baik…. Oya, tolond ditambahkan collection pada combobox-nya.. biar pembaca yang awam tidak kebingungan.. makasih

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