ShieldEthernet ENC28J60

Từ ChipFC Wiki
Phiên bản vào lúc 14:11, ngày 5 tháng 10 năm 2014 của Thophi (Thảo luận | đóng góp) (Sử dụng)
Bước tới: chuyển hướng, tìm kiếm

Editor.png

Bài viết này đang được phát triển hoặc chỉnh sửa lớn.
Bạn có thể đóng góp để bài viết hoàn thiện hơn.
Sau khi chỉnh sửa xong thông báo này sẽ được gỡ bỏ.

Giới thiệu

  • Shield Ethernet ENC28J60 là một board mạch mở rộng cho Arduino, tương thích hoàn toàn với Arduino và cả ChipPRO, ChipUNO của ChipFC. Shield này được sử dụng với Arduino để có thể lập trình truy cập qua mạng, giao tiếp mạng nội bộ hoặc mạng Internet, để từ đó có thể khám phá kho tàng dữ liệu vô tận từ hệ thống mạng máy tính đang vô cùng phát triển.
  • Ethernet Shield cung cấp cho board Arduino tất cả những thứ cần thiết để bạn có thể kết nối Ethernet, giao tiếp đơn giản, có hỗ trợ khe cắm thẻ nhớ micro sd để lưu trữ dữ liệu.

EthernetShieldTop.jpg

Đặc điểm

  • Điện thế hoạt động: 5v (cung cấp bởi Arduino Board)
  • Sử dụng chip Ethernet: ENC28J60, Tốc độ Ethernet: 10Mb/s
  • Sử dụng Ethernet Jack RJ45 chuẩn, có đèn báo tín hiệu truyền nhận
  • Hoàn toàn tương thích Arduino,Kết nối với Arduino qua SPI
  • Hỗ trợ khe cắm thẻ nhớ microSD.

Mô tả các chân kết nối

Kết nối tới Arduino

EthernetShieldSodo.png EthernetShieldSodoNguyenLy.png


Các chân kết nối
Thứ tự chân Tên gọi Loại Mô tả
1 SCK Input chân clock của SPI
2 MISO Output chân master in - slave out của SPI
3 MOSI Input chân master out - slave in của SPI
4 NET_CS Input chân select cho ethernet
5 SD_CS Input chân select cho sdcard
6 NET_INT Output chân interrupt cho ethernet
  • Các shield của chipfc được thiết kế hoàn toàn tương thích với Arduino, ChipiUno, ChipiPro ...

Sử dụng như một module độc lập

  • Không dùng Arduino? Hãy dùng hàng rào mở rộng khi bạn sử dụng Shield này như một module riêng lẻ kết nối với các loại board khác
Hàng rào mở rộng
Thứ tự chân Tên gọi Loại Mô tả
1 CLK Output
2 INT Output
3 WOL Output
4 SO Output
5 SI Output
6 SCK Output
7 CS Output
8 Reset Output
9 5V Power
10 GND Power

Sử dụng

Sử dụng ethernet với Arduino

  • Cắm shield Ethernet vào Arduino

ShieldethernetArduino.jpg

  • Cắm dây mạng đã kết nối ethernet shield Ethernet

ShieldethernetArduinoCap.jpg

  • Kết nối dây nạp cho Arduino

ShieldethernetArduinoNap.jpg

Giải nén file zip etherShield_v1.1_for_Arduino_v1.0 được 2 thư mục etherShield và ETHER28J60

Giải nén file zip Ethernet28J60Full được thư mục cùng tên

  • Sau đây là một số chương trình mẫu sử dụng Arduino với Shield Ethernet:


Chương trình 1: Làm Server mạng LAN - kho chứa thông tin

  • Kết nối Shield Ethernet với Arduino như mô tả ở trên
  • Chương trình này sử dụng thư viện Arduinno cho mạng LAN, chương trình mẫu sau đây biến Arduino với shield motor thành một server và sẽ phản hồi lại thông tin mỗi khi client hỏi, client ở đây bạn có thể dùng các trình duyệt phổ biến như IE, Firefox, Chrome ... và dùng nhập địa chỉ như bình thường.
  • Một số hàm:
    • Khai báo kiểu ETHER_28J60 để chúng ta có thể sử dụng đối tượng ethernet
  ETHER_28J60 ethernet;
    • Hàm void setup(uint8_t macAddress[], uint8_t ipAddress[], uint16_t port) sử dụng để thiết lập các thông số về địa chỉ MAC, IP, port cho shield ethernet, được gọi một lần và đầu tiên trong hàm setup.
  ethernet.setup(mac, ip, port); // thiết lập địa chỉ mac, ip và port
    • Hàm char* serviceRequest() trả về một chuỗi request nếu có, không thì trả về NULL, được sử dụng thường xuyên trong loop để lấy request
char* param = ethernet.serviceRequest()) ;
    • Hàm void print(char* text) hoặc void print(int value) dùng để thêm chuỗi kí tự hoặc giá trị vào phản hồi
  ethernet.print("<H1>ChipiUno, ChipiPro, ChipiLeo</H1>");
    • Hàm void respond() dùng để phản hồi lại cho client sau khi đã dùng những hàm print ở trên
  ethernet.respond();
  • Nạp Example có tên là EchoParams hoặc đoạn code sau tới Arduino
#include "etherShield.h"
#include "ETHER_28J60.h"

int ledPin = 5;  //Định nghĩa chân nháy led để báo tín hiệu

static uint8_t mac[6] = {0x54,0x55,0x58,0x10,0x00,0x24}; //định nghĩa địa chỉ MAC cho thiết bị
static uint8_t ip[4] = {192,168,1,15};    //định nghĩa địa chỉ IP cho shield, địa chỉ IP này có thể xem bằng lệnh ipconfig trong cmd 
static uint16_t port = 80; // định nghĩa port

ETHER_28J60 ethernet;  //Khai báo đối tượng ethernet để ta làm việc trên nó

void setup()
{ 
  ethernet.setup(mac, ip, port); // thiết lập địa chỉ mac, ip và port
}

void loop()
{
  char* param;
  if (param = ethernet.serviceRequest())  //nếu có yêu cầu tới shield này 
  {
    ethernet.print("<H1>Arduino</H1>");  // thì in ngược lại với dòng chữ Arduino và yêu cầu đó 
    ethernet.print("<H2>");
    ethernet.print(param);
    ethernet.print("</H2>");
    ethernet.respond();  //Re lệnh phản hồi lại cho client
  }
}

Sau đó bạn mở trình duyệt web trên máy bạn lên và nhập vào url như hình sau: ShieldEthernetFireFoxScreenshot.png

Như bạn thấy, sau địa chỉ IP của bo (theo code ở đây là 192.168.1.15/, có thể tùy chỉnh tùy theo mạng) là dòng lệnh gửi xuống bo Arduino và thông tin chúng ta đọc được cũng chính là dòng lệnh này

Ngoài thông tin là chữ thì bạn cũng có thể lập trình để lấy các thông tin khác như cảm biến, dữ liệu ...

Chương trình điều khiển thiết bị điện qua internet

  • Kết nối Shield Ethernet với Arduino như mô tả ở trên
  • Chương trình này sử dụng thư viện Arduinno cho internet, bạn cần dùng thư viện etherCard
  • Một số hàm:
    • Khai báo kiểu để chúng ta có thể sử dụng đối tượng ethernet
    • Hàm
    • Hàm
    • Hàm
    • Hàm
  • Nạp Example có tên là hoặc đoạn code sau tới Arduino

Sau đó bạn mở trình duyệt web trên máy bạn lên,


Sử dụng thẻ nhớ

Các rắc rối có thể bạn gặp phải

Tham khảo thêm