본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 아두이노 이더넷 쉴드(Arduino Ethernet Shield)를 사용해서 연결된 IP를 확인해보고 Webserver 예제 테스트해 보기

by 오마이엔지니어 2017. 6. 19.
반응형

Arduino Uno 로 Arduino Ethernet Shield 를 사용해서 이더넷 쉴드에 연결된 My IP 주소를 확인해보고 WebServer 예제를 테스트 해보는 프로젝트 입니다

<아두이노 이더넷 쉴드 - 아두이노 우노에 장착한 이미지 (메가 2560에도 장착 가능합니다)>

<아두이노 이더넷 쉴드 이미지>

이더넷 쉴드 소개
Wiznet W5100 이더넷 칩 기반의 이더넷 쉴드 호환보드 입니다
가격은 저럼하지만 이태리 정품 이더넷 쉴드와 같이 표준 아두이노 이더넷 드라이버를 사용하며
아두이노 우노 등에 장착해서 이더넷에 접속하여 이더넷 통신을 할수 있게 해줍니다
TCP 와 UDP 프로토콜을 모두 지원하는 네트워크(IP) 스택을 제공하며  동시에 4개까지의 소켓 연결을 지원합니다
Ethernet library 를 사용해서 아두이노 IDE에서 프로그래밍 가능합니다
SD library 를 사용해서 온보드 SD슬롯에 엑세스할수 있으며 이더넷 연결을 위한 RJ45 커넥터가 장착되어 있습니다

Requires an Arduino board
Operating voltage 5V (supplied from the Arduino Board)
Ethernet Controller: W5100 with internal 16K buffer
Connection speed: 10/100Mb
Connection with Arduino on SPI port

아두이노 이태리 사이트 제품소개 및 사용방법 링크
https://www.arduino.cc/en/Main/ArduinoEthernetShieldV1
https://www.arduino.cc/en/Main/ArduinoEthernetShield
https://www.arduino.cc/en/Guide/ArduinoEthernetShield


사용된 부품
Arduino Ethernet Shield
Arduino Uno R3

테스트 방법
가장 기본적으로 아두이노 통합개발환경 IDE가 설치되어 있어야 하겠습니다
IDE는 Arduino.org 의 IDE 가 아닌 Arduino.cc 의 IDE 를 사용하도록 하는게 좋습니다
먼저 org 의 IDE 로 이더넷 라이브러리를 테스트를 해보았으나 컴파일 에러가 나서 cc 의 IDE 로 테스트 해보니 정상적으로 잘 되었습니다
org 의 IDE 는 이래저래 호환성의 문제가 좀 많은것 같습니다 (물론 org 의 제품군이 다양하기는 하지만요)

이더넷 쉴드를 아두이노 우노에 장착후 랜선을 RJ45 포트에 연결후 IDE를 실행합니다

'파일--->예제--->Ethernet--->DhcpAddressPrinter' 순으로 클릭해서 예제를 불러 옵니다
MY IP 주소를 시리얼 모니터로 확인할수 있는 예제입니다



위 이미지에서 보듯이 MAC Address 가
byte mac[] = {
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02
};
이렇게 설정 되어 있습니다 (아두이노 정품은 MAC 주소가 별도로 제품에 포함되어 있습니다 - 제품 PCB 뒷면에 부착되어 있음)
본 제품은 호환보드이기 때문에 위의 범용 MAC 주소로 테스트 하였습니다
확인 후 스케치를 업로드해 줍니다


시리얼 모니터를 열면 MY IP Address 가 192.168.0.10. 인것을 확인할수 있습니다
(보드레이트는 9600로 설정)


이더넷 쉴드와 연결된 IP 주소도 확인하였으니 다시 한번
'파일--->예제--->Ethernet--->WebServer' 순으로 클릭해서 WebServer 예제를 불러 옵니다 


처음에 예제를 열어서 확인해 보면
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,10,177);
이렇게 되어 있는데 IP Address ip(...) 를 위에서 확인한 MY IP 주소 (192, 168, 0, 10);
로 위 이미지 처럼 바꾸어 줍니다
그리고 나서 스케치를 업로드해 줍니다


업로드가 끝나면 시리얼 모니터를 열어서 확인을 해봅니다
server is at 192.168.0.10
으로 웹서버의 IP 가 출력되어 나옵니다


인터넷 익스플로러를 열어서 주소창에 웹서버 IP 주소 192.168.0.10 을 입력해 줍니다
아날로그 포트의 입력값이 출력되는것을 확인할수 있습니다

예제를 확인해 보면
client.println("Refresh: 5");  // refresh the page automatically every 5 sec
Refresh 주기가 5초로 설정되어 있는것을 확인할수 있습니다 (변경해서 테스트도 가능합니다)


시리얼 모니터를 다시 확인해 보면 클라이언트와 연결이 된것을 확인할수 있습니다
클라이언트와 연결이 되면 연결 메시지가 출력 됩니다
EthernetClient client = server.available();

프로젝트 동영상

간단하게 이더넷 쉴드를 사용해서 연결된 IP 주소를 확인해 보고 웹서버 예제를 테스트 해 보았습니다
이제 오픈소스로 공유된 다양한 이더넷 래퍼런스를 진행해 볼수 있는 준비가 끝났습니다

이태리 정품 이더넷 쉴드 V2 (Arduino ethernet Shield V2)로 테스트


이태리 정품은 위에도 언급했듯이 PCB 뒷면에 자체 맥 주소가 붙어 있습니다 (하지만 범용 맥 주소로도 사용 가능합니다)
다만 이태리 정품 이더넷 쉴드 V2 는 제조사가 arduino.org 입니다
1. arduino.org 의 IDE를 사용해야 합니다 http://www.arduino.org/downloads
2. 라이브러리를 Ethernet 이 아닌 Ethernet2 라이브러리를 사용해야 합니다

   (arduino.org의 최신버전 IDE를 설치하면 기본적으로 포함되어 있습니다)
3. 범용 맥주소로도 사용이 가능하며 테스트 방법은 이더넷 쉴드 호환보드와 동일 합니다
   (Ethernet2 예제로 테스트 하면 됩니다)

프로젝트 동영상


반응형

댓글