1. Bu site çerez kullanmaktadır. Siteyi kullanmaya devam etmeniz halinde çerez kullanımı ile ilgili site koşullarını kabul etmiş sayılırsınız. Daha Fazlasını Öğren.
  2. Forum İllegal Uyarısı Forum kuralları gereği forumda video ve illagal paylaşım yapmak yasaktır.Program Arşivimizde ise kısıtlanmış sürüm yada dağıtımı serbest olan (trial - freeware) yazılımlar yayınlayınız..Aksi takdirde mesajlarınız silinecektir..

Arduino Ethernet Uygulaması

Konusu 'Pic Uygulama Ve Devreleri' forumundadır ve guclusat tarafından 15 Mart 2016 başlatılmıştır.

  1. guclusat
    Offline

    guclusat Tanınmış Üye Süper Moderatör

    Katılım:
    14 Haziran 2009
    Mesajlar:
    9.756
    Ödül Puanları:
    48
    [​IMG]

    Arduino ile internet üzerinden birşeyleri kontrol etmek fikri son zamanlarda oldukça yaygınlaştı. Bu yazımızda birşeyleri kontrol etmeden önce arduino ile ethernet shieldın nasıl kullanılacağını inceleyeceğiz. Çünkü ilk aşamada ethernet shieldı çalıştırmak kod hazır dahi olsa emek istemektedir. Ne yapacağımızı bilemediğimiz bir durumdur aslında.


    Herşeyden önce Ethernet kütüphanesini indirmeniz gerekmektedir. İndirdiğiniz kütüphane dosyasını Library klasörüne attıktan sonra IDE’ yi çalıştırabilirsiniz.

    Sırasıyla File / Sketchbook yada Examples / Ethernet / Web Server komutlarına tıkladığınızda bu çalışmada yapacağınız uygulamanın kodunu açmış olacaksınız. Yada direk aşağıda göreceğiniz yorum satırları ile yapacağınız işi anlaşılır kılmaya çalışan kodu çalıştırabilirsiniz.

    ard_internet.png

    Şimdi gelelim benim bu işteki katkıma

    Öncelikle kodun yorum satırlarında da görebileceğiniz gibi kod içerisinde bulunan IP Adresini değiştirmeniz gerekmektedir. Bağlı olduğunuz internet bağlantısı üzerinden bağlantı IPv4 adresinizi öğrenmelisiniz. Bu adresin sadece son hanesini değiştirerek kod içerisindeki ip adresi karşısına yazacaksınız. Örneğin bağlantınızın IP adresi 192.168.1.15 ise siz koda 192.168.1.20 yazmalısınız.

    Bir diğer husus ethernet shieldı bağladığınız internet ile kod içerisine yazdığınız IP adresini aratmanızdır. Yani kullandığınız internet hattı bu çalışmada aynı olmalıdır.

    ard_int2.png

    Yorum satırları eklenmiş uygulama kodu:

    Kod:
    /*
      Web Server = Web sunucusu : Hosting, web sayfalarının internet
      üzerinde yayınlanması için gerekli alanların kiralanması
      anlamına gelmektedir. Yani internet üzerinden yayınlanmak istenen
      döküman, resim, sayfa vb. verilerin kullanıcıların erişebileceği
      bir bilgisayarda tutulmasıdır. İşte bu verilerin tutulduğu -
      saklandığı internete hızlı bağlantısı olan web verilerini tutan
      bilgisayarlara web sunucusu denir.
    Bu çalışmada arduino üzerindeki analog pinlerin değerleri
    basit bir web server da gösterilecektir. Bu çalışmada arduino uno
    ve ethernet shield kullanılmaktadır.
    Devre ayak bağlatıları:
    NOT: Eğer ethernet kitiniz shield halinde değilse yani arduino
    kartınız üzerine direk olarak bağlanamıyorsa şu piner
    kullanılacaktır:
    * Ethernet shieldı arduino üzerindeki bağlanacağı pinler:
    10, 11, 12, 13
    * Analog girişlerinizi (A0...A5) potansiyometre gibi analog
    aygıtlara-sensörlere bağlayabilirsiniz.
    */
    #include <SPI.h>
    #include <Ethernet.h>
    // The IP address will be dependent on your local network:
    byte mac[] = {
      0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    IPAddress ip(192,168,1,89); // IP adresi yerel bağlantınızın
    // yani kullandığınız internetin IP adresi ile uyumlu olmalıdır.
    // Buna Ağ ve Paylaşım Merkezini Aç/ (İnternete bağlandığınız) Ağ
    // Bağlantısı / Ayrıntılar komutlarına tıklayarak IPv4 Adresi linki
    //karşısında görebilirsiniz. Burada gördüğünüz IP adresinin sadece
    //son hanesini değiştirerek kod içerisindeki kısmı doldurmalısınız.
    //Örneğin benim IPv4 adresim 192.168.1.86 idi ancak kod içerisine
    //192.186.1.89 yazdım. Kod içerisine yazdığınız IP adresini web
    // browser yani chrome yada Internet Explorer da aratınız.
    //Tabi arduino ya bu kodu yüklemiş ve internet shielda internet
    //kablosunu bağlamış olmanız gerekmektedir.
    EthernetServer server(80); // HTTP için tanımlanmış port numarası
    void setup() {
      Serial.begin(9600); //Seri haberleşme açıldı
       while (!Serial) {
        ; // Seri porta bağlantının yapılmasını bekler
      }
      Ethernet.begin(mac, ip);
      server.begin();
      Serial.print("server is at ");
      Serial.println(Ethernet.localIP());
    }
    void loop() {
      // listen for incoming clients
      EthernetClient client = server.available();
      if (client) {
        Serial.println("new client");
        // an http request ends with a blank line
        boolean currentLineIsBlank = true;
        while (client.connected()) {
          if (client.available()) {
            char c = client.read();
            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 (c == '\n' && currentLineIsBlank) {
              // send a standard http response header
              client.println("HTTP/1.1 200 OK");
              client.println("Content-Type: text/html");
              client.println("Connection: close");  // the connection will be closed after completion of the response
       client.println("Refresh: 5");  // refresh the page automatically every 5 sec
              client.println();
              client.println("<!DOCTYPE HTML>");
              client.println("<html>");
              // output the value of each analog input pin
              for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
                int sensorReading = analogRead(analogChannel);
                client.print("analog input ");
                client.print(analogChannel);
                client.print(" is ");
                client.print(sensorReading);
                client.println("<br />");
              }
              client.println("</html>");
              break;
            }
            if (c == '\n') {
              // you're starting a new line
              currentLineIsBlank = true;
            }
            else if (c != '\r') {
              // you've gotten a character on the current line
              currentLineIsBlank = false;
            }
          }
        }
        // give the web browser time to receive the data
        delay(1);
        // close the connection:
        client.stop();
        Serial.println("client disonnected");
      }
    }
     

Sayfayı Paylaş