• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Проверка доступности NTP сервера.

Народ, а можно с ESP8266 проверить, доступен NTP сервер или нет? Я указываю в качестве сервера europe.pool.ntp.org (много где его видел). И в принципе когда подключаюсь к домашнему провайдеру, все работает без проблем. Но вот я хочу, чтобы когда сервер недоступен, время не бралось из инета. У меня RTC стоит DS1307. А то вот скажем сменилась точка или еще что, устройство начинает работать как точка доступа и ставит 1970 год. Еще у меня дома лежит маршрутизатор с 4G модемом с дачи. Инет на нем есть. Но вот как подключаюсь к нему с ESP, он время не выдает, галимотью какую-то ставит. 1980 год какой-то.
Вроде есть библиотека NTPClient, но там проверку я не нашел. Подскажите как сделать!
 

pvvx

Активный участник сообщества
Народ, а можно с ESP8266 проверить, доступен NTP сервер или нет? Я указываю в качестве сервера europe.pool.ntp.org (много где его видел).
Запросите ip по имени "europe.pool.ntp.org".
if (WiFi.hostByName(host, remote_addr, timeout)) ...

И в принципе когда подключаюсь к домашнему провайдеру, все работает без проблем. Но вот я хочу, чтобы когда сервер недоступен, время не бралось из инета.
Если hostByName не дает IP - не включайте NTPClient
Если отдает = включите NTPClient.
 

goodwin

Member
Сижу за NAT-ом прова. На некоторых его внешних адресах не ходит NTP протокол, а адреса NTP серверов вполне пингуются. При обрывах роутер может переподключиться на такой. Приходится переподключаться врукопашную - искать рабочий. По идее надо бы животворящий пендаль выписать админам, но неохота ;)
 
Интересно! Имя NTP сервера в IP разрешает, но время не выдает! В чем может быть заковыка???
 

goodwin

Member
UDP, порт 123. Скорее всего теряются ответные пакеты в NAT. Не думаю, что настолько криворукие, то 123 порт закрыли...
 
А как же тогда интересно быть? По какому признаку сделать, что бы это неправильное время в RTC не передавалось?
 

goodwin

Member
Оно и не передается никуда, потому как не принимается ;) Если ответ пришел в течении времени тайм-аута, то значит все пучком. Не пришел - брать из RTC.
 

goodwin

Member
От цифирьки 0 (Unix Time) в переменной дурино-библиОтеки, которая возвращается при неуспешном запросе. Вот вместо этого нуля и надо воткнуть цифирьку от RTC, если таковое случилось...
 
Народ, а чего я никогда не задумывался. Вот комп заснул и порт отключился. Как подключиться к нему снова без перепрошивки платы? Ну наверное еще можно использовать утилиту записи файлов. Но это ИМХО не совсем правильно.
 
Смешно.
А теперь серьёзно. Можно ли подключиться?
А вот если я на ночь комп выключил. Можно утром включив компьютер подключить порт и смотреть что там происходит?
 

CodeNameHawk

Moderator
Команда форума
А вот если я на ночь комп выключил. Можно утром включив компьютер подключить порт и смотреть что там происходит?
Если серьёзно то я не против.
Но в схеме с автоматом программирования надо одключить лишние выводы, оставив только Rx Tx ну и землю.
 
Последнее редактирование:
Если серьёзно то я не против.
Но в схеме с автоматом программирования надо одключить лишние выводы, оставив только Rx Tx ну и землю.
А отсюда можно поподробнее, вроде я ничего лишнего не подключал.
Ну и как это позволит подключаться к плате скажем после перезагрузки компьютера?
 
Мне кажется вы меня не поняли. Я не спрашиваю что помешает. Я спрашиваю как подключиться?
Вот я вечером компилирую скетч, открываю порт и вижу что происходит. На ночь я комп выключаю. Утром включаю и хочу снова подключиться к монитору порта. Я открываю ардуино иде, открываю монитор порта и там ничего нет. Но устройство работает, т.к. сайт работает, время тикает и датчики шлют показания. Это я вижу в веб морде. Но показаний в мониторе не вижу. Можно ли подключиться и смотреть без перепрошивки и если да, то как?
 

CodeNameHawk

Moderator
Команда форума
Я спрашиваю как подключиться?
Чтобы ответить на этот вопрос я должен знать как вы подключаетесь к есп.
Утром включаю и хочу снова подключиться к монитору порта. Я открываю ардуино иде, открываю монитор порта и там ничего нет.
Там должны быть видны собщеия из сериал. Попробуйте программу hterm и чтобы было понятно почему у вас не получается то, что у остальных работает, покажите фото платы, лог. заливки скетча, и скриншот из hterm.
 
Чтобы ответить на этот вопрос я должен знать как вы подключаетесь к есп.

Там должны быть видны собщеия из сериал. Попробуйте программу hterm и чтобы было понятно почему у вас не получается то, что у остальных работает, покажите фото платы, лог. заливки скетча, и скриншот из hterm.
По USB подключаюсь с компьютера.
Плата любая, хоть ESP8266, хоть Arduino UNO или nano. После перезагрузки ПК сообщен ия на монитор Com портп не идут. Вот если скетч залить снова, то все начинает работать.
 

CodeNameHawk

Moderator
Команда форума
"Помогите, помогите."
Я вам помогу, сделайте это и это.
"Я ничего не буду делать, вы так помогите."
 
Но я же ответил на ваши вопросы! Задавайте тогда более конкретные вопросы. Что я не сделал что вы советовали???
 
Сверху Снизу