Advertise here

Selasa, 12 Maret 2019


Introducing
Teknologi pengendalian yang terus berkembang dimana perangkat MCU tidak hanya berdiri sendiri melainkan saling berinteraksi dengan perangkat lainnya membentuk komunikasi jarak jauh yang memanfaatkan teknologi jaringan komputer sebagai media penghubung. 

Tak heran jika jaringan komputer dapat dimanfaatkan untuk sistem kendali peralatan yang berada jauh dari tempat pengendaliannya dengan memanfaatkan ethernet card sebagai sarana komunikasi antar perangkat. Pada kesempatan ini saya akan memberikan tutorial interface ethernet card ENC28J60 yang dapat memberikan komunikasi antara Komputer dengan MCU melalui jaringan komputer secara lokal (LAN). 

Perangkat MCU akan dijadikan sebagai web server dan mengirimkan data data ke komputer klien dengan bantuan web browser.
 
Prinsip kerja dari proyek ini adalah masing-masing perangkat baik di sisi server (MCU) dan sisi klien (Komputer) harus memiliki protokol yang sama berbasiskan TCP/IP, dan dari protokol TCP/IP ini agar kedua perangkat atau lebih dapat saling terhubung dan membentuk komunikasi harus memiliki alamat ip address dengan segmen jaringan yang sama. 

Misalnya pada proyek ini alamat ip server (MCU) di setting pada IP kelas C yaitu 192.168.95.6 dan pada sisi komputer klien di setting alamat IP kelas C 192.168.95.1

Bill Of Material
Bahan yang diperlukan untuk membuat interface ENC28J60 dengan MCU STM32F103C Series adalah sebagai berikut:

    Board STM32F103C Blue Pill
    Board ENC28J60 12Pin
    Bread Board 400 dot point
    Dan beberapa kabel Jumper Female to Male, dan Male to Male
    Liblary EtherCard_STM.h yang dapat di unduh pada link berikut


Circuit Wiring
Gambar rangkaian pada proyek ini terlihat seperti dibawah ini, dan untuk diagram koneksi masing-masing pin board blue pill dan enc28J60 dapat dilihat pada tabel



ENC28J60 PIN
BLUE PILL PIN
5V
5V
GND
G
SCK
A5
SO
A6
SI
A7
CS
A8


Program
Buka jendela arduino IDE dan kopikan program dibawah ini ke workspace kemudian kopi folder  liblary EtherCard_STM  yang sudah anda download kedalam directory C:\Users\PC_Home\Documents\Arduino\libraries. Lakukan verify pada program arduino IDE, jika tidak ada kesalahan maka anda dapat melakukan upload, tapi perlu diingat anda harus merubah posisi jumper boot0 dalam mode pemograman, sebelum melakukan upload.

#include <EtherCard_STM.h>
#include <SPI.h>

// ethernet interface mac address, must be unique on the LAN
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
static byte myip[] = { 192,168,95,6 };

byte Ethernet::buffer[500];
BufferFiller bfill;

void setup () {
  Serial.begin(57600);
  delay(10);
  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
    Serial.println(F("Failed to access Ethernet controller"));
  ether.staticSetup(myip);
 
  //if (!ether.dhcpSetup())
  //  Serial.println("DHCP failed");
 
  ether.printIp("IP:  ", ether.myip);
  ether.printIp("GW:  ", ether.gwip); 
  ether.printIp("DNS: ", ether.dnsip); 
}

static word homePage() {
  long t = millis() / 1000;
  word h = t / 3600;
  byte m = (t / 60) % 60;
  byte s = t % 60;
  bfill = ether.tcpOffset();
  bfill.emit_p(PSTR(
    "HTTP/1.0 200 OK\r\n"
    "Content-Type: text/html\r\n"
    "Pragma: no-cache\r\n"
    "\r\n"
    "<meta http-equiv='refresh' content='1'/>"
    "<title>RBBB server</title>"
    "<h1>$D$D:$D$D:$D$D</h1>"),
      h/10, h%10, m/10, m%10, s/10, s%10);
  return bfill.position();
}

void loop () {
  
  if (ether.packetLoop(ether.packetReceive())){   // check if valid tcp data is received
    ether.httpServerReply(homePage()); // send web page data
   
  }
}

Jika menginginkan untuk mengubah alamat IP yang sesuai dengan alamat ip pada jaringan anda, maka cukup mengganti alamat ip pada baris program berikut
static byte myip[] = { 192,168,95,6 };

menjadi alamat ip yang ingin diganti, misalnya 192.168.10.1
static byte myip[] = { 192,168,10,1 };

Test & Result
Gambar Foto Rangkaian


Setelah dilakukan upload kembalikan posisi jumper boot0 pada mode operation kemudian tekan reset, hubungkan kabel jaringan anda ke board ENJ28J60 dan ke komputer, 

Selanjutnya setting alamat ip komputer pada menu Control Panel à Network And Sharing Center à Change Adapter Setting à Double Click Ikon Lokal Area Connection à Internet Protcol Version 4 dan isikan alamat ip dengan 192.168.95.1 dan subnetmask 255.255.255.0 tekan ok. 

Buka command prompt yang dijalankan sebagai administrator kemudian lakukan uji coba koneksi jaringan, apakah kedua perangkat telah terhubung dengan baik? ketikan ping 192.168.95.6 pada jendela command prompt seperti yang terlihat pada gambar. 

Jika ping berhasil maka pada jendela command prompt akan tertulis “Reply from 192.168.95.6: bytes=32 time=2ms TTL=64” tetapi jika tertulis “Request Time Out”, atau “Host Unreacheable” ini dapat disebabkan oleh banyak faktor yang perlu dilakukan pmeriksaan satu persatu.


Setelah uji koneksi berhasil, buka browser pada komputer anda, misalnya Chrome atau firefox dan ketikan pada kolom address alamat ip server mcu dengan alamat 192.168.95.6 kemudian akan menampilkan durasi waktu sistem yang berjalan seperti pada gambar berikut.



Gambar Tampilan web browser setelah sistem berjalan pada 07:50 detik


Semoga bermanfaat 

Comments 0

Advetise banner