본문 바로가기
Wiznet

W5100S-EVB-Pico 로 Arduinon Ethernet 예제 돌려보기

by Alan_S 2022. 11. 5.

W5100S-EVB-PICO / RP2040 + W5100S

W5100S-EVB-PICO 에 아두이노 이더넷 예제를 넣어 동작시켜보고자 한다.

먼저 아두이노 사이트에서 아두이노를 깔았다. 

따끈따끈한 2.0.0 버전이라 조금 많이 다른 느낌이다. 전 버전들은 진행방법이 조금 다르니 참고하길 바란다.

먼저 W5100S-EVB-PICO 를 Arduino 로 돌리려면 간단한 환경셋팅이 필요하다.

 

GitHub - earlephilhower/arduino-pico: Raspberry Pi Pico Arduino core, for all RP2040 boards

Raspberry Pi Pico Arduino core, for all RP2040 boards - GitHub - earlephilhower/arduino-pico: Raspberry Pi Pico Arduino core, for all RP2040 boards

github.com

해당 깃에 Earlephillhower 가 만들어놓은 보드매니저에 대한 설명이 있다.

들어가보면

<Earlephillhower 의 셋팅화면설명>

이렇게 설정하라고 명시해놨다. 해당 URL 을 아두이노 Board Manager URL 에 추가하면 된다. 

<내 아두이노 셋팅화면>

File -> Preferences 에서 해당 URL 을 넣어주도록 하자.

그리고나서 Tools -> Boards Manager 에서 Pico 를 검색한다.

그럼 위와같이 Earlephillhower의 보드매니터 파일이 나온다. 이를 Install 하도록 하자.

그리고 보드/포트매뉴 -> Select other board and port 에서 WIZnet W5100S-EVB-Pico 를 선택하고 포트는 현재 포팅된 포트를 선택한다.

그리고 Blink 예제를 업로딩하여 보드가 정상적으로 동작하는지 확인한다.

 

이제 본격적으로 Ethernet 예제를 돌려보려고 한다. 다른 아두이노 버전에도 이랬는지 모르겠지만, 내가 다운받은 2.0.0버전에는 예제에 Ethernet 이 포함되어 있지 않았다.

Tool -> Manage Libraries

Type을 Arduino 로 설정하고 Ethernet 을 검색하니 Ethernet 기본예제 라이브러리가 있어서 이를 인스톨하였다.

(Ethernet by Various (see AUTHORS files for details) 

인스톨을 다하니

해당 경로에 예제파일이 생겼다.

그러면 이제 이 예제파일을 우리 보드에 맞게 바꿔주어야 한다.

 

GitHub - WIZnet-ArduinoEthernet/Ethernet: [WIZnet Modified] Ethernet Library for Arduino

[WIZnet Modified] Ethernet Library for Arduino . Contribute to WIZnet-ArduinoEthernet/Ethernet development by creating an account on GitHub.

github.com

위의 경로가 바꿔줘야 하는 파일이고, 

바꿔주는 방법은 아래의 경로이다.

 

GitHub - Wiznet/Ethernet: WIZnet fork version - Adding IPv6 function, fixing some bugs, supporting new chipset, W5100S & W6100.

WIZnet fork version - Adding IPv6 function, fixing some bugs, supporting new chipset, W5100S & W6100. For more details about this fork, please visit the wiki page. - GitHub - Wiznet/Ethernet: W...

github.com

내 경우는 경로가 조금 다르지만 여기 나와있는대로 예제파일을 바꿔치기 해줬다.

그리고 아두이노를 다시 켰다. (예제인식이 안되서...)

작업이 완료되고 이렇게 라이브러리가 형성되었다면 정상이다.

 

간단하게 ChatServer 예제를 돌려보도록 하겠다.

ChatServer 예제를 실행시키고, 

<필자의 상황에 맞게 변경한 코드>

해당 Address 들은 자신의 상황에 맞게 변경시켜주도록 한다.

명령 프롬프트에서 ipconfig /all 로 알 수 있다.

나는 192.168.0.8 이라 같은 망으로 그냥 192.168.1.177  ---> 192.168.0.177로 변경시켜줬다.

 

그리고 setup 부분에서 해당 칩에대한 주석을 풀어준다.

그리고 컴파일, 업로딩 하면 완료 (보드/포트설정 다시해야함)

업로드가 완료되고 시리얼 포트를 확인해보면 아래 이미지처럼 Chat server address : xxx.xxx.x.xxx 가 출력되는 것을 확인할 수 있다.

해당 Address가 우리가 만든 Char Server 의 Address 이다. 이제 채팅을 해봐야 하는데, 이를 위해 설치할 툴이 있다.

여러가지 툴이 있지만 간단하게 Hercules 라는 툴을 이용해보도록 하겠다.

 

Hercules SETUP utility | HW-group.com

 

www.hw-group.com

해당 링크에서 다운받을 수 있다. 

 

실행해보면 이런모습이다.

여기서 TCP Client 를 선택한다. 

그리고 Module IP 에 서버 Address 를 넣고 Port 에는 23 을 기입한다. (Port 는 소스안에 설정되어있는 값)

그리고 Connect 를 누르면 아래 이미지처럼 Connected to xxx.xxx.x.xxx 라고 출력되며, Send 클릭버튼이 활성화된다.

그리고 I'm Alan 을 입력해보았다. 해당 예제는 서버에 들어오는 모든 클라이언트 메시지를 모든 클라이언트에게 다시 뿌리는 예제이다. I'm Alan 을 총 3번 입력했고, 첫번째는 Hello, client 라고 처음 메시지를 썼을 때 출력되는 메시지가 나오고 그 뒤론 자신이 보낸 메시지를 모든 연결된 클라이언트에게 뿌리기때문에 자기 자신도 받게 되면서 이런 구성이 되는 것이다.

시리얼 모니터(서버) 에서는 받은 메시지만 뜬다.

 

다른 예제는 다음 글에서 다뤄보도록 하겠다.