Arduino Uno 로 ENC28J60 이더넷 모듈을 사용해서 PC의 웹 또는 스마트폰 웹브라우저로 LED 제어해 보는 프로젝트입니다
먼저 Arduino Uno 로 ENC28J60 이더넷 모듈을 사용해 이더넷 접속 여부를 웹브라우저로 확인해 보는 프로젝트 입니다
ENC28J60 이더넷 모듈은 ENC28J60 칩을 기반으로 한 이더넷 모듈로 RJ45 커넥터와 이더넷 연결에
필요한 회로로 인터페이스가 구성되어 있어 손쉽게 이더넷 연결이 가능합니다
SPI 통신 방식으로 아두이노와 같은 마이크로 컨트롤러와 통신하며 HTTP stack 을 활용하고 싶지만
이더넷 쉴드의 가격이 부담 스럽다면 ENC28J60 이더넷 모듈을 사용해서 테스트 해 볼수 있습니다
Arduino Uno R3 (Italy)
점퍼케이블
사용된 키트
구성 배선도
구성 배선도-V2
사용된 예제소스
사용된 라이브러리
ENC28J60 이더넷 모듈을 테스트 하려면 라이브러리를 추가해 주어야 합니다
라이브러리 추가 방법은 Arduino IDE 설치하기 포스팅을 참조해 주세요
*ENC28J60 이더넷모듈 테스트 방법*
(첨부된 라이브러리를 내문서의 아두이노 라이브러리 폴더에 복사해서
라이브러리를 추가해 줍니다)
첨부된 예제 코드를 아두이노 IDE 에 복사해서 업로드해 줍니다
또는 아두이노 IDE 에서 파일 -> 예제 -> ethercard ->backSoon 을 클릭해서
스케치를 불러 내도 됩니다
위의 구성 배선도 이미지를 참조해서 배선을 한후 공유기를 통해
랜선을 ENC28J60 이더넷모듈에 연결 합니다
*예제 코드를 자신의 공유기 환경에 맞게 수정해 주어야 합니다*
-------------------------------------------------------------------------------
#define STATIC 0 // set to 1 to disable DHCP (adjust myip/gwip values below)
-------------------------------------------------------------------------------
STATIC 0 은 공유기 IP 환경에 맞게 0 이나 1로 설정합니다
0으로 설정하여 테스트 하였습니다
-------------------------------------
static byte gwip[] = { 192,168,0,1 };
-------------------------------------
은 공유기 IP 주소 입니다
--------------------------------------
static byte myip[] = { 192,168,0,10 };
--------------------------------------
아두이노 에 연결된 ENC28J60 이더넷모듈 IP 주소 입니다
(익스플로러에서 192,168,0,1 로 접속해 IPTIME 공유기 관리자에 접속해서 내부네트워크 를 검색하면
연결된 ENC28J60 이더넷모듈 IP 주소 를 확인할수 있습니다 Arduino-XX 이런식으로 검색되고 연결 됩니다 <하단 동영상 참조>
192,168,0,10 로 연결 되었기에 192,168,0,10 로 테스트 하였습니다)
주의! 만약 내부네트워크에서 ENC28J60 에 연결 된 아두이노 장치 검색 및 IP 주소 확인이 안된다면?
이 경우 아두이노에 일단 먼저 첨부파일의 EtherCard 예제코드를 IP주소 수정없이 스케치 업로드 해 줍니다
그리고 아두이노의 리셋 버튼을 눌러주고 IPTIME 관리자에서 내부네트워크에 Arduino 이더넷이 검색 되는지 다시한번 확인해 봅니다
-------------------------------------------------------------------
const char page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
"<head><title>"
"Hello from Arduino RJ Technology"
"</title></head>"
"<body>"
"<h3>This is an Arduino answering-RJ Technology</h3>"
"<p><em>"
"Have fun finding out more fun things to do with this!<br />"
"Please try again and again."
"</em></p>"
"</body>"
"</html>"
;
---------------------------------------------------------------------
웹 페이지에 표시될 HTML 입니다
------------------------------------------------------
"<h3>This is an Arduino answering-RJ Technology</h3>"
------------------------------------------------------
이부분을 한번 자신이 원하는 대로 수정해 봅니다
익스플로러에서 192,168,0,10 주소를 입력하면
-------------------------------------------------------
This is an Arduino answering-RJ Technology
Have fun finding out more fun things to do with this!
Please try again and again
--------------------------------------------------------
이렇게 화면에 출력이 됩니다
이상 ENC28J60 모듈 테스트 설명 입니다
프로젝트 동영상
이어서 Arduino Uno 로 ENC28J60 이더넷 모듈을 사용해서 PC의 웹 또는 스마트폰 웹브라우저로
LED 제어해 보는 프로젝트를 진행해 보겠습니다
사용된 부품
Arduino Uno R3 (Italy)
점퍼케이블
미니브래드보드
3mm LED 블루
막대저항 220 Ohm
사용된 키트
구성 배선도-웹으로 LED 제어해 보기
사용된 예제소스
사용된 라이브러리
ethercard-master.zip
*테스트 방법*
먼저 배선도는 첫번째 테스트와 거의 동일하고 LED만 아두이노 9번핀에 추가 되었음을 확인할 수 있습니다
예제소스는 위 첨부 된 'EtherCard-led' 를 사용하면 되고 라이브러리는 동일한 'ethercard' 라이브러리를 사용하기 때문에
위 첫번째 테스트에서 먼저 설치하였다면 추가로 설치할 필요는 없습니다
예제코드를 업로드해 주고 이더넷 모듈과 아두이노를 배선합니다
(익스플로러에서 192,168,0,1 로 접속해 IPTIME 공유기 관리자에 접속해서 내부네트워크 를 검색하면
연결된 ENC28J60 이더넷모듈 IP 주소 를 확인할수 있습니다 Arduino-XX 이런식으로 검색되고 연결 됩니다 <하단 동영상 참조>
192,168,0,13 로 연결 되었기에 192,168,0,13 로 테스트 하였습니다)
주의! 만약 내부네트워크에서 ENC28J60 에 연결 된 아두이노 장치 검색 및 IP 주소 확인이 안된다면?
이 경우 아두이노에 일단 먼저 첨부파일의 EtherCard 예제코드를 IP주소 수정없이 스케치 업로드 해 줍니다
그리고 아두이노의 리셋 버튼을 눌러주고 IPTIME 관리자에서 내부네트워크에 Arduino 이더넷이 검색 되는지 다시한번 확인해 봅니다
*예제 코드를 자신의 공유기 환경에 맞게 수정해 주어야 합니다*
-------------------------------------------------------------------------------
// mac address
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
// ethernet interface ip address
static byte myip[] = { 192,168,0,13 };
// gateway ip address
static byte gwip[] = { 192,168,0,1 };
-------------------------------------------------------------------------------
ENC28J60 모듈과 연결된 IP 주소가 확인 되었다면
예제코드의 빨간색 부분을 이더넷 모듈과 연결된 자신의 IP 주소로 변경해 주고 다시한번 예제코드를 업로드해 줍니다
-------------------------------------------------------------------------------
// LED to control output
int ledPin10 = 9;
-------------------------------------------------------------------------------
위 예제코드에서 보면 알수 있듯이 LED는 아두이노의 9번핀에 연결되도록 설정되어 있습니다
-------------------------------------------------------------------------------
// IF LED10=ON turn it on
if(strstr((char *)Ethernet::buffer + pos, "GET /?LED10=ON") != 0) {
Serial.println("Received on command");
digitalWrite(ledPin10, HIGH);
}
// IF LED10=OFF turn it OFF
if(strstr((char *)Ethernet::buffer + pos, "GET /?LED10=OFF") != 0) {
Serial.println("Received OFF command");
digitalWrite(ledPin10, LOW);
}
-------------------------------------------------------------------------------
위 예제코드에서 보면 알수 있듯이
인터넷 주소창에 ENC28J60 모듈과 연결된 IP 주소 http://192.168.0.XX 로 연결한 다음에
http://192.168.0.XX/?LED10=ON 이렇게 치면 LED가 켜지고
http://192.168.0.XX/?LED10=OFF 이렇게 치면 LED가 꺼지게 됩니다
(주의! 배선도를 보면 LED는 아두이노의 9번 핀에 연결하였지만
LED10=ON&OFF 이런 식으로 예제가 짜여져 있으니 이점 헷갈리지 맙시다 ㅡㅡ&)
물론 WIFI 만 연결되어 있다면 스마트폰 웹 브라우저로도 동일하게 테스트 가능합니다
프로젝트 동영상-웹으로 LED 제어해 보기
'Arduino(아두이노) 키트 강좌' 카테고리의 다른 글
Step.31 Arduino Uno 로 IR 적외선 원격제어 키트를 이용해 LED 제어해 보기 (0) | 2020.05.08 |
---|---|
Step.29-Arduino Uno 와 XBee USB Adapter 2개를 사용해서 무선 XBee 통신으로 LED 밝기 제어해 보기 (0) | 2018.01.19 |
Step.28-Arduino Uno 로 ENC28J60 이더넷 모듈을 사용해 이더넷 접속 웹브라우저로 확인해 보기 (0) | 2016.06.11 |
Step.27-Arduino Uno 로 ESP8266 Wifi 모듈을 사용해 AT커맨드 통신하기 (0) | 2016.06.11 |
Step.26-XBee USB Adapter 를 사용해서 XBee 모듈간 통신 테스트 하기 (1) | 2016.05.27 |
댓글