Как проверить, подключена ли плата к Интернету?
Позвольте мне уточнить, я пытаюсь понять, подключен ли мой ESP32 к Интернету или нет, а не к Wi-Fi, так как иногда плата может подключаться к Wi-Fi, но не может связаться ни с какими серверами из-за проблем с маршрутизатором.
Я хочу проверить, подключена ли плата к Интернету или нет, как мне это сделать?
Что у меня есть до сих пор:-
char ssid[] = "Youreally";
char pass[] = "WannaKnow";
void setup(){
WiFi.begin(ssid, pass);
Serial.begin(115200);
}
void loop(){
if (WiFi.status() != WL_CONNECTED) {
Serial.println("Connected");
}
}
@Coder9390, 👍1
Обсуждение1 ответ
Лучший ответ:
▲ 0
Поскольку у вас будет какое-то подключение, кроме Wi-Fi, вы можете регулярно проверять это в своем цикле, например, при использовании MQTT я бы проверил:
if (!mqttClient->connected())
а затем, основываясь на результате, я бы проверил:
if (WiFi.status() != WL_CONNECTED)
так что я могу справиться с соответствующим слоем.
,
@Nino
Смотрите также:
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Контакты RX и TX на esp32
- Почему OTA не работает с платой ESP32-CAM Ai-Thinker?
- ESP32 открывает "captive portal" при подключении
- Аналоговое чтение не работает при использовании WiFi
- Автоматическая веб-страница ESP32 AP
- Чтение данных из Google Таблиц с помощью Nodemcu
- WiFiClient::connected() не работает
пропингуйте известный сервер, @jsotola
Я обычно пингую 8.8.8.8 - DNS-серверы Google., @Majenko
@Majenko Какова максимальная частота, разрешенная для тех, кто, @Coder9390
и где я могу найти информацию об этом, @Coder9390
Без понятия. Это массивный кластер глобально распределенных серверов, и несколько сообщений исчезнут среди огромного объема DNS-трафика., @Majenko
Таким образом, я могу часто связываться с ним, не получая запрета, @Coder9390
Зависит от того, что вы называете "часто". Раз в несколько минут или около того-это не проблема., @Majenko
Что значит для вас "свободно"? Раз в секунду, раз в час? Разве недостаточно проверить это сразу после настройки Wi-Fi? Любая услуга, которую вы используете в Интернете, выдаст вам ошибку, если она недоступна..., @Sim Son
Чтобы облегчить пинг [FabGL](https://github.com/fdivitto/FabGL/blob/master/examples/VGA/NetworkTerminal/NetworkTerminal.ino#L303) имеет пример ping и [ICMP](https://github.com/fdivitto/FabGL/tree/master/src/network) класс., @Majenko
@Majenko, может быть, около 5 секунд, @Coder9390
5 секунд-это слишком часто, и короткий опрос не требуется для обнаружения с низкой задержкой. Просто подключитесь к любому общедоступному серверу websocket, передайте обратный вызов "onEvent", прослушивая тип события "WStype_DISCONNECTED", при котором вы можете быть на 90% уверены, что Интернет отключен. Затем я бы использовал http-запрос, чтобы попытаться загрузить мой собственный веб-сайт robots.txt чтобы подтвердить. Никакого пинга, никаких нарушений политики или испуга провайдера., @dandavis