Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

2 Mayıs 2021 Pazar

Ethernet Shield W5100 ile Arduino Sunucuya nasıl veri gönderilir ?

 

Ethernet Shield Arduino Sunucuya nasıl veri gönderilir ?


Ethernet'in çalışmasını ve Arduino ile nasıl kullanıldığını öğreneceğiz? Ethernet ve Arduino kullanarak bir proje yapacağız. Gerçek hayattaki nesneleri kontrol etmek için Ethernet üzerinden iletişim kuracağız. 

Arduino ile arayüz oluşturan ethernet modülü

Arduino ile arayüz oluşturan ethernet modülüne giriş

Geleneksel Ethernet, saniyede 10 megabit hızında veri aktarımlarını destekler. İhtiyaçlar zamanla geliştikçe, Hızlı Ethernet ve Gigabit Ethernet için endüstri tarafından ek yeni Ethernet özellikleri geliştirilmiştir. Hızlı internet 100Mbps'ye kadar, Gigabit Ethernet 1000Mbps hıza sahiptir. Ethernet kabloları da belirli standartlar için hazırlanmıştır. CAT 5, hem geleneksel hem de Hızlı Ethernet'i destekleyen en popüler kablodur. CAT 5e ve CAT 6 kabloları Gigabit Ethernet'i destekler. Ethernet kablolarını bir bilgisayara veya başka bir ağ cihazına bağlamak için, bir kişi bir kabloyu doğrudan cihazın Ethernet bağlantı noktasına takar. Ethernet desteği olmayan bazı cihazlar, dongle adı verilen USB - Ethernet Adaptörleri aracılığıyla Ethernet bağlantılarını da destekleyebilir.

Ethernet'in Çalışması:

Ethernet'in çalışması aşamalı bir süreçtir. İnternetin çalışmasında yer alan adımlar aşağıdadır.

  1. Öncelikle kullanıcıların bilgisayar sistemlerinde Ethernet kartı yani ağ arayüz kartına sahip olması, verilerin bir yerden başka bir yere aktarılmasında ana bileşenlerden biridir. Genel olarak Ethernet, verileri farklı veri paketleri biçiminde iletmek için kullanılır, bu nedenle Ethernet ile çalışmak için ana donanım bileşenidir.
  2. İkinci bileşen, Ethernet'in çalışması için önerilen ağ kablosudur. Tek bir kabloda veri aktarımının bağlı olduğu çok sayıda kablo vardır ve bu kablolar aynı zamanda her iki yönde de veri aktarmamızı sağlar.
  3. Ethernet'in çalışmasındaki son adım, verileri bir yerden diğerine iletmektir. Bu amaçla yönlendiriciler kullanılır. Bilgisayarları ağa yönlendirirler ve verileri farklı bilgisayarlar arasında paylaşmaya yardımcı olurlar.
  4. Ethernet bağlantısı olan bilgisayarları internete veya herhangi bir ağ kaynağına bağlayın. Bu durumda Ethernet'in yönlendiricileri modeme bağlanır ve ardından diğer ağa bağlı sistemlerle veri gönderir veya alır.

Arduino için Ethernet Shield

Ethernet Shield, bağlantılar için sağlanan farklı pinlerle birlikte gelir. Bu shield'ı Arduino kartına düzgün bir şekilde yerleştiriyoruz ve Ethernet Portunu internet hizmeti sağlayan yönlendiriciye bağlıyoruz.Ethernet kalkanı 10, 11, 12, 13 pinlerine takılı olduğundan bunlar genel amaçlı giriş çıkış pinleri olarak kullanılamaz.

Arayüzün Devre Şeması 

  1. Ethernet kalkanını yönlendiriciye bağlayın.
  2. 220ohm'luk direnç üzerinden Ethernet Shield'in 8 numaralı pinine led pozitif pini bağlayın.
  3. Negatif LED pinini Ethernet Kalkanının GND'si ile bağlayın.

Not: Programda bağlantınızın ip adresini kullanın ve varsayılan portunuz internet servis sağlayıcısı tarafından bloke edilmişse, yani 80 kendi portunuzu kullanın. Çoğu zaman 80 iyi çalışıyor.

Arduino ile arayüz oluşturma kodu

/*

  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,2);

IPAddress gateway(192,168,10,1);

IPAddress subnet(255, 255, 255, 0);


// Initialize the Ethernet server library with the port you want to use.

EthernetServer server(80);

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("new client");




    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>Home Automation</TITLE>");

             client.println("<center>");

            client.println("</HEAD>");

            client.println("<BODY>");

            client.println("<H1>Home Automation Microcontrollerslab.com</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 On");

            }

            else{

              if(readString.indexOf("?lightoff") >0)//checks for off

              {

                digitalWrite(8, LOW);    // set pin 8 low

                Serial.println("Led Off");

              }

            }

            //clearing string for next read

            readString="";




            // give the web browser time to receive the data

            delay(1);

            // close the connection:

            client.stop();

            Serial.println("client disonnected");




          }

        }

      }

    }

  }

}

Programı yükledikten sonra Arduino seri monitörden ip adresini kopyalayın ve tarayıcıya yapıştırın. LED'i kontrol etmenizi sağlayan bir html sayfası göreceksiniz.

Uygulamalar:

  1. Ethernet Katman 2 Sanal Özel Ağlar, ağ kontrolünü artırarak mevcut BT altyapısının performansını en üst düzeye çıkarır.
  2. Ethernet'in belirleyici ve dinamik hizmet öznitelikleri, bulut bilişimin kullanılma ve tüketilme biçimine fayda sağlar.
  3. Tüm lokasyonlarda servis standardizasyonu ile birlikte ek performans ve daha yüksek bant genişliği seviyeleri sağlar.
  4. Tüm lokasyonlarda daha iyi şeffaflık, standardizasyon ve daha kolay performans yönetimi sunar.
  5. Video uygulamalarında daha kaliteli hizmet sağlar.
  6. İnternet Protokolü üzerinden Ses, maliyet tasarrufu ile tanınır. Ethernet, kaliteli hizmet seçenekleri ve gelişmiş performans yönetimi sağlar.
  7. Dağıtılmış depolama alanlarında ek performans ve daha yüksek bant genişliği seviyeleri sağlar.
  8. Ethernet bağlantısı, CCTV uygulamalarında gelişmiş hizmet yönetimi sağlayan tutarlı maliyet ve her yerde bulunabilirlik sunar.
  9. Ethernet, iş sürekliliğinin ve felaket kurtarma ağlarının ölçülebilir performans ve esnek bant genişliği seviyeleriyle en iyi şekilde çalışmasını sağlar.
  10. Ethernet, resim arşivleme ve iletişim sistemi dahil olmak üzere dağıtılmış görüntüleme sistemleri için gereken daha yüksek bant genişliğini sağlar.

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.