아두이노에서 같은 네트워크 환경에 있는 다른 장비에 Ping을 날리고 응답을 확인하는 예제입니다.
ICMPPing은 현재 아두이노 스케치에서 설정되어있는 Ethernet 라이브러리 2.x 버전에서는 에러가 납니다.
따라서 아두이노 라이브러리 관리에서 Ethernet을 검색한 후 버전은 1.x 으로 낮추어 사용하시기 바랍니다.
또한 이더넷 쉴드는 전체 소켓을 4개까지만 사용할 수 있으니 아두이노로 통신을 하시는 분들은 유의하시어 코드를 작성하시기 바랍니다.
#include <ICMPPing.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // max address for ethernet shield
byte ip[] = {192,168,0,56}; // ip address for ethernet shield
IPAddress pingAddr(192,168,0,41); // ip address to ping
SOCKET pingSocket = 0;
char buffer [256];
ICMPPing ping(pingSocket, (uint16_t)random(0, 255));
void setup()
{
// start Ethernet
Ethernet.begin(mac, ip);
Serial.begin(9600);
}
void loop()
{
ICMPEchoReply echoReply = ping(pingAddr, 4);
if (echoReply.status == SUCCESS)
{
sprintf(buffer,
"Reply[%d] from: %d.%d.%d.%d: bytes=%d time=%ldms TTL=%d",
echoReply.data.seq,
echoReply.addr[0],
echoReply.addr[1],
echoReply.addr[2],
echoReply.addr[3],
REQ_DATASIZE,
millis() - echoReply.data.time,
echoReply.ttl);
}
else
{
sprintf(buffer, "Echo request failed; %d", echoReply.status);
}
Serial.println(buffer);
delay(500);
}
'Arduino' 카테고리의 다른 글
[Arduino] 아두이노 이더넷 쉴드를 사용한 HITACHI 프로젝터 제어 (0) | 2020.03.18 |
---|---|
[Arduino] 리드 스위치를 이용한 자전거 속도 측정 모듈 개발 (0) | 2018.07.23 |
아두이노 우노 DFRobot NFC Module for Arduino V1.0 사용법 (0) | 2017.12.11 |
[아두이노] 스케치 코드 정리 (0) | 2017.07.27 |