Interfacing : VB NET send data to Arduino via Serial


السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Tutorial kita kali ini adalah tentang how to interfacing Visual Basic 2010 and arduino via Serial Communication,tetapi data yg kita kirim dari VB ke arduino berbentuk char/ASCII yang kemudian diolah melainkan disimpan dulu ke dalam String kemudian diolah. Dengan memanfaatkan library Serial.readString() atau Serial.readUntil program pada arduino bisa dibuat sesimple mungkin dan seefisien mungkin.

 Cara kerjanya yaitu data yang dikirim dari VB ke arduino disimpan dulu kedalam String ret,jika sudah beberapa ms tidak ada data yg dikirim maka data disimpan ke variable String message


String a;
void setup() {
           Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}

void loop() {
     if(Serial.available()) {
            a= Serial.readString();// read the incoming data as string
            Serial.println(a);
     }
}

atau bisa menggunakan ini,data akan disimpan di string baca sampai bertemu karakter \n (newline)

String baca;
void setup() {
           Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}

void loop() {
     if(Serial.available()) {
            char a=Serial.read();

            if(a='\n'){
                Serial.println(baca);
                baca = ""; //clear buffer
            }
            else{
                baca += a;
            }
     }
}

Serial.println() pada arduino berfungsi untuk mengirim data ke PC disertai dengan karakter \r (carriage return) dan \n (line feed)

Saat menghubungkan  arduino ke PC,maka akan mendapatkan port COM,port COM inilah yang akan digunakan untuk komunikasi antara Visual basic dan Arduino

Berikut langkah-langkahnya
1.  Buat program di VB 2010 seperti ini


Berikut Code VBnya

Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Public Class Form1
    Dim myPort As Array  'COM Port yang terdeteksi pada sistem akan disimpan disini

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Text = "Ismail Lowkey"
        'Cek semua com port yang memungkinkan
        myPort = IO.Ports.SerialPort.GetPortNames()
        'Nilai Baud Rate yang bisa digunakan
        ComboBox2.Items.Add(9600)
        ComboBox2.Items.Add(19200)
        ComboBox2.Items.Add(38400)
        ComboBox2.Items.Add(57600)
        ComboBox2.Items.Add(115200)
        For i = 0 To UBound(myPort)
            ComboBox1.Items.Add(myPort(i))
        Next
        'Atur Com Port pada Port yang pertama terdeteksi
        ComboBox1.Text = ComboBox1.Items(0)
        'Atur Baud Rate pada Baud yang pertama terdeteksi
        ComboBox2.Text = ComboBox2.Items(0)
        Button2.Enabled = False
        Button3.Enabled = False
    End Sub

    'tombol connect
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SerialPort1.PortName = ComboBox1.Text
        SerialPort1.BaudRate = ComboBox2.Text
        SerialPort1.Open()
        Button1.Enabled = False
        Button2.Enabled = True
        Button3.Enabled = True
    End Sub


    'tombol disconnect
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        SerialPort1.Close()
        Button1.Enabled = True
        Button2.Enabled = False
        Button3.Enabled = False
    End Sub

    'tombol send
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        SerialPort1.Write(TextBox1.Text)
    End Sub

  
End Class

2. Berikut code arduinonya
void setup(){
  Serial.begin(9600);
  Serial.setTimeout(50);
  pinMode(13,OUTPUT);
}

String message;

void loop(){
  while(Serial.available()){
    message=Serial.readString();
  }

  if(message=="ab"){
    digitalWrite(13,1); }
  else if(message=="cd"){
    digitalWrite(13,0); }
}

3. Hubungkan Pin 13 arduino ke LED
4. Ketik "ab" pada kotak,led 13 akan menyala,kemudian ketik "cd" pada kotak,led 13 akan mati


Good Luck
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

