아두이노 - 이더넷 쉴드 2 | Arduino - Ethernet Shield 2
Arduino Ethernet Shield 2를 사용하는 것은 Arduino를 인터넷에 연결하는 가장 쉬운 방법 중 하나입니다. Arduino - Ethernet 튜토리얼에서 이더넷을 통해 Arduino를 인터넷에 연결하는 다른 방법을 확인할 수 있습니다.
이 튜토리얼에서, 우리는 배우게 될 것입니다:
- 초보자를 위한 기초 네트워킹 지식
- 아두이노 이더넷 쉴드 2 사용 방법
- 동적 IP 주소( DHCP를 통해) 사용 시 아두이노 이더넷 쉴드 2를 위한 스켈레톤 아두이노 코드
- 정적 IP 주소 사용 시 아두이노 이더넷 쉴드 2를 위한 스켈레톤 아두이노 코드
준비물
1 | × | Arduino Uno | Amazon | |
1 | × | USB 2.0 cable type A/B | 쿠팡 | Amazon | |
1 | × | Arduino Ethernet Shield 2 | Amazon | |
1 | × | Ethernet Cable | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino Uno | Amazon |
초보자를 위한 기본 네트워킹 지식
이 부분은 네트워킹에 대해 아무것도 모르는 초보자를 위한 기본 지식을 제공합니다.
기기가 인터넷에 연결될 때(이더넷이나 와이파이를 통해), 해당 기기는 반드시 라우터나 액세스 포인트에 연결해야 합니다. 라우터와 액세스 포인트는 인터넷으로 통하는 게이트웨이 역할을 하는 장치입니다. 기기와 인터넷 사이의 모든 데이터는 라우터나 액세스 포인트를 통해 전달됩니다.
인터넷에 연결될 때, 기기는 반드시:
- MAC 주소가 있음
- IP 주소가 있음
- 네트워크의 서브넷 마스크를 알고 있음
- 게이트웨이의 IP 주소를 알고 있음 (라우터 또는 액세스 포인트의 IP 주소)
- DNS 서버의 IP 주소를 알고 있음 (도메인 이름에 연결하는 경우)
장치는 다음 중 하나라도 만족할 경우 작동하지 않습니다:
- 같은 네트워크에 있는 하나 이상의 다른 장치가 해당 장치와 동일한 MAC 주소를 사용합니다 (MAC 주소 충돌이라고 함)
- 같은 네트워크에 있는 하나 이상의 다른 장치가 해당 장치와 동일한 IP 주소를 사용합니다 (IP 주소 충돌이라고 함)
이 튜토리얼은 네트워킹에 대한 지식으로 여러분을 과부하시키지 않습니다. 따라서, 이 튜토리얼은 그러한 개념들을 설명하지 않습니다. 그것은 이 튜토리얼의 범위를 벗어납니다. 대신, 이 튜토리얼은 그것들을 어떻게 사용하는지 보여줍니다.
MAC 주소는 보통 장치에 내장되어 있습니다. 우리는 그것에 대해 신경 쓸 필요가 없습니다. 그러나, Arduino Ethernet Shield 2는 내장된 MAC 주소가 없습니다. MAC 주소는 실드에 붙어있는 스티커에 인쇄되어 있습니다. 우리는 그것을 얻고 Arduino 코드에서 Arduino 실드를 위한 MAC 주소를 설정해야 합니다.
IP 주소, 서브넷 마스크, 게이트웨이의 IP 주소, DNS 서버의 IP 주소를 장치(아두이노 포함)에 할당하는 방법은 두 가지가 있습니다:
- 정적 IP 주소 사용:
- IP 주소, 서브넷 마스크, 게이트웨이의 IP 주소 및 DNS 서버의 IP 주소 관리 필요
- IP 주소, 서브넷 마스크, 게이트웨이의 IP 주소 및 DNS 서버의 IP 주소를 수동으로 설정해야 함(Arduino Ethernet Shield 2의 경우, 이 정보를 Arduino 코드를 사용하여 설정)
- 다음과 같은 경우 작동하지 않습니다:
- 같은 LAN 네트워크상의 다른 장치가 사용 중인 IP 주소를 설정할 경우 → IP 충돌
- 잘못된 서브넷 마스크, 게이트웨이의 IP 주소, DNS 서버의 IP 주소를 설정할 경우
- 장치는 DHCP를 사용하여 라우터나 액세스 포인트로부터 자동으로 IP 주소, 서브넷 마스크, 게이트웨이의 IP 주소 및 DNS 서버의 IP 주소를 얻습니다. 우리는 IP 주소, 서브넷 마스크, 게이트웨이의 IP 주소 및 DNS 서버의 IP 주소를 관리할 필요가 없습니다. 라우터/액세스 포인트가 이 작업을 대신 해줍니다.
스마트폰을 WiFi 홈 네트워크에 연결할 때 두 번째 방법이 사용됩니다.
아두이노를 사용할 때, 첫 번째 방법은 초보자에게 어렵습니다. 두 번째 방법은 네트워킹에 대해 잘 모르는 초보자들에게 쉽고 추천됩니다.
아두이노 이더넷 쉴드 2 사용 방법
아두이노는 SPI 인터페이스를 통해 Ethernet Shield 2와 통신합니다. 다음은 Arduino Ethernet Shield 2를 사용하는 방법을 보여줍니다.
- Arduino Uno나 Mega 위에 Ethernet Shield 2를 쌓으세요.
- PC를 Arduino Uno/Mega에 USB 케이블로 연결하세요.
- Ethernet Shield 2를 라우터/액세스 포인트에 이더넷 케이블로 연결하세요.
- Arduino IDE를 열고 코드를 작성하세요.
- 코드를 Arduino Uno/Mega에 업로드하세요.
완전히 간단해요.
동적 IP 주소를 사용할 때 Arduino Ethernet Shield 2를 위한 스켈레톤 아두이노 코드
사전 요구 사항
이더넷 실드의 MAC 주소를 알아야 합니다 (제조업체가 제공한 스티커에서 얻음).
단계별로 프로그래밍하는 방법
도서관 포함
MAC 주소를 선언하다
- 응용 프로그램에 따라 다른 객체를 선언하세요.
- 이더넷 쉴드 2를 시작하세요.
(선택 사항) 아두이노의 IP 주소, 서브넷 마스크, 게이트웨이의 IP 주소 및 DNS 서버의 IP 주소를 출력하세요.
아두이노는 다음 경우에 IP 주소를 얻을 수 없습니다:
- 라우터 또는 액세스 포인트가 DHCP를 지원하지 않습니다.
- 이더넷 케이블이 제대로 연결되지 않았거나 손상되었습니다.
이 문제를 감지하기 위해, 우리는 Ethernet.begin(mac);을 다음과 같이 수정할 수 있습니다:
※ NOTE THAT:
MAC 주소를 변경하지 않으면 여전히 작동할 수 있습니다. 그러나 같은 LAN 네트워크의 다른 기기와 MAC 주소가 충돌하면 작동하지 않을 수도 있습니다. MAC 주소 스티커를 분실한 경우, 위의 MAC 주소를 테스트용으로 사용하세요.
동적 IP 주소를 사용할 때의 완전한 스켈레톤 코드
위의 코드를 아두이노에 업로드하세요. 성공하면, 시리얼 모니터가 아래와 같은 것을 보여줍니다:
시리얼 모니터가 위와 같이 표시되지 않으면 이더넷 케이블을 확인하세요. 계속 작동하지 않으면 정적 IP 주소를 사용해 보려면 다음 부분으로 이동하세요.
정적 IP 주소를 사용할 때 아두이노 이더넷 실드 2용 뼈대 아두이노 코드
전제 조건
- MAC 주소를 얻어야 합니다 (스티커에서 얻으세요)
- 사용되지 않는 IP 주소를 얻어야 합니다 (사용되지 않는 IP 주소 얻는 방법 보기)
- 네트워크의 서브넷 마스크를 얻어야 합니다 (서브넷 마스크 얻는 방법 보기)
- 게이트웨이의 IP 주소를 얻어야 합니다 (게이트웨이의 IP 주소 얻는 방법 보기)
- DNS 서버의 IP 주소를 얻어야 합니다 (DNS 서버의 IP 주소 얻는 방법 보기)
단계별 프로그래밍 방법
- 도서관 포함하세요
MAC 주소를 선언하다
사용되지 않는 IP 주소, 서브넷 마스크, 게이트웨이의 IP 주소, 그리고 DNS 서버의 IP 주소를 선언하십시오.
- 애플리케이션에 따라 다른 객체를 선언하세요.
- 이더넷 실드 2를 시작하세요.
선택 사항, 네트워크 연결 상태 확인
※ NOTE THAT:
MAC 주소를 변경하지 않으면 여전히 작동할 수 있습니다. 하지만 같은 LAN 네트워크 내의 다른 장치의 MAC 주소와 충돌할 경우 작동하지 않을 수도 있습니다. MAC 주소 스티커를 잃어버린 경우, 위의 MAC 주소를 테스트용으로 사용하십시오.
정적 IP 주소를 사용할 때의 완전한 스켈레톤 코드
위의 코드를 아두이노에 업로드하세요. 성공하면, 시리얼 모니터가 아래와 같은 것을 표시합니다:
시리얼 모니터가 위와 같지 않으면:
- 이더넷 케이블을 확인하세요
- IP 주소가 귀하의 네트워크에 속하는지 확인하세요
- IP 주소가 동일 네트워크 내의 다른 장치와 충돌하지 않는지 확인하세요
- 서브넷 마스크, 게이트웨이의 IP 주소, DNS 서버의 IP 주소가 올바르게 설정되었는지 확인하세요
초보자를 위한 네트워킹에 대한 추가 지식
정적 IP를 사용하는 경우, 사용되지 않는 IP 주소, 서브넷 마스크, 게이트웨이의 IP 주소 및 DNS 서버의 IP 주소를 받아야 합니다. 아래는 그것들을 얻는 방법을 보여줍니다.
Arduino와 PC가 동일한 네트워크에 연결되면
- PC에서 명령 프롬프트를 열어주세요.
- 명령 프롬프트에서 다음 명령어를 입력하세요:
- 위에서 서브넷 마스크와 게이트웨이의 IP 주소를 얻을 수 있습니다.
- 위의 출력에서 PC의 IP 주소를 확인할 수 있습니다. PC의 IP 주소를 기반으로 사용하지 않는 IP 주소를 찾으려고 합니다.
- PC의 IP 주소에서 시작하여 하나씩 증가시키거나 감소시킵니다.
- 명령 프롬프트에서 해당 IP 주소로 ping 명령을 보냅니다. IP가 도달할 수 없을 때까지 이 두 단계를 반복합니다. 주소가 도달할 수 없으면 사용되지 않는 IP 주소이며, 이를 아두이노에 사용할 수 있습니다. 예를 들어:
- DNS 서버의 IP 주소의 경우, 우리는 단순히 8.8.8.8을 사용할 수 있습니다.
※ NOTE THAT:
어떤 경우에는 IP 주소에 연결할 수 없어도 다른 기기에서 사용되고 있을 수 있습니다. 하지만, 이런 경우는 일반적으로 가정 내 네트워크에서는 발생하지 않습니다.
이제 이 보호막을 사용하여 아두이노를 인터넷에 연결할 수 있습니다. 또한 부분에서 다른 예제를 보세요.
WARNING
이 튜토리얼은 개발 중입니다.