Cara Menggunakan Ethernet Module ENC28J60 – Arduino

ENC28J60 adalah sebuah modul elektronik yang bekerja sebagai ethernet controller. Modul ini terdiri dari chip ENC28J60 itu sendiri, konektor RJ45 female dan beberapa rangkaian komponen resistor, kapasitor dan induktor. Sebagai sebuah modul, ENC28J60 ini dapat berfungsi sebagai gateway Arduino (dan mikrokontroller lain) ke jaringan TCP/IP yakni bisa berupa LAN (Local Area Network), WAN (Wide Area Network) maupun MAN (Metropolitan Area Network). Atau lebih singkatnya dapat kita sebut jaringan intranet dan internet.  Sebagai sebuah gateway jaringan, tentunya ENC28J60 ini juga dapat disetting IP-nya, subnet mask-nya, IP gateway-nya dan DNS-nya. Karena harganya yang sangat ekonomis dibanding dengan ethernet modul yang tipenya shield (ethernet shield), modul ENC28J60 ini banyak digunakan di project-project arduino

[AdSense-B]

perbedaan ethernet module dan ethernet shield

ENC28J60 dan SPI

Agar sebuah ENC28J60 dapat bekerja dengan Arduino tentunya kita harus mengkoneksikannya dengan properly. Modul ENC28J60 ini melakukan interfacing menggunakan protokol SPI (Serial Peripheral Interface), jadi bagi siapa saja yang mau berhubungan dengan modul ini tentunya harus support protokol komunikasi tersebut. Kalau kita kita lihat dalam keluarga Arduino yang berbasis mikrokontroller ATMEGA ternyata sudah support protokol tersebut sehingga dapat langsung kita hubungkan ke pin-pin terkait. Seperti yang kita ketahui, pin-pin yang digunakan untuk berkomunikasi SPI adalah MISO (Master In Slave Out), MOSI (Master Out Slave In), SCK (Serial Clock) dan SS (Slave Select). Pin MISO/MOSI digunakan untuk bertukar data, SCK digunakan untuk clock sinkronisasi sedangkan pin SS dipakai untuk memilih slave yang akan ‘diajak’ berkomunikasi (pin SS ini akan sangat berguna jika slave SPI Anda lebih dari satu).

Adapun pin SPI di keluarga Arduino berbeda-beda. Sebagai gambaran di Arduino Uno, SPI berada di pin 10-13, sedangkan di Arduino Mega, SPI berada pin 51-53. Untuk tipe papan Arduino lain selengkapnya dapat dibaca di tabel di bawah

Tipe Arduino MOSI MISO SCK SS (slave) SS (master)
Uno, Nano,Pro Mini 11 or ICSP-4 12 or ICSP-1 13 or ICSP-3 10
Mega 51 or ICSP-4 50 or ICSP-1 52 or ICSP-3 53
Leonardo ICSP-4 ICSP-1 ICSP-3
Due ICSP-4 ICSP-1 ICSP-3 4, 10, 52
Zero ICSP-4 ICSP-1 ICSP-3
101 11 or ICSP-4 12 or ICSP-1 13 or ICSP-3 10 10
MKR1000 8 10 9

Alat dan Bahan

  1. Arduino Uno, Rp 84.000 bisa dibeli di sini  atau ini yang lebih murah
  2. Modul ethernet ENC28J60, harga 40 ribuan  bisa di beli di sini atau di sini
  3. Kabel jumper male-female secukupnya Rp 400/pc, bisa dibeli di sini

[AdSense-B]

Koneksi ENC28J60 dengan Arduino

Setelah mengetahui pinout SPI Arduino, berikutnya kita coba hubungkan dengan jumper kabel ke modul ENCJ60. Yang perlu Anda perhatikan bahwa di pasaran ada beberapa model ENC28J60. Ada yang powernya 5V ada juga yang 3,3V. Jadi lebih baik diteliti dulu, modul ethernet yang Anda beli tipe yang, jangan sampai sembarangan colok power terus rusak deh (pengalaman soalnya, he he he). Baiklah, kurang lebih begini koneksi antara modul ethernet ENC28J60 dengan Arduino. Walaupun berbeda-beda model, koneksinya ya itu-itu jua 🙂 , jadi jangan bingung ya …..

koneksi arduino uno - ethernet module ENC28J60

Sketch ENC28J60 dengan Arduino

Setelah koneksi/wiring kabel sudah dihubungkan, marilah kita coba isi program di Arduino kita agar dapat menghubungi modul ENC28J60 sekaligus bergabung dengan jaringan TCP/IP. Untuk mudahnya, saya sarankan Anda mendownload library UIPEthernet.h. Library ini semua function-nya sangat mirip dengan library Ethernet.h yang merupakan bawaan Arduino.

Note : Library Ethernet.h hanya support ethernet modul yang berwujud shield

Jadi semua program yang ditulis menggunakan library Ethernet.h dapat langsung digunakan jika library-nya langsung diganti UIPEthernet.h. Enak, kan? 🙂 . Istilah kerennya, library UIPEthernet.h ini memiliki compatibility dan interoperability yang bagus dengan native Arduino library. Baiklah, silahkan download library tersebut di sini, instal library-nya (jika belum tahu cara instal library bisa baca artikel ini), kemudian langsung buka program example bawaan IDE Arduino di menu File-Example-Ethernet-WebServer. Ubah dulu library Ethernet.h menjadi UIPEthernet.h, kemudian upload sketch tersebut ke Arduino, tunggu beberapa saat dan lihatlah hasilnya di web browser Anda. Kalau bingung, silahkan lihat sketch di bawah sebagai hasil modifikasi program example di atas

#include <SPI.h>
#include <UIPEthernet.h>

byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 169, 177);

EthernetServer server(80);

void setup() {
Serial.begin(9600);
while (!Serial) {
; 
}

Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}


void loop() {
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); 
client.println("Refresh: 5"); 
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");

for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("analog input ");
client.print(analogChannel);
client.print(" is ");
client.print(sensorReading);
client.println("<br />");
}
client.println("</html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
} else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
Serial.println("client disconnected");
}
}

Ohya, hubungkan ethernet modul ENC28J60 ke laptop Anda menggunakan kabel UTP (RJ45) ya…. Jangan lupa setting IP laptop Anda satu kelas dengan IP ENC28J60. Untuk case di atas, kurang lebih ilustrasi koneksi kabel UTP dan settingan IP-nya seperti gambar di bawah

koneksi laptop dengan ethernet modul enc28j60

Untuk mengecek koneksi, Anda dapat menge-ping ethernet module sesuai alokasi IP-nya, sebagai berikut

ping ethernet module ENC28J60

Jika semuanya sudah oke (sketch, koneksi kabel, dll), maka Anda akan dapat langsung melihat hasilnya di web browser Anda sebagai berikut

hasil web browser di enc28j60

Demikian sedikit tutorial tentang Cara Menggunakan Ethernet Module ENC28J60 dengan Arduino, semoga dapat menggugah ide-ide baru Anda yang berhubungan dengan arduino dan networking. Selamat mencoba

 

5 2 votes
Article Rating

Leave a Reply

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
radita

Pak materi ini kalau analog nya di ganti digital code nya jadi gimana ya? misal di kasih button jika ditekan di layar menampilkan tulisan nyala, jika tidak ditekan menampilkan tulisan mati. terimakasih

Danica

Cara melihat MAC address pada ENC28J60 bagaimana?

3
0
Would love your thoughts, please comment.x
()
x