Arduino
ESP32

ESP32 で ping が使えるようになった。

正確には、 Arduino core for the ESP32 において、ping 応答は前からできていたのだが、ping 発信の機能が無かったのが最近できるようになった。

試してみた記録。

インストール

https://github.com/pbecchi/ESP32_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));
}