Arduino Uno 로 아두이노 이더넷 쉴드(Arduino Ethernet Shield)를 사용해서 연결된 IP를 확인해보고 Webserver 예제 테스트해 보기
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 예제로 테스트 하면 됩니다)
프로젝트 동영상