0
Bu yazıyı " 3 " dakikada okuyabilirsiniz. 🙂

Bu yazıda, Arduino Ethernet Shield kullanarak Arduino projelerinize internet bağlantısı eklemeyi ve basit bir web sunucusu oluşturmayı inceleyeceğiz. Ethernet Shield, Arduino’nuzun web üzerinden erişilebilir olmasını ve veri alışverişi yapmasını sağlar.

Arduino Ethernet Shield Hakkında

Arduino Ethernet Shield, Wiznet W5100 Ethernet çipini kullanan bir kalkan kartıdır (shield). Bu çip, TCP/IP protokolünü destekler ve Arduino’nuzun internet üzerinden iletişim kurmasını sağlar. Ethernet Shield, standart RJ45 Ethernet kablosu ile internete veya yerel ağınıza bağlanabilir.

Gerekli Malzemeler:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • Arduino Ethernet Shield
  • RJ45 Ethernet kablosu
  • İnternet bağlantısı (router veya modem)
  • Breadboard (opsiyonel, bağlantıları kolaylaştırmak için)
  • Jumper kablolar (opsiyonel, breadboard kullanıyorsanız)

Devre Kurulumu:

  1. Ethernet Shield’i Arduino’ya Takın: Ethernet Shield’i Arduino’nun üzerine takın.
  2. Ethernet Kablosu Bağlantısı: Ethernet kablosunun bir ucunu Ethernet Shield’in RJ45 portuna, diğer ucunu ise router veya modeminize bağlayın.

Kodlama:

  1. Kütüphane Kurulumu:
  • Arduino IDE’sinde “Araçlar” > “Kütüphane Yöneticisi” yolunu izleyin.
  • “Ethernet” arayın ve Ethernet kütüphanesini yükleyin.

2. Kod Yazma:

  • Aşağıdaki kodu Arduino IDE’ye yazın:
#include <Ethernet.h>

// MAC adresini değiştirin (her cihaz için benzersiz olmalıdır)
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// IP adresini değiştirin (ağınızda uygun bir IP adresi kullanın)
IPAddress ip(192, 168, 1, 177);

// Web sunucusunu başlatın
EthernetServer server(80);

void setup() {
  // Ethernet bağlantısını başlatın
  Ethernet.begin(mac, ip);

  // Seri iletişimi başlatın (hata ayıklama için)
  Serial.begin(9600);

  // Sunucuyu başlatın
  server.begin();
  Serial.print("Sunucu şu adreste başlatıldı: ");
  Serial.println(Ethernet.localIP());
}

void loop() {
  // Yeni istemci bağlantısı kontrol edin
  EthernetClient client = server.available();
  if (client) {
    Serial.println("Yeni istemci bağlandı.");
    // İstemciye bir HTML sayfası gönderin
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println();
    client.println("");
    client.println("");
    client.println("Merhaba Dunya!");
    client.println("");
    client.stop(); // Bağlantıyı kapatın
  }
}

