如何在 ESP32 中 ping 网关
你可以使用 ESP32Ping 库轻松 ping 当前网关 IP:
ping_gateway_snippet.cpp
if(Ping.ping(WiFi.gatewayIP(), 1)) { // 1: 只 ping 一次
// TODO ping 成功时做什么
// 示例:打印响应时间
Serial.print(Ping.averageTime()); // 单位:ms
Serial.println(" ms");
} else {
// TODO ping 失败时做什么?
}完整示例:
ping_gateway_full_example.cpp
#include <Arduino.h>
#include <WiFi.h>
#include <ESP32Ping.h>
void waitForWiFiConnectOrReboot(bool printOnSerial=true) {
uint32_t notConnectedCounter = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(100);
if(printOnSerial) {
Serial.println("Wifi 连接中...");
}
notConnectedCounter++;
if(notConnectedCounter > 50) { // Reset board if not connected after 5s
if(printOnSerial) {
Serial.println("由于 Wifi 未连接而重置...");
}
ESP.restart();
}
}
if(printOnSerial) {
// 打印 wifi IP 地址
Serial.println("IP 地址:");
Serial.println(WiFi.localIP());
}
}
#define LED_BUILTIN 2
void setup() {
Serial.begin(115200);
WiFi.begin("MyWifiSSID", "MyWifiPassword");
// 等待 wifi 连接
waitForWiFiConnectOrReboot();
// 初始化 LED
pinMode(LED_BUILTIN,OUTPUT);
}
void loop() {
if(Ping.ping(WiFi.gatewayIP())) {
digitalWrite(LED_BUILTIN,HIGH);
Serial.print(Ping.averageTime());
Serial.println(" ms");
} else {
digitalWrite(LED_BUILTIN, LOW);
Serial.println("Error :(");
}
}示例输出
ping_example_output.txt
6.12 ms
5.12 ms
5.11 ms
5.16 ms
4.95 ms
4.88 ms
4.84 ms
7.67 ms
5.01 ms
4.87 ms
4.81 ms
4.80 ms
4.85 ms
5.08 ms
5.76 ms
4.54 ms
5.12 ms
2.77 ms
4.88 ms
4.84 ms
6.07 ms
5.08 ms
4.91 ms
6.04 ms
4.88 ms
4.98 ms
6.43 ms
8.18 ms
4.93 ms
5.17 ms
4.97 ms
5.46 ms
5.88 ms
4.78 ms
4.88 ms
6.03 ms
4.84 ms
5.70 ms
5.94 ms
7.25 ms
5.07 ms
4.78 ms
5.51 ms
4.99 ms
5.04 ms
4.79 ms
4.94 ms
4.81 ms
5.97 ms
5.85 ms
4.83 ms
4.80 ms
4.80 ms
6.29 ms
4.99 ms
5.04 ms
9.21 ms
5.20 ms
6.05 ms
6.14 ms
5.03 ms
4.90 ms
7.22 ms
5.06 ms
4.94 ms
9.03 ms
5.13 ms
11.97 ms
6.32 ms
6.12 ms
4.92 ms
4.92 ms
6.01 ms
4.96 ms
4.98 ms
4.94 ms
6.08 ms
6.11 ms
4.93 ms
5.05 ms
5.78 ms
4.47 ms
6.28 ms
5.02 ms
5.13 ms
5.11 ms
5.19 ms
8.89 ms
5.76 ms
5.18 ms
8.08 ms
4.97 ms
4.89 ms
4.70 ms
5.40 ms
7.46 ms
5.09 ms
4.95 ms
4.96 ms
5.01 ms
5.01 ms
4.89 ms
6.22 ms
6.76 ms
6.92 ms
6.10 ms
9.61 ms
5.29 ms
6.13 ms
5.15 ms
5.02 ms
5.03 ms
5.01 ms
6.13 ms
4.78 ms
3.90 ms
6.27 ms
8.07 ms
5.94 ms
4.50 ms
6.13 ms
4.99 ms
6.07 ms
4.80 ms
4.84 ms
4.95 ms
4.95 ms
6.78 ms
4.88 msCheck out similar posts by category:
C/C++, ESP8266/ESP32, Networking
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow