ESP32 で ping が使えるようになった。
正確には、 Arduino core for the ESP32 において、ping 応答は前からできていたのだが、ping 発信の機能が無かったのが最近できるようになった。
試してみた記録。
インストール
こちらからダウンロード&解凍ないし、cloneする。
今回は、ZIPでダウンロードした。
それをESP32_ping-masterというフォルダができるので、ESP32_pingという名前にリネームし、
~/Arduino/hardware/espressif/esp32/libraries
の中に移動。
~/Arduino/hardware/espressif/esp32/libraries/ESP32_ping
という感じにする。
試してみる
こちら
https://github.com/espressif/arduino-esp32/issues/564
を参考にして、
#include <WiFi.h>
#include "ping.h"
void setup()
{
Serial.begin(115200);
WiFi.begin("myESSID","mypassphase");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
bool pingtest (IPAddress ia) {
IPAddress adr = IPAddress(ia[0], ia[1], ia[2], ia[3]);
Serial.printf("Ping : %d.%d.%d.%d : ", ia[0], ia[1], ia[2], ia[3]);
if (ping_start(adr, 4, 0, 0, 5)) {
Serial.println("OK");
return true;
} else {
Serial.println("Request time out");
return false;
}
}
void loop()
{
pingtest( IPAddress(192,168,179,2));
}