ماژول اترنت W5500 چیست؟ (مبتدی)
چیپ W5500 از WIZnet یک کنترلر اترنت SPI است که پروتکلهای TCP/IP، UDP، HTTP، و DHCP را در Hardware پیادهسازی میکند. یعنی آردوینو فقط باید از طریق SPI دادهها را بفرستد و W5500 کار شبکه را انجام میدهد — بدون نیاز به کتابخانه سنگین!
در محیطهای انبار یا کارخانه که WiFi قابل اعتماد نیست یا AGV/UGV باید ارتباط پایداری داشته باشد، اترنت سیمی (با کابل فلکسیبل روی زمین) ایدهآل است. این ماژول فقط ۵ دلار است و کتابخانه آردوینو Ethernet از آن پشتیبانی میکند.
محصولی که میسازید
کنترل UGV از طریق شبکه اترنت — پایدارتر از WiFi در انبار.
- هزینه ماژول: W5500 Module ≈ ۵ دلار
- تأخیر: کمتر از ۱ms در LAN
- کنترل: از مرورگر یا نرمافزار سفارشی
کد آردوینو — HTTP Server برای کنترل UGV
#include <Ethernet.h>
#include <SPI.h>
byte mac[] = {0xDE,0xAD,0xBE,0xEF,0xFE,0x01};
IPAddress ip(192,168,1,200); // IP ثابت UGV
EthernetServer server(80);
const int L_F=6,L_B=7,R_F=8,R_B=9;
void motors(int lf,int lb,int rf,int rb){
digitalWrite(L_F,lf); digitalWrite(L_B,lb);
digitalWrite(R_F,rf); digitalWrite(R_B,rb);
}
void setup() {
Ethernet.begin(mac, ip);
server.begin();
int pins[]={L_F,L_B,R_F,R_B};
for(int p:pins) pinMode(p,OUTPUT);
}
void loop() {
EthernetClient client = server.available();
if(client) {
String req = "";
while(client.available()) req += (char)client.read();
// پردازش درخواست HTTP GET:
if(req.indexOf("GET /F") >= 0) motors(1,0,1,0); // جلو
else if(req.indexOf("GET /B") >= 0) motors(0,1,0,1); // عقب
else if(req.indexOf("GET /L") >= 0) motors(0,1,1,0); // چپ
else if(req.indexOf("GET /R") >= 0) motors(1,0,0,1); // راست
else if(req.indexOf("GET /S") >= 0) motors(0,0,0,0); // توقف
// پاسخ HTML با دکمهها:
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("");
client.println("UGV Control
");
client.println("");
client.println("");
client.println("");
client.println("");
client.println("");
client.println("");
delay(1);
client.stop();
}
}
چکلیست اترنت
| بررسی | روش |
|---|---|
| W5500 با ping جواب میدهد؟ | ping 192.168.1.200 |
| مرورگر صفحه کنترل را نشان میدهد؟ | http://192.168.1.200 |
| تأخیر دستور زیر ۵ms؟ | با Wireshark اندازه |
| Failsafe (timeout) در عدم ارتباط؟ | motors(0,0,0,0) در ۵۰۰ms |