20komentar :

  1. saya ingin membuat absensi dengan rfid dan vb untuk menampilkan data siswa serta gambarnya, bisa minta sarannya master!

    BalasHapus
    Balasan
    1. email aja gan,ke ismaillowkey@gmail.com

      Hapus
    2. email aja gan,ke ismaillowkey@gmail.com

      Hapus
  2. Gan sya mw coba buat alat informasi detak jantung berbasis mikrokontroler arduino masuk databasenya melalui VB, bisa minta sarannya Master??

    BalasHapus
    Balasan
    1. untuk module yg detak­ jantung ane blom pun­yaz coba bikin dulu a­rduino+heartbeat samp­e jadi, nnti ane bant­uin untuk koneksi den­gan VBnya

      Hapus
  3. Gan gimana kalo misalnya ane mau kirim datanya otomatis, dalam kata lain amr buat susunan data nya perbaris di notepad, terus ane mau upload datanya perbaris ke arduino nya, jd gak perlu ngetik2 terus di textbox nya, atau textbox nya ane ganti listbox? gimana ya cara bikin nya gan?

    BalasHapus
  4. Gan gimana kalo misalnya ane mau kirim datanya otomatis, dalam kata lain amr buat susunan data nya perbaris di notepad, terus ane mau upload datanya perbaris ke arduino nya, jd gak perlu ngetik2 terus di textbox nya, atau textbox nya ane ganti listbox? gimana ya cara bikin nya gan?

    BalasHapus
  5. Gan saya mau bikin timbangan bayi monitoring lewat vb gmana gan?

    BalasHapus
    Balasan
    1. pake arduino? bbrapa load cell ada port serialnya jadi bisa colok ke komputer. kalo mau pake arduino buat dulu programnya, baru setelah itu urusan komunikasi ke vbnya

      Hapus
  6. Mas, saya mau buat sistem pembatasan dalam pembelian. Nah untuk melakukan penghitungan di arduinonya, sebelumnya saya perlu mengirimkan data rtc dan rfid ke vb, kemudian data rfidnya di cocokan dengan data rfid pada database.

    Selanjutnya ada beberapa data jenis barang dari database dikirimkan ke arduino melalui vb. Bagaimana ya cara mencocokkan data dari arduino dengan database dan mengirimkan data yang sudah tersimpan tersebut ke arduino?

    Terima kasih sebelumnya :)

    BalasHapus
  7. Gan saya mau menampilkan data dari arduino ke vb via internet,,gmn caranya y?

    BalasHapus
    Balasan
    1. interney atau ethernet gan?

      kalo mau via internet bisa pake mqtt,servernya punya orang lain yg tersedia free

      Hapus
  8. Ethernet gan..rencana mau menampilkan data dari arduino+ethernet shield+vb tp msh bingung di vb nya gan..

    BalasHapus
  9. Ethernet gan..rencana mau menampilkan data dari arduino+ethernet shield+vb tp msh bingung di vb nya gan..

    BalasHapus
  10. Bang.. saya buat robot PID line follower, trus saya mau kirim nilai Error sama PIDnya ke Desktop App. kira2 datanya bisa disimpan ke database ngak bang ?

    BalasHapus
    Balasan
    1. pake cara ini gan http://www.ismaillowkey.net/2017/07/interfacing-receive-one-or-more-data.html?m=1

      Hapus
  11. Mas saya rencana mau ambil TA tentang aplikasi Sistem Parkir Berbasis RFID, tapi saya masih bingung cara pembuatan aplikasi nya dan cara mengoneksikan antara aplikasi dengan RFID nya, tolong bantu ya mas

    BalasHapus
  12. buat dulu flowchartnya, arduino ke rfid module kan buat baca, bikin dulu biar rfid bisa baca kartu

    baru sambungin ke vb .net

    BalasHapus
  13. maaf mas .. klo bikin sofaware serial vb.net..buat seting rtc arduino gmana mas? mksih

    BalasHapus
  14. maaf mas saya mau nampilin data sensor RGB divb dengan kata lain mempunyai 3 data (nilai R,G dan B) yang akan ditampilkan pada masing2 textbox. jadi bagaimana program di vb nya?

    BalasHapus

Jika artikel ini bermanfaat bisa dishare gan, tapi ingat selalu cantumkan sumber jika ingin copas artikel ini