RSS

Komunikasi Arduino Dengan PC Memakai TCP/IP

28 Nov

Arduino Ethernet memiliki chip ethernet W5100 dari wiznet yang bisa dipakai untuk komunikasi lewat ethernet. Bisa juga arduino sheild ethernet yang juga memiliki chip W5100.

Arduino ethernet bisa kita gunakan untuk komunikasi dengan PC memakai TCP/IP. Cukup modifikasi contoh sketch Ethernet yaitu “Chat Server”. Arduino ethernet menjadi server TCP/IP dan PC menjadi client TCP/IP. Protocol komunikasi bisa kita bikin sendiri.

Contoh program arduino:

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network.
// gateway and subnet are optional:
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //mac address
IPAddress ip(192,168,1, 3);  // IP address
IPAddress gateway(192,168,1, 1); //IP gateway
IPAddress subnet(255, 255, 255, 0); //IP Subnet

EthernetServer server(7119); //port server
EthernetClient client;   //variable untuk client object

void setup()
{

// initialize the ethernet device
   Ethernet.begin(mac, ip, gateway, subnet);
   // start listening for clients
   server.begin();

//inisialisasi yang lainnya di sini
}

void loop()
{

client = server.available();   //periksa apakah ada

//object client yang terhubung

if (client.available() > 0)  //apakah client mengirim data
    {

//check data yang dikirim oleh client misalnya: a = client.read();

//lalu respon jika diperlukan misalnya: client.print(a);

}

}

Pastikan pada program utama tidak ada bagian program yang menunggu tanpa timeout, karena pemeriksaan ada koneksi dari client dilakukan dengan looping di program utama. Jika ada bagian di program utama yang menunggu terlalu lama, maka koneksi dari client kemungkinan akan gagal. Usahakan respon kepada client secepat-cepatnya.

Pada PC bisa memakai Visual Studio Express yang gratis. Contohnya:

Dim IP As String

Dim data = New [Byte](2) {}

        Try
            If Not (client Is Nothing) Then
                client.Close()
            End If

            client = New TcpClient(IP, 7119)  ‘clent connect
            client.ReceiveTimeout = 1000
            data(0) = AscW(“U”) 
            Dim stream As NetworkStream = client.GetStream()
            attempt = 0
            Do
                stream.Write(data, 0, 1) ‘send U
                Dim bytes As Int32 = 0
                data(0) = 0
                bytes = stream.Read(data, 0, data.Length)
                attempt = attempt + 1
                If attempt = 200 Then Exit Do
            Loop While data(0) <> AscW(“U”)
            If data(0) = AscW(“U”) Then
                connected = True
            Else
                MsgBox(“Tidak ada respondari Arduino!”)
            End If
        Catch ex As Exception
            MsgBox(“Terjadi kesalahan saat menghubungi Arduino!”)
        End Try

Contoh-contoh di atas hanya bagian dari program yang sudah diujikan. Hanya diambil sebagian untuk menjelaskan prinsip kerjanya.

Iklan
 
Tinggalkan komentar

Ditulis oleh pada 28 November 2013 in Arduino, Uncategorized

 

Tag: ,

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: