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));
}
{
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 !";
}
{
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);
}
{
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
{
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);
}
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
29 Comments
Asalamualaikum,
ReplyDeleteBos, kog gak bisa di download program lengkapnya bos...?
Bisa kok gan... Klik kata2 "DOWNLOAD" nya... Hehehe
DeleteOhh iya mas, makasih ya mas.
Deletenal bantu teman2 Isbat nya
ReplyDeleteBantu gimana pak...
DeleteGan 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 :)
ReplyDeleteGan 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 :)
ReplyDeleteEmm 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.
ReplyDeletesend code ,ttmnproject@gmail.com
DeleteGan ini pake buka projectnya VS berapa? 2010 apa 2008?
ReplyDelete2010 gan
Deleteok gan, trus yg d koding arduino kan nilai random, jika nilai sensor yang masuk apanya yaa perlu dirubah? saya terkendala disana. Terimakasih
Deletelangsung nilai randomnya diubah dari sensor gan... jadi nilai dari sensor dikirim menggunakan serial pake code Serial.print / Serial.write...
Deletegan 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
ReplyDeletesudah saya share di post bagian bawah gan
Deletedibagian kata2 download
DeleteBang .. kalau mau buat chart scale samper minus gmna ya ?
ReplyDeleteAku 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...
DeleteGan kalo random number nya sampe 100 yang diubah di c# nya yang mana ya gan?
ReplyDeleteyang di ubah di bagian data.substring(index awal karakter, panjang karakter)
DeleteGan kalau yg untuk bahasa visual basicnya ada gak ?
ReplyDeleteGan kalo komunikasi arduino pake ethernet gimana ya caranya ?
ReplyDeletemaksudnya antara arduino dengan C#.
Deletegan ini untuk visual basic ada ga ?
ReplyDeleteterimakasih
kalau untuk menekan button nantik nampilkan ke lcd tampilan isis gimana ya?
ReplyDeletebismillahirrahmanirrahim, untuk input bilangan desimal gimana ya?
ReplyDelete'Input string was not in a correct format'
Untuk yang lagi galau, yang lagi bosan tidak tahu mau ngapain,
ReplyDeletetenang,,sekarang ada yang akan menghibur kalian sekaligus
mengisi hari-hari kalian dengan games" online yang pastinya tidak akan
mengecewakan kalian deh...
yuk ikutan gabung bersama Pesonavip.com
Dapatkan Bonus Rollingan TO Sebesar 0,3 - 0.5% / Hari
Bonus Referral Sebesar 20% Seumur Hidup
* Minimal deposit hanya Rp 20.000
* Minimal tarik dana Rp 20.000
* Dilayani oleh CS profesional dan ramah
* 24 jam online
* Proses Depo & WD super cepat
* No ROBOT MURNI PLAYER VS PLAYER
* kamu berkesempatan menangkan Jackpot setiap harinya.
Info lebih lanjut silahkan hubungi CS 24 Online Setiap hari melalui :
* PIN BBM : pesonaqq
* WA : +85587984700
Link Alternatif : Pesonavip.com
Salam Sukses Pesonaqq.com
[URL=https://www.effectiv3.info/]Tanam Backlink[/URL]
ReplyDeletehttps://www.effectiv3.info/
ReplyDelete