MEMBUAT GUI ARDUINO MENGGUNAKAN C# VISUAL STUDIO 2010

Selamat malam gan. Kali ini ane akan share bagaimana cara Membuat GUI Arduino Menggunakan C# Visual Studio 2010... Ok langsung aja ane akan bahas cara menjalankan GUI yang telah ane buat dan dilanjutkan membahas sekilas tentang programnya. Cekidot...

Pertama-tama kita harus membuat dulu program mengirimkan serial menggunakan Arduino, pada contoh dibawah ini ane buat program mengirimkan 3 buah data random dari 0 - 10 yang dimisalkan sebagai data dari sensor dengan pengiriman data secara pararel.
Mengirimkan 3 data serial menggunakan Arduino
Selanjutnya buat GUI menggunakan C# Form Application Visual Studio 2010, kurang lebih tampilannya seperti gambar dibawah ini. Selanjutnya, isikan COM-PORT dan BAUDRATE sesuai dengan Arduino, Lalu tekan tombol STAR CONNECTION, maka data yang dikirim oleh Arduino akan ditampilan pada Rich Text Box dan Grafik.
Tampilan GUI ketika dijalankan
Tekan STOP CONNECTION untuk menghentikan program, maka penerimaan data dari Arduino akan berhenti. Pada GUI ini juga terdapat menu untuk menyimpan data yang diterima dalam form .TXT, caranya tekan tombol SAVE DATA (pastikan sebelumnya edit program untuk tempat penyimpanan file, ini juga berlaku untuk penyimpanan gambar nantinya)
Menyimpan data serial dalam form .TXT
Untuk menyimpan gambar Grafik yang dihasilkan dengan menekan tombol SAVE CHART. maka gambar akan tersimpan. Gambar yang dihasilkan menggunakan format .PNG
Menyimpan Grafik dengan format .PNG
Hasil penyimpanan data serial dan gambar grafik
Gimana seru kan, ok kali ini ane akan ulas sedikit tentang program dari GUI C# Microsoft Visual Studio 2010, Cekidottt...

Program untuk Koneksi Serial dan Menampilkannya pada Rich Text Box dan Grafik:
private void button1_Click(object sender, EventArgs e) //Start Conection
        {
                myport = new SerialPort();
                myport.BaudRate = Convert.ToInt32(comboBox2.Text);
                myport.PortName = Convert.ToString(comboBox1.Text);
                myport.DataReceived += terima;
            try
            {
                myport.Open();
            }
            catch (Exception)
            {
                richTextBox2.Text = "Koneksi Arduino Gagal !";
            }
            button1.Enabled = false;
            button2.Enabled = false;
            button3.Enabled = true;
            button4.Enabled = false;
        }

        void terima(object sender, SerialDataReceivedEventArgs e)
        {
            data = myport.ReadLine();
            this.Invoke(new EventHandler(display));
            j++;
        }

        private void display(object sender, EventArgs e) //Program untuk menampilkan
        {
            data1 = data.Substring(0, 1); //Parsing tiga buah data
            data2 = data.Substring(2, 1);
            data3 = data.Substring(4, 1);
            kalender = DateTime.Now;
            string time = kalender.Hour + ":" + kalender.Minute + ":" + kalender.Second;
            progressBar1.Value = Convert.ToInt32((Convert.ToInt32(data1) + Convert.ToInt32(data2) + Convert.ToInt32(data3))/3);
            richTextBox1.AppendText(time + "\t\t" + data + "\n");
            richTextBox2.Text = "Koneksi Arduino Sukses !";
            this.chart1.Series["Data1"].Points.AddXY(j, Convert.ToInt32(data1));
            this.chart1.Series["Data2"].Points.AddXY(j, Convert.ToInt32(data2));
            this.chart1.Series["Data3"].Points.AddXY(j, Convert.ToInt32(data3));
        }

Program untuk Stop Koneksi:
private void button3_Click(object sender, EventArgs e) //Stop Connection
        {
            myport.Close(); //Memutuskan komunikasi serial
            richTextBox2.Text = "Koneksi Arduino Terputus !";
        }