Kod Açıklaması:

  1. Kütüphane Ekleme: include : Arduino Ethernet Shield ile çalışmak için gerekli olan Ethernet kütüphanesi eklenir.
  2. MAC Adresi Tanımlama: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };: Ethernet Shield’inizin benzersiz MAC adresi burada tanımlanır. Bu adresi Ethernet Shield’inizin üzerindeki etiketten veya üreticinin belgelerinden bulabilirsiniz.
  3. IP Adresi Tanımlama: IPAddress ip(192, 168, 1, 177);: Arduino’nuza atanacak IP adresi burada tanımlanır. Bu adresi ağınızın yapılandırmasına göre seçmelisiniz. Genellikle router’ınızın DHCP özelliğini kullanarak otomatik IP adresi ataması yapabilirsiniz, ancak statik bir IP adresi de atayabilirsiniz.
  4. Web Sunucusu Oluşturma: EthernetServer server(80);: 80 numaralı portta bir web sunucusu oluşturulur. Bu port, web tarayıcılarında varsayılan olarak kullanılan HTTP portudur.
  5. setup() Fonksiyonu:
    * Ethernet.begin(mac, ip);: Ethernet bağlantısı başlatılır ve MAC adresi ile IP adresi atanır.
    * Serial.begin(9600);: Seri iletişim başlatılır. Bu, hata ayıklama veya seri monitör üzerinden bilgi görüntüleme için kullanılır.
    * server.begin();: Web sunucusu başlatılır.
    * Serial.print(“Sunucu şu adreste başlatıldı: “); Serial.println(Ethernet.localIP());: Arduino’nun IP adresi seri monitöre yazdırılır.
  6. loop() Fonksiyonu:
    * EthernetClient client = server.available();: Yeni bir istemci bağlantısı olup olmadığı kontrol edilir.
    * if (client): Eğer bir istemci bağlandıysa:
    * Serial.println(“Yeni istemci bağlandı.”);: Seri monitöre yeni bir istemci bağlantısı olduğu yazdırılır.
    * client.println(“HTTP/1.1 200 OK”);: İstemciye HTTP durum kodu 200 (OK) gönderilir.
    * client.println(“Content-Type: text/html”);: İstemciye gönderilen içeriğin türünün HTML olduğunu belirtir.
    * client.println();: Boş bir satır gönderilir, HTTP başlıklarının sonunu belirtir.
    * client.println(“”); client.println(“”); client.println(“Merhaba Dunya!”); client.println(“”);: Basit bir HTML sayfası oluşturulur ve istemciye gönderilir.
    * client.stop();: İstemci ile bağlantı kapatılır.

Özet:
Bu kod, Arduino Ethernet Shield kullanarak basit bir web sunucusu oluşturur. Web tarayıcınızdan Arduino’nun IP adresine eriştiğinizde, “Merhaba Dunya!” mesajını içeren bir web sayfası görürsünüz. Bu temel örnek, daha karmaşık web uygulamaları ve IoT projeleri için bir başlangıç noktası olabilir.

Kullanım:

  • Kodu Arduino’ya yükleyin.
  • Web tarayıcınızı açın ve adres çubuğuna Arduino’nuzun IP adresini girin.
  • Tarayıcıda “Merhaba Dünya!” mesajını görmelisiniz.

Geliştirmeler:

  • Sensör verilerini web sayfasında görüntüleyin.
  • Web sayfasından LED’leri kontrol edin veya motorları çalıştırın.
  • Daha karmaşık web arayüzleri oluşturmak için HTML, CSS ve JavaScript kullanın.
  • Arduino’yu bir IoT (Nesnelerin İnterneti) cihazı olarak kullanın.

Notlar:

  • MAC Adresi: Her Ethernet cihazının benzersiz bir MAC adresi vardır. Kodunuzdaki MAC adresini Ethernet Shield’inizin MAC adresine göre değiştirmelisiniz.
  • IP Adresi: Arduino’nuza ağınızda uygun bir statik IP adresi atamanız gerekir. IP adresini, ağınızın yapılandırmasına göre değiştirmelisiniz.
  • Port Numarası: Web sunucusu varsayılan olarak 80 numaralı portu kullanır. Bunu değiştirebilirsiniz, ancak web tarayıcısında IP adresinin yanına port numarasını da belirtmeniz gerekir.
Ahmet Kemal YILDIZ
Eskişehir Osmangazi Üniversitesi Bilgisayar ve Öğretim Teknolojileri Öğretmenliği mezunu bir Bilişim Teknolojileri ve Yazılım Dersi Öğretmeniyim. Bilişim Teknolojileri ve Yazılım dersi ile ilgili ders etkinlikleri, kaynak materyaller, örnek etkinlikler ve ilgi duyduğum birçok konu hakkında vakit buldukça buradan blogluyorum. :)

    17# – Arduino ile Bluetooth İletişimi (HC-05 veya HC-06)

    önceki yazı

    19# – Arduino ile ESP8266, Sıcaklık Sensörü ve Röle Kontrolü (Adafruit IO ile)

    Sonraki Yazı

    Bu Yazılar da İlgini Çekebilir!

    Yorumlar

    Yorum yap

    E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    Daha Arduino