STM32F103C Interface ENC28J60 Board with EtherCard_STM.h
/ 09:30
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.
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
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.
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
EmoticonEmoticon