ethernetw5100

Ethernet Üzerinden LED kontrolü

Projelerimizin bilgilerin internet uzerinden görebilmek veya kontol edilebilmesini sağlamak için w5100 çipsetli ethernet kartı UNO ve PRO için biçilmiş kaftandır.Network üzerinden herhangi bir cihazını bu şekilde kontrol edebilirsiniz.

İlerleyen yazılarımda da yaptığım bazı projeleri ethernetle kontrolünün nasıl gerçekleştirdiğimi paylaşacağım. Sözü fazla uzatmadan hemen konuya girelim . Ethernet kartı şekilde gördüğünüz gibi arduinonun üzerine monte ediliyor, ama bazı ethernet kart modelleride Arduinonun üzerine takmadan SPI arayüzü veya ICSP ile direk kullanmanıza olanak sağlayacak şekilde tasarlanmış.

Yaptığımız bu projemizde aslında size göstermek istediğim arduinoya upload edeceğiniz program ile bir HTML sayfası oluşturarak webserver üzerinden LEDi açıp-kapamamız için AÇ-KAPA düğmeleri yerleştirdim. Böylelikle yapmanız gereken sadece aç yada kapa butonuna tıklamak.

Tabiki Kontrol edebilmek için IP adresi bilmeniz ve Projeniz için bir IP adresi belirtmeniz gerekemektedir. Belirttiğiniz IP adresi Explorera(mozilla opera chrome …) girip entera basmanız yetecektir .

ethernet basit 1

ethernet kartımız ile Arduino UNO

ethernet basit 2

Arduino UNO ile ethernet kartı birleştirilmiş.

ethernet basit 3

LED bağlantısı Anod hangi çıkıştan kontrol edecekseniz oraya bağlanmalı.Ben 8. bacağa bağladım, diğer ucu ( – ) uca bağlanmalıdır.

Bu resimde gördüğünüz gibi ethernet kablosu ethernet kartına takılı ve ethernet kartı switch ile ağa bağlı. arduinomuza programı yükledikten sonra artık herhangi bir internet tarayıcı ile LED kontrolü yapmamız mümkün.

 

/*
  Web Server
A simple web server
Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
*/
//-------------------------------------------------------------------------------------------------------
#include <SPI.h>
#include <Ethernet.h>
 
// Enter a MAC address and IP address for your controller below.
byte mac[] = {0x90, 0xA2, 0xDA, 0x0D, 0x48, 0xD3 };
 
// The IP address will be dependent on your local network:
// assign an IP address for the controller:
 
IPAddress ip(192,168,1,20);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255, 255, 255, 0);
 
// Initialize the Ethernet server library with the port you want to use.
EthernetServer server(8081);
String readString;
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------
// Any extra codes for Declaration :
 
// Declare Pin 8 as an LED because thats what we will be connecting the LED to.You could use any other pin and would then have to change the pin number.
int led = 8;
 
//-------------------------------------------------
//-------------------------------------------------------------------------------------------------------
void setup()
{
//-------------------------------------------------
 
// Extra Set up code:
pinMode(led, OUTPUT); //pin selected to control
 
//-------------------------------------------------
//-------------------------------------------------------------------------------------------------------
//enable serial data print
  Serial.begin(9600);
 
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  Serial.print("Server is at ");
  Serial.println(Ethernet.localIP());
  Serial.println("LED Controller Test 1.0");
}
//-------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------
 
void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client)
 
  {
    Serial.println("Yeni baglanti");
 
    while (client.connected())
    {
      if (client.available())
 
      {
        char c = client.read();
 
        //read char by char HTTP request
        if (readString.length() < 100)
 
        {
 
          //store characters to string
          readString += c;
          //Serial.print(c);
 
 
          Serial.write(c);
          // if you've gotten to the end of the line (received a newline
          // character) and the line is blank, the http request has ended,
          // so you can send a reply
          //if HTTP request has ended
          if (c == '\n') {
            Serial.println(readString); //print to serial monitor for debuging
//--------------------------------------------------------------------------------------------------------
// Needed to Display Site:
client.println("HTTP/1.1 200 OK"); //send new page
            client.println("Content-Type: text/html");
            client.println();
            client.println("<HTML>");
            client.println("<HEAD>");
 
//--------------------------------------------------------------------------------------------------------
//-------------------------------------------------
 
// what is being Displayed :    
         
            client.println("<TITLE>www.arduinom.org</TITLE>");
             client.println("<center>");
            client.println("</HEAD>");
            client.println("<BODY>");
            client.println("<H1>LED kontrol</H1>");
            client.println("<hr />");
            client.println("<center>");
 
            client.println("<a href=\"/?lighton\"\">Turn On Light</a>");
            client.println("<br />");
            client.println("<br />");
            client.println("<a href=\"/?lightoff\"\">Turn Off Light</a><br />");    
 
            client.println("</BODY>");
            client.println("</HTML>");
 
            delay(1);
            //stopping client
            client.stop();
 
            //-------------------------------------------------
            // Code which needs to be Implemented:
            if(readString.indexOf("?lighton") >0)//checks for on
            {
              digitalWrite(8, HIGH);    // set pin 8 high
              Serial.println("Led Acik");
            }
            else{
              if(readString.indexOf("?lightoff") >0)//checks for off
              {
                digitalWrite(8, LOW);    // set pin 8 low
                Serial.println("Led Kapali");
              }
            }
            //clearing string for next read
            readString="";
 
            // give the web browser time to receive the data
            delay(1);
            // close the connection:
            client.stop();
            Serial.println("bağlantı Kesildi");
 
          }
        }
      }
    }
  }
}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

  1. Tolgay 24 Mart 2017 06:10

    Elimize sağlık güzel olmuş. Ancak yukarıda setup kisminda ledin pinini int degiskenine atamissiniz ancak aşağıda degiskeni kullansaydiniz daha şık olurdu 😉 belli ki gözünüzden kaçmış

    Cevapla
  2. Mustafa 11 Temmuz 2016 00:06

    Türkçe karakter sorununu nasıl çözebiliriz

    Cevapla
  3. recep 7 Ekim 2015 23:16

    merhaba internet üzerinden led kontrolünü kablosuz nasıl yapabiliriz.

    Cevapla
    • admin 9 Ekim 2015 09:38

      Bukonu ile ilgili projelerde yayinlanan proje var . Bu sorunuzu aciklamak istiyorum .

      Normalde network uzerinden kontrol yapabilirsiniz bunun iki yolu var ya arduinonuza Wifi modulu almaniz yada herhangi bir network modulu ile isinizi halletmeniz . Ben NORMAL NETWORK karti ile halletmenizi nasil yapabilirsiniz bunun uzerinde durayim (ucuz) NEtwork modulune taktiginiz ethernet kablosunu direk wifi routera takmaniz . tamamen butun isinizi halledecektir. :))
      ama Internetinizin statik IP olmasi gerekiyor . Eger dynamic IP ise bunun cozumunu gerceklestiren bazi yollar var ama cok cetrefilli

      Statik IP tamam Wireless Routerda tamam diyorsaniz O zaman yapmaniz gereken internet IP adresinizle Arduino ethernet modulune kopru olusturmaniz .

      BUNU EN YAKIN ZAMANDA ARDUINO DERSLERINE EKLIYECEGIM

      Cevapla

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.