На компьютере это обычно делается с помощью команды ping. Для платформы ESP32 есть одноименная библиотека ESP32Ping. Зачем это может быть нужно?
- проверить доступность роутера (если прицепить реле, то можно его и перезагрузить);
- узнать не забыли ли вы выключить
утюгПК или ноутбук, когда ушли из дома; - проверить доступность ресурса в сети Интернет;
- определить доступность других самоделок на платформах ESP8266/ESP32;
- здесь может быть ваша "хотелка".
Для первого теста, потребуется ESP32 и какое-нибудь любое другое устройство подключенное к домашней "вафле".
Я буду использовать смартфон. Его IP адрес:
С компьютера это выглядит вот так:
Сделаем тоже самое на ESP32. Идем на GitHub, скачиваем и устанавливаем в среду Arduino IDE эту библиотеку:
Первый пример: esp32_Ping_v1.ino
Подключаем смартфон к домашней сети Wi-Fi, открываем монитор порта на скорости 115200 и ставим галочку "показать отметки времени". Клацаем кнопку перезагрузки на ESP32
Отключаем смартфон от домашней сети и клацаем кнопку перезагрузки еще раз.
По отметкам времени видно, что таймаут ожидания ответа устройства в данной библиотеке составляет одну секунду.
Функция Ping.ping(remote_ip,1) возвращает true если сетевое устройство ответило, false если достучаться по сети до устройства не удалось. Функция Ping.ping() также принимает второй целочисленный параметр count, указывающий, сколько "пингов" должно быть отправлено.
После Ping.ping() вызова, среднее время ответа (в миллисекундах) можно получить с помощью float avg_time_ms = Ping.averageTime();
Библиотека умеет "пинговать" ресурсы по имени хоста. Например проверим доступность сайта Яндекс.
Легко можно выяснить доступен-ли ресурс в сети Интернет, доступен ли сам Интернет, а также несложно организовать "железный" мониторинг какого-нибудь своего ресурса во всемирной паутине.
Библа годная, следующая статья будет посвящена выводу статуса нескольких устройств, находящихся в домашней сети.
Скетчи и библиотека доступны по этой ссылке, не забудьте внести в них параметры подключения к домашней сети Wi-Fi, и IP сетевого устройства, доступность которого вы хотите проверить.
Список всех статей канала доступен по этой ссылке:
Всем удачи!