Program Menyimpan Data Serial:
private void button2_Click(object sender, EventArgs e) //Save Data
        {
            simpan = @"E:\MOVE ON\PROJECT C#\ProjectCoba12\File Saved\"; //Alamat penyimpanan
            string nama_file = "data.txt";
            System.IO.File.WriteAllText(simpan + nama_file, richTextBox1.Text);
            MessageBox.Show("Data telah tersimpan di " + simpan + nama_file);
        }

Program Menyimpan Gambar Grafik:
private void button4_Click(object sender, EventArgs e) //Save Chart
        {
            simpan = @"E:\MOVE ON\PROJECT C#\ProjectCoba12\File Saved\"; //Alamat penyimpanan
            string nama_gambar = "data.png";
            this.chart1.SaveImage(simpan + nama_gambar, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png);
            MessageBox.Show("Gambar telah tersimpan di " + simpan + nama_gambar);
        }

Gimana tertarik untuk membuatnya... Ok Ok Ok ane akan share juga file mentahan yang terdiri dari program Arduino dan Visual Studio 2010... Yup2 selamat belajar ya... Semoga bermanfaat...

DOWNLOAD PROGRAM LENGKAP

Related Posts:

21 Responses to "MEMBUAT GUI ARDUINO MENGGUNAKAN C# VISUAL STUDIO 2010"

  1. Asalamualaikum,
    Bos, kog gak bisa di download program lengkapnya bos...?

    ReplyDelete
    Replies
    1. Bisa kok gan... Klik kata2 "DOWNLOAD" nya... Hehehe

      Delete
    2. Ohh iya mas, makasih ya mas.

      Delete
  2. Gan bisa gk arduino ini untuk mematikan/menghidupkan daya beberapa monitor lewat PC menggunakan bahasa c#..kalo bisa kira2 bahan2 yg dibutuhkan apa saja..tolong gan dibantu ya..thx :)

    ReplyDelete
  3. Gan bisa gk arduino ini untuk mematikan/menghidupkan daya beberapa monitor lewat PC menggunakan bahasa c#..kalo bisa kira2 bahan2 yg dibutuhkan apa saja..tolong gan dibantu ya..thx :)

    ReplyDelete
  4. Emm bisa sih, pake arduino lalu otputannya di gabungin dengan relay 5 volt, untuk switch. untuk GUI C# nya itu prinsip komunikasi serial, bisa pake kabel atau bisa pake bluetooth untuk komunikasinya.

    ReplyDelete
  5. Gan ini pake buka projectnya VS berapa? 2010 apa 2008?

    ReplyDelete
    Replies
    1. ok gan, trus yg d koding arduino kan nilai random, jika nilai sensor yang masuk apanya yaa perlu dirubah? saya terkendala disana. Terimakasih

      Delete
    2. langsung nilai randomnya diubah dari sensor gan... jadi nilai dari sensor dikirim menggunakan serial pake code Serial.print / Serial.write...

      Delete
  6. gan ad akode lengkap nggak? saya nyoba kok untuk readline di c# nggak sampe full yak sampe akhir? kadang dari awal sampe tengah, kadang tengah sampe akhir gitu

    ReplyDelete
    Replies
    1. sudah saya share di post bagian bawah gan

      Delete
  7. Bang .. kalau mau buat chart scale samper minus gmna ya ?

    ReplyDelete
    Replies
    1. Aku belum pernah nyoba... tapi kayaknya sama eh... tinggal nyeting di bagian substringnya soalnya data -9 di.baca 2 karakter... maka untuk data positifnya usahakn 2 karakter juga contoh o9, 1o dsb... intinya usahakan data yang anda sajikan panjang karakternya tetep sama... agar substring parsingnya tetep...

      Delete
  8. Gan kalo random number nya sampe 100 yang diubah di c# nya yang mana ya gan?

    ReplyDelete
    Replies
    1. yang di ubah di bagian data.substring(index awal karakter, panjang karakter)

      Delete
  9. Gan kalau yg untuk bahasa visual basicnya ada gak ?

    ReplyDelete