使用ESP32 Arduino检查互联网连接的最快方法

问题描述 投票:0回答:2

更新:我知道,在这种情况下,WIFI AP仍处于打开状态并处于活动状态,芯片不应该知道有关更改的信息,但问题仍然存在。我应该如何检查连接性?

在我的项目中,互联网连接非常重要。

经过一些测试,我经历过,如果我从路由器上拔出以太网电缆,ESP32仍然认为它仍然可以连接到WIFI,甚至是

WiFi.status() == WL_CONNECTED

在这种情况下总是正确的。

因此,我尝试对google.com进行ping操作以检查连接。此方法有效,但要花点时间才能获得结果。

我应如何以最少的资源成本和时间检查连接性?

arduino arduino-esp8266 esp32
2个回答
0
投票

甚至WiFi.status()也不可靠,因为Espressif没有记录详细信息。如github上的问题所示,该API容易出错。所以实际上问题是。您真正想检查什么? -在我的定义中,互联网连接表示与ISP的线路(或空中)连接没有中断。这包括

  • 我的AP
  • 我的路由器
  • 我地下室中的ISP光纤转换器,
  • 行本身和
  • ISPs网关

这是我用来确定连接是否打开的方法。我ping ISP网关服务器的IP地址。因此,您可以节省时间(无需DNS解析,无需在Internet上跳过节点。如果您想知道是否已定义服务器上的某些服务可用,那虽然很慢,但您100%可以肯定。只是澄清一下:“ ESP32仍然认为,它仍然连接到WIFI”-是的,这是必须的,因为根据API,这可以确保客户端到AP的连接,而不是AP到其他地方的连接。通常,配置良好的路由器会通知其客户端有关连接丢失的信息(在这种情况下为已连接的AP),并且这些路由器会(根据其配置)通知其客户端(或有时不会或很晚)]


0
投票

从技术上讲,该结果是正确的,因为您仍连接到wifi!仅仅因为拔下以太网电缆并不意味着您的wifi就停止了。这意味着您的wifi无法连接到互联网。您可以尝试ping您的isp的dns服务器。它比Google离您更近。只是一个老人的杂物...

© www.soinside.com 2019 - 2024. All rights reserved.