Printfriendly

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
وَعَلَيْكُمْ السَّلاَمُ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

35komentar :

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

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

    ReplyDelete
    Replies
    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

      Delete
  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?

    ReplyDelete
  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?

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

    ReplyDelete
    Replies
    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

      Delete
  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 :)

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

    ReplyDelete
    Replies
    1. interney atau ethernet gan?

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

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

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

    ReplyDelete
  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 ?

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

      Delete
  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

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

    baru sambungin ke vb .net

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

    ReplyDelete
  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?

    ReplyDelete
  15. Gan carabya buat program komunikasi dengan ethernet gimana

    ReplyDelete
  16. Gan kalo ditambah module transmitter kok gak bisa jalan ya gan, mohon pencerahanya

    ReplyDelete
  17. Mas, buat mengontrol kecerahan 2 buah LED dengan make 2 trackbar/slider, kira-kira caranya gimana ya Mas?

    ReplyDelete
    Replies
    1. di slidernya kasih event change value, jadi saat value slidernya berubah,langsung kirim data misal format *slider1,valueslider1# , barudeh diparsing sama arduinonya

      Delete
  18. Pak, jika ingin send(kirim) hex data 1 byte di code vb, dimana saya menempatkannya ? karena textbox akan saya ganti dengan receive(terima) hex data 1 byte. ty

    ReplyDelete
  19. unused local variable pada Dim my_Port As Array, bisa tolong dibantu...

    ReplyDelete
  20. SerialPort1 tidak di declarasi?
    gimna carany bisa digunakan? mohon pencerhannya

    ReplyDelete
  21. Pak gimana cara menghubungkan timbangan digital dengan menggunakan toolbox serial port dan label pada vb.net 2010,, terimakasih

    ReplyDelete
    Replies
    1. hubungin pc ke timbangan dulu via r232, lalu download hyperterminal disini http://www.der-hammer.info/pages/terminal.html buat cek data yg diterima kayak gmna , tiap timbangan beda2 framenya

      Delete
  22. Assalamualaikum kak mau tanya
    Saya sudah hubungkan arduino ke visual studio saya membuat apliksai menghitung dimensi panjang lebar tinggi box lalu saya save ke database. Pertanyaannya tampilan kan juga ada editnya lah saat saya mau edit pada text box inputan pertama ko gabisa diedit ya bang, padahal text box yang kedua dan seterusnya bisa, kayak gabisa diedit disable gitu

    ReplyDelete
  23. om mau nampilin data dari timbangan dengan koneksi ip address gimana ya om

    ReplyDelete
  24. terimakasih gan untuk ilmunya, ijin mendownload yang di gdrive gan

    ReplyDelete

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