W5500 (WIZ5500), dahili donanımsal TCP/IP protokol yığınına (Hardwired TCP/IP) ve 32 KB dahili bellek tamponuna sahip, yüksek hızlı bir Ethernet denetleyicisidir. ESP8266 (NodeMCU) ile SPI arabirimi üzerinden haberleşerek Wi-Fi bağlantısına alternatif olarak kararlı bir kablolu ağ bağlantısı sağlar.

Görseldeki devre şemasına göre ESP8266 (NodeMCU) ile WIZ5500 modülü arasındaki pin bağlantı haritası şu şekildedir[cite: 5]:
| WIZ5500 Pin | ESP8266 NodeMCU Pin | GPIO Karşılığı | Sinyal / Kablo Rengi |
|---|---|---|---|
| 3V3 / VIN | 3V3 | 3.3V Power | 3.3V Güç Beslemesi (Kırmızı Kablo) |
| GND | GND | Ground | Ortak Toprak Hattı (Siyah Kablo) |
| SCLK (SCK) | D5 | GPIO14 | SPI Clock (Mavi Kablo) |
| MISO | D6 | GPIO12 | SPI Master In Slave Out (Yeşil Kablo) |
| MOSI (SI) | D7 | GPIO13 | SPI Master Out Slave In (Gri Kablo) |
| CS | D8 | GPIO15 | Chip Select / Slave Select (Açık Kahverengi Kablo) |
| RESET | RST | RST Pin | Donanımsal Sıfırlama (Koyu Kahverengi Kablo) |
D8 (GPIO15) pininin LOW seviyesinde olması gerekir. WIZ5500 modülünün CS pini dahili olarak yükseltme (pull-up) direncine sahip değilse boot hatası almamak için CS hattına harici 10kΩ pull-down veya pull-up direnç durumlarına dikkat edilmelidir.
Aşağıdaki Arduino C++ kodu, şemadaki pin konfigürasyonuna göre WIZ5500 modülünü kullanarak basit bir HTTP web sunucusu başlatır:
#include <ESP8266WiFi.h>
#include <SPI.h>
#include <Ethernet.h>
// Şemadaki Pin Tanımlamaları
#define W5500_CS_PIN D8 // GPIO15
// Benzersiz MAC Adresi
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
EthernetServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
// ESP8266 Wi-Fi Modunu Kapatarak Sadece Ethernet Kullan
WiFi.mode(WIFI_OFF);
WiFi.forceSleepBegin();
delay(1);
Serial.println("\nWIZ5500 Ethernet Modülü Başlatılıyor...");
// Ethernet CS Pinini Belirle
Ethernet.init(W5500_CS_PIN);
// DHCP ile IP Al
if (Ethernet.begin(mac) == 0) {
Serial.println("DHCP Hatası! Bağlantı Kontrol Ediliyor...");
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
Serial.println("W5500 Modülü Bulunamadı! SPI Bağlantılarını Kontrol Edin.");
} else if (Ethernet.linkStatus() == LinkOFF) {
Serial.println("Ethernet Kablosu Takılı Değil!");
}
while (true) { delay(1000); }
}
server.begin();
Serial.print("Ethernet Bağlantısı Başarılı! Web Server IP: ");
Serial.println(Ethernet.localIP());
}
void loop() {
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n' && currentLineIsBlank) {
// HTTP Yanıt Başlığı
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
// HTML Sayfa İçeriği
client.println("<!DOCTYPE HTML><html><body style='font-family:sans-serif;'>");
client.println("<h2>ESP8266 + WIZ5500 Ethernet Server</h2>");
client.println("<p><b>SPI Pin Yapısı:</b> CS: D8 (GPIO15) | SCK: D5 | MISO: D6 | MOSI: D7</p>");
client.println("<p>Durum: W5500 Donanımsal TCP/IP Bağlantısı Aktif</p>");
client.println("</body></html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
} else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
}
Henüz yorum yapılmamış. İlk yorumu siz yapın!