Arduino
OKUDUĞUNUZ KONU
Arduino Ethernet Modülü ile IP üzerinden Röle Kontrolü
8

Arduino Ethernet Modülü ile IP üzerinden Röle Kontrolü

Yazar : Eren Doğan6 Haziran 2017

Merhaba arkadaşlar, yine işle ilgili bir projeyle karşınızdayım 🙂 bu proje de arduino uno muza ethernet modülü bağlayıp tarayıcımıza ip girerek rölemizi açıp kapacağız

Malzeme listesi

  • Arduino Uno
  • Arduino Ethernet Shield (Modül)
  • Röle Modülü
  • Ethernet Kablosu

Proje Resimleri

devre şeması

şema kafanızı karıştırmasın arkadaşlar

rölenin besleme Vcc ucuna 5V eksi ucuna arduino dan GND bağlantısı yapıp çıkış pinimizde sinyal girişine bağlıyoruz

devre kodu:

#include <Ethernet.h>

int role = 4;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //ethernet modülün mac adresi
byte ip[] = { 10, 0, 0, 194 };                      // yerel ağ içerisinde kullanabileceğiniz ip adresi örneğin ("192.168.1.178")
byte gateway[] = { 10, 0, 0, 1 };                   // vereceğiniz ip nin ilk değerinden sonra iki tane 0 ve sona 1 vermeniz yeterli
byte subnet[] = { 255, 0, 0, 0 };                  // bu ayarları ip4 üzerinden manuel yapmanız gerektiğine dikkat edin
EthernetServer server(80);                             //haberleşeceğimiz port adresi
String readString;                                // tarayıcı üzerinden göndereceğimiz string (dizi) tanımlaması

void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
pinMode(role, OUTPUT); // röle çıkışı tanımlandı
Ethernet.begin(mac, ip, gateway, subnet); // ethernet başlatıldı
server.begin(); // sunucu başlatıldı
}

void loop() {
EthernetClient client = server.available(); // sunucu mevcutken ethernet kullanıcısı tanımlandı
if (client) {
while (client.connected()) { // kullanıcı bağlıyken
if (client.available()) { // ve de mevcutken
char c = client.read();  // kullanıcı isteğini okuyup karakter c ye eşitleme

if (readString.length() < 100) { // tarayıcıdan gelecek olan istek karakter olarak okunup
readString += c; // string (diziye) kaydediliyor
//Serial.print(c); // isterseniz serial monitörden çift // kaldırarak görüntüleyebilirsiniz
}
if (c == '\n') { // http isteği sonlanması

client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<a href=\"/?roleoff\"\">ROLE KAPAT</a>");
client.println("<a href=\"/?roleon\"\">ROLE AC</a><br />");
client.println("</BODY>");
client.println("</HTML>");

delay(1);

client.stop(); // kullanıcı sonlandırma

if (readString.indexOf("?roleon") > 0) {
digitalWrite(role, HIGH);
}
if (readString.indexOf("?roleoff") > 0) {
digitalWrite(role, LOW);
}

readString = ""; // bi sonra ki okuma için temizleme işlemi

}
}
}
}
}

kolay gelsin , umarım faydalı olur.

SİZCE NASIL OLMUŞ?
Beğendim
79%
İlginç
0%
Eh İşte
8%
Anlamadım
13%
Kötü
0%
Berbat
0%
YAZAR HAKKINDA
Eren Doğan
Eren Doğan
Elektrik-Elektronik Mühendisi
8 YORUMLAR
  • Omer
    21 Temmuz 2017 at 18:06

    Merhaba,
    Çalısmanız ve yardımlarınız için teşekkürler. 1 adet Ardiuno Uno ve Ethernetsheet aldım. Ethernetsheet uno üzerine taktım.Programı başarılı bir şekilde kart üzerine yükledim. Program içinde ip adresini evdedeki ipye göre ayarladım.
    Ping atamıyorum.Dolayısı ile browser üzerinden ulaşamıyorum.Uno ve mega üzerindede bunu başaramadım. Ethernet w5100 shield arızalı olabilir diye 1 tane daha aldım. Ama sonuç aynı. Ne yapabilirim.
    Syg

  • ns
    10 Şubat 2018 at 00:38

    iyi çalışmalar herşey güzel ama ingiliççe =)
    saygıdeger arkdaslar led yakıp kapaması tamam da ıp yı bılen herkez ulasım saglıyor. Buna guvenlık ıcın web sayfasına sıfre yada kullanıcı adı sıfre nasıl koyabılırız

  • doğan kaya
    12 Nisan 2018 at 21:22

    bir türlü ethernet üzerinden iple sisteme bağlanamadım sistem modemimden ip almıyor nedeni nedir sizce ?

  • Çağrı
    14 Eylül 2018 at 11:11

    Merhaba,
    Ben bu devreyi yapıp çalıştırıyorum ama yerel ağ dışında örneğin cep telefonumdan bağlanıp kontrol yapamıyorum. Yerel ağa bağladığım Ethernet shieldimi dış ağdan nasıl kontrol edebilirim???

  • suat yiğit
    27 Eylül 2018 at 21:46

    #include

    int role = 4;

    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //ethernet modülün mac adresi
    byte ip[] = { 192,168,0,178 }; // yerel ağ içerisinde kullanabileceğiniz ip adresi örneğin (“192.168.1.178″)
    byte gateway[] = { 192,168,0,1 }; // vereceğiniz ip nin ilk değerinden sonra iki tane 0 ve sona 1 vermeniz yeterli
    byte subnet[] = { 255,255,255,0 }; // bu ayarları ip4 üzerinden manuel yapmanız gerektiğine dikkat edin
    EthernetServer server(80); //haberleşeceğimiz port adresi
    String readString; // tarayıcı üzerinden göndereceğimiz string (dizi) tanımlaması

    void setup() {
    Serial.begin(9600);
    while (!Serial) {
    ;
    }
    pinMode(role, OUTPUT); // röle çıkışı tanımlandı
    Ethernet.begin(mac, ip, gateway, subnet); // ethernet başlatıldı
    server.begin(); // sunucu başlatıldı
    }

    void loop() {
    EthernetClient client = server.available(); // sunucu mevcutken ethernet kullanıcısı tanımlandı
    if (client) {
    while (client.connected()) { // kullanıcı bağlıyken
    if (client.available()) { // ve de mevcutken
    char c = client.read(); // kullanıcı isteğini okuyup karakter c ye eşitleme

    if (readString.length() < 100) { // tarayıcıdan gelecek olan istek karakter olarak okunup
    readString += c; // string (diziye) kaydediliyor
    //Serial.print(c); // isterseniz serial monitörden çift // kaldırarak görüntüleyebilirsiniz
    }
    if (c == '\n') { // http isteği sonlanması

    client.println("HTTP/1.1 200 OK"); //send new page
    client.println("Content-Type: text/html");
    client.println();
    client.println("”);
    client.println(“”);
    client.println(“”);
    client.println(“”);
    client.println(“”);
    client.println(“”);
    client.println(“ROLE KAPAT“);
    client.println(“ROLE AC“);
    client.println(“”);
    client.println(“”);

    delay(1);

    client.stop(); // kullanıcı sonlandırma

    if (readString.indexOf(“?roleon”) > 0) {
    digitalWrite(role, HIGH);
    }
    if (readString.indexOf(“?roleoff”) > 0) {
    digitalWrite(role, LOW);
    }

    readString = “”; // bi sonra ki okuma için temizleme işlemi

    }
    }
    }
    }
    }

    bu kodu 8 li role için nasıl uyarlayabiliriz bilgisi olan yardımcı olabilir mi ?

  • Ferhat pehlivan
    5 Ekim 2018 at 19:26

    Hocam iyi akşamlar. Bu uygulamada esp8266 ile nasıl haberleşme saglayabilirim bilginiz varsa açıklarmısınız??

YORUM YAP