52. Komunikasi Menggunakan Modul Ethernet ENC28J60
52. Komunikasi Menggunakan Modul Ethernet ENC28J60

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 pasif. Sebagai sebuah modul, ENC28J60 ini dapat berfungsi sebagai gateway mikrokontroller ke jaringan TCP/IP yakni bisa berupa LAN, WAN dan MAN.

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.

Fitur ENC28J60

  1. Modul LAN Ethernet untuk Arduino/AVR/LPC/STM32
  2. Chip Ethernet ENC28J60
  3. Dapat dengan mudah dipasang dengan MCU
  4. Antarmuka Jaringan: HR911105A
  5. Tegangan Supply: 3,3 V (DIO Toleran 5V)
  6. Osilator kristal 25Mhz
  7. Ukuran (P x L x T): Kira-kira. 2,3 x 1,3 x 0,7 inci / 58 x 34 x 17 mm

Modul ENC28J60 ini menggunakan protokol SPI (Serial Peripheral Interface). 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).

Berikut ini adalah diagram blok sederhana yang menjelaskan bagaimana modul Arduino/mikrokontroler lain & ENC28J60 dapat dihubungkan dengan Router dan Komputer.

Router harus terhubung dengan LAN dan harus memiliki beberapa port input-output. Dari router, satu kabel ethernet terhubung ke Sistem Komputer dan kabel ethernet lainnya harus terhubung ke Modul ENC28J60. Demikian pula, Modul ENC28J60 terhubung ke Arduino/Mikrokontroler lain. 

Setting IP Laptop/Komputer

Hubungkan ethernet modul ENC28J60 ke laptop menggunakan kabel UTP (RJ45) Cross dan setting IP laptop Anda satu kelas dengan IP ENC28J60.

Contoh: Setting Ping IP

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

Jika semuanya sudah benar (sketch, koneksi kabel, dll), maka dapat langsung dilihat hasilnya di web browser Anda sebagai berikut:

Percobaan 67: Akses Komunikasi Menggunakan Modul Ethernet ENC28J60

.

  1. Hubungkan SI dengan pin D51 ATMEGA 2560
  2. Hubungkan SO dengan pin D50 ATMEGA 2560
  3. Hubungkan SCK dengan pin D52 ATMEGA 2560
  4. Hubungkan CS dengan pin D53 ATMEGA 2560
  5. Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
  6. Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file ETHERNET_LAN
  7. Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
  8. Upload program ke arduino dengan cara, pilih File > Upload to I/O board, atau tekan tombol tanda panah pada jendela IDE arduino.

Code:

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

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

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 < 2; 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");
}
}

Hasil:

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *