USR-ES1 เป็นโมดูลอีเธอร์เน็ตที่ใช้ W5500 ที่อนุญาตให้โครงการ Arduino เชื่อมต่ออินเทอร์เน็ตผ่านการเชื่อมต่อแบบมีสาย มันมีขนาดกะทัดรัดเชื่อถือได้และรองรับโปรโตคอล TCP/IP ทำให้สมบูรณ์แบบสำหรับแอปพลิเคชัน IoT เว็บเซิร์ฟเวอร์และการบันทึกข้อมูล บทช่วยสอนนี้จะแนะนำคุณผ่านการใช้โมดูล Ethernet USR-ES1 W5500 กับ Arduino
สิ่งที่คุณต้องการ
- USR-ES1 W5500 โมดูลอีเธอร์เน็ต
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- สายเคเบิลอีเธอร์เน็ต
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
ขั้นตอนที่ 1: การทำความเข้าใจโมดูล Ethernet USR-ES1 W5500
โมดูล W5500 Ethernet ขึ้นอยู่กับชิป W5500 ซึ่งรองรับ:
- TCP, UDP, ICMP, IPv4, ARP, IGMP, โปรโตคอล PPPOE
- อินเทอร์เฟซ SPI สำหรับการสื่อสารกับไมโครคอนโทรลเลอร์
- การเชื่อมต่อซ็อกเก็ตพร้อมกันสูงสุด 8 ครั้ง
w5500 pinout
เข็มหมุด | การทำงาน |
---|---|
VCC | พลังงาน (3.3V) |
gnd | พื้น |
มิโซะ | เอาต์พุตข้อมูล SPI |
Mosi | อินพุตข้อมูล SPI |
SCK | นาฬิกา SPI |
CS (SS) | เลือกชิป |
ครั้งแรก | รีเซ็ต (ไม่บังคับ) |
ขั้นตอนที่ 2: เดินสาย USR-ES1 W5500 ถึง Arduino
นี่คือวิธีการเชื่อมต่อโมดูลกับ Arduino Uno:
USR-ES1 PIN | พิน Arduino |
---|---|
VCC | 3.3V |
gnd | gnd |
มิโซะ | PIN 12 |
Mosi | พิน 11 |
SCK | PIN 13 |
CS (SS) | พิน 10 |
ครั้งแรก | ไม่ได้เชื่อมต่อ (ไม่บังคับ) |
บันทึก: W5500 ทำงานที่ 3.3V ตรวจสอบให้แน่ใจว่าคุณไม่ได้เชื่อมต่อโดยตรงกับแหล่งจ่าย 5V
ขั้นตอนที่ 3: ติดตั้งไลบรารีอีเธอร์เน็ต
ในการสื่อสารกับโมดูล W5500 คุณจะต้องใช้ไลบรารี Ethernet2
ขั้นตอนในการติดตั้งไลบรารี Ethernet2:
- เปิด Arduino IDE
- ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
- ค้นหา "Ethernet2" ใน Library Manager
- คลิก ติดตั้ง.
ขั้นตอนที่ 4: อัปโหลดรหัส
นี่คือตัวอย่างตัวอย่างสำหรับตั้งค่าโมดูล W5500 เป็นเว็บเซิร์ฟเวอร์อย่างง่าย:
#include <Ethernet2.h>
// Network configuration
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC address
IPAddress ip(192, 168, 1, 177); // Static IP address
EthernetServer server(80); // Port 80 for HTTP
void setup() {
Serial.begin(9600);
while (!Serial) {
; // Wait for Serial Monitor to open
}
Serial.println("Initializing Ethernet...");
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip); // Use static IP if DHCP fails
}
Serial.print("Ethernet IP Address: ");
Serial.println(Ethernet.localIP());
server.begin();
}
void loop() {
EthernetClient client = server.available(); // Check for incoming clients
if (client) {
Serial.println("New client connected");
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c); // Print incoming data to Serial Monitor
// Respond to HTTP GET requests
if (c == '\n') {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<html><body><h1>Hello from Arduino!</h1></body></html>");
break;
}
}
}
client.stop(); // Disconnect the client
Serial.println("Client disconnected");
}
}
ขั้นตอนที่ 5: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB และโมดูล W5500 เข้ากับเราเตอร์ของคุณด้วยสายเคเบิลอีเธอร์เน็ต
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
- เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น
9600
- หมายเหตุที่อยู่ IP ที่แสดง - เปิดเว็บเบราว์เซอร์และป้อนที่อยู่ IP ของ Arduino (เช่น
http://192.168.1.177
). - คุณควรเห็นหน้าเว็บที่แสดง "สวัสดีจาก Arduino!"
การแก้ไขปัญหา
- อีเธอร์เน็ตไม่เริ่มต้น: ตรวจสอบการเดินสายที่เหมาะสมและตรวจสอบว่าสายเคเบิลอีเธอร์เน็ตเชื่อมต่ออย่างปลอดภัยหรือไม่
- ความขัดแย้ง IP: ตรวจสอบว่าที่อยู่ IP แบบคงที่ไม่ได้ขัดแย้งกับอุปกรณ์อื่น ๆ ในเครือข่าย
- ไม่มีการตอบสนองในเบราว์เซอร์: ตรวจสอบให้แน่ใจว่าที่อยู่ IP ในรหัสตรงกับเครือข่ายเครือข่ายของคุณ
แอปพลิเคชันของโมดูล Ethernet W5500
- การบันทึกข้อมูล IoT
- ระบบควบคุมระยะไกล
- เซิร์ฟเวอร์ระบบอัตโนมัติในบ้าน
- เครือข่ายเซ็นเซอร์พร้อมอินเตอร์เฟสเว็บ
บทสรุป
คุณได้ตั้งค่าโมดูล Ethernet USR-ES1 W5500 ด้วย Arduino เพื่อสร้างเว็บเซิร์ฟเวอร์อย่างง่าย โมดูลอเนกประสงค์นี้ช่วยให้คุณสามารถสร้างโครงการที่เชื่อมต่อเครือข่ายที่เชื่อถือได้และมีสาย ขยายตัวอย่างนี้โดยการรวมเซ็นเซอร์แอคทูเอเตอร์หรือฐานข้อมูลสำหรับแอปพลิเคชันขั้นสูงเพิ่มเติม!