이더넷 쉴드(Ethernet Shield)

2018. 12. 21. 11:33

이더넷이란?

[그림1-1] 이더넷

 

 

 이더넷은 근거리 네트워크(LAN, Local Area NetWork)를 구성하는 방식들 중 현재 전 세계적으로 
90%이상 사용되는 네트워크의 형태로 데이털르 전송하기 위해 CSMA/CD(Carrier Sense Multiple Access / Collision Detection)라는 약속을 사용한다. 자료전송이 이뤄지는지 회선을 감시 하고(CS), 동시에 여러 호스트가 통신이 가능하며(MA), 이떄 충돌(Collision)이 발생하면 충돌을 감지(CD)해 전송을 종료 시키는 방식 이다.

 

 

 

 

이더넷 쉴드란?

[그림 2-2] 이더넷 쉴드 -  사진출처 : http://www.mechasolution.com/shop/main/inde

 이더넷 쉴드란 아두이노에 적층하여 사용하는 보드로 적층 시 이더넷 라이브러리를 사용하여 아두이노를 네트워크에 연결해 주는 확장 보드로 아두이노 보드는 이더넷 쉴드와의 통신을 위해 *SPI통신을 사용합니다.
* SPI (Serial Peripheral Interface) : 직렬 통신 방식 중 한 가지로 마이크로 컨트롤러, 레지스터, SD카드 등의 주변장치 사이에 데이터를 전송하기 위한 기능, 간단하게 기기와 기기, 즉, 칩과 칩간의 데이털르 주고 받기 위한 통신 방법 중 한 가지

 아두이노 우노의 경우 11, 12, 13번 핀이 SPI통신을 위한 핀으로 사용 되고 있습니다. 따라서 해당 핀들은 다른 용도로 사용하지 않는 편이 좋습니다. 이는 11, 12, 13번 핀을 사용할 경우 아두이노 보드와 쉴드간의 SPI통신이 원활하게 이루어지지 않아 쉴드가 작동을 하지 않을 개연성이 있기 때문입니다.

 아두이노 통합개발환경(IDE)에는 이더넷 쉴드를 사용하기 위한 이더넷 라이브러리가 기본적으로 포함되어 있으므로 별도의 설치없이도 어더넷을 이용하여 인터넷에 연결 할 수 있으며, 이더넷 쉴드에는 마이크로 SD 카드 슬롯이 포함되어 있어 기본적으로 제공해주는 라이브러리를 사용해 읽고 쓸 수 있습니다.

 이더넷 쉴드를 사용하기 위해서는 이더넷 쉴드에 MAC주소와 IP주소가 할당되어야 하며 이더넷 클래스의 begin() 함수를 이용하여 설정할 수 있으며, IP주소의 경우 네트워크 설정에 따라 달라지며 고정IP주소와 DHCP(Dynamic Host Configuration Protocol)를 통해 IP주소를 할당 받아 사용할 수 있습니다.

 

 

 

[그림2-2]  이더넷 라이브러리 컴포넌트 다이어그램

 

 

 

 

Arduino Sketches & 실행화면

#include <SPI.h>
#include <Ethernet.h>

byte ma[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //자신의 맥주소 설정
IPAddress ip(000,000,000,000); //자신의 IP설정
EthernetServer server(80);

void setup() 
{
    Ethernet.begin(mac, ip);
    server.begin();
}

void loop() 
{
    EthernetClient client = server.available();

    if(client) 
    {
        while(client.connected()) 
        {
            if(client.available())
            {
                char c = client.read();
                if(c == ' ')
                {
                    client.println("HTTP/1.1 200 OK");
                    client.println("Content-Type:Text/html");
                    client.println("Connection : close");
                    client.println();
                    client.println("<!DOCTYPE html>");
                    client.println("<html>");
                    client.println("    <head>");
                    client.println("        <title> Arduino Web Page</title>");
                    client.println("    </head>");
                    client.println("    <body>");
                    client.println("        <h1> Hello Arduino </h1>");
                    client.println("        This web page from the Arduino server");
                    client.println("    </body>");
                    client.println("</html>");
                    break;
                }
            }
        }
    }
}    

 

[그림 3-1] 실행화면

아두이노 업로드 후 브라우저를 열고 자신이 설정한 IP와 포트번호를 다음과 같이 주소창에 타이핑

*포트번호 80은 디폴트 이므로 생략가능

 

 

 
 

 

'embedded > arduino' 카테고리의 다른 글

서보모터 - 버튼으로 서보모터 각도 제어  (1) 2018.12.21
초음파 센서 - 거리측정  (0) 2018.12.21
Shield 와 Module  (0) 2018.12.21

BELATED ARTICLES

more