아두이노 우노와 ENC28J60을 연동하여 사용하는 공부를 하는 중이다
항상 그랬듯 메모는 필수이다.
ENC28J60 호환보드는 알리에서 싸게 구입할 수 있었다.
아두이노 Uno R3 호환보드도 물론 알리에서 구매가능 하지만.. 직접 해보진 않았다.
호환 보드도 실험하여 추가수정하여 메모해 두어야 겠다.
Uno R3와 ENC28J60 연결방법 이렇다.
참고할 사항이 있는데,
1. GND는 왼쪽에 2가지 중 아무거나 사용 가능.
- 오른쪽 GND도 가능 할 지도? 해보진 않음
2. D13 및 D12등의 숫자배열은 Uno R3의 오른쪽 편(Digital)이라
써있는 영역의 숫자를 의미함.
RJ45 혹은 Lan 케이블은 공유기의 남는 포트로 연결하면 된다.
아두이노 IDE 프로그램을 통하여 코딩을 올려주고, 외부에서 명령어를 실행시켜 주면
아두이노가 받아 Lan을 통하여 특정 기기로 명령어를 보내느 시스템을
상상하며 만들고 있다.
스마트싱스 스테이션과의 연동도 실험 예정이다.
아두이노 IED를 실행시켜 준다.
해당 경로로 선택을 하여 Uno R3를 선택해준다.
Port는 Com3를 선택해주었다.
준비는 끝났다. 이제 설정을 하면 된다.
--------------------------------------------------------------------------------------------
#include <UIPEthernet.h> // ENC28J60을 위한 라이브러리
// MAC 주소 (네트워크에서 고유해야 함, 필요 시 마지막 값 변경)
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
void setup() {
Serial.begin(9600); // 시리얼 모니터 초기화
Serial.println("Ethernet 초기화 중...");
// DHCP를 이용한 IP 자동 할당
if (Ethernet.begin(mac) == 0) {
Serial.println("❌ DHCP 실패! 네트워크 연결되지 않음.");
Serial.println("⚠️ 5초 후 다시 시도...");
delay(5000);
// DHCP 재시도 (1회)
if (Ethernet.begin(mac) == 0) {
Serial.println("🚨 DHCP 재시도 실패! 네트워크 확인 필요.");
while (true); // DHCP 실패 시 무한 대기
}
}
// 성공적으로 IP를 받았을 경우
Serial.print("✅ 할당된 IP 주소: ");
Serial.println(Ethernet.localIP());
}
void loop() {
// 10초마다 네트워크 상태 확인
Serial.println("🌐 네트워크 정상 동작 중...");
Serial.print("현재 IP: ");
Serial.println(Ethernet.localIP());
delay(10000);
}
------------------------------------------------------------------------------------------------
일단 이 코드를 올린 후 자동으로 할당 된 ip가 무엇인지 확인해보자.
자동으로 주소 받기를 하면 자동으로 IP를 할당받는다고 한다.
그렇다면 하기 코드를 다시 올려보도록 하자.
밑에 4번째 문단의 192 168 X XX 는 본인의 할당받은 IP를 꼭 적도록 하자.
IPAddress localIP(192, 168, XX, XX);
-----------------------------------------------------------------------
코드를 올려주었다.
올려준 뒤, 모니터링을 해보도록 한다.
서버 실행 중이라고 나오니, 잘 연결 됐다.
IP는 자동으로 할당 받아 온다.
공유기 설정도 중요한데, Ping TEST 할 경우 Ping이 가질 않았다.
공유기 설정에서 수동으로 IP를 넣어주었다.
여기서 맥주소는 우리가 코딩으로 올려주어 지정해준 맥 주소를 얘기하는 것이다.
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
0X를 제외한 부분을 적도록 하자.
HEX코드를 이용하여 명령어를 전달하는 코드를 짜는 중이다.
빔 프로젝터의 PJLink를 통한 명령어이기 때문에 그 부분이 들어 있는 것이다.
허큘레스에서 명령어가 잘 전달되는지 확인해본다.
아두이노가 명령어를 잘 받아서 결과값을 출력했다!
다음에는 스마트싱스 스테이션의 연동을 실험하여 메모해두도록 하겠다.