Closed igorpats closed 4 years ago
Скорее всего у вас на роутере или у провайдера закрыт 123 порт и пакеты запроса к серверу не уходят. Что, например, говорит Windows при попытке синхронизировать его время с сервером ntp? Можно поискать для теста стороннюю программу на комп - синхронизатор времени NTP. Работает ли он? Что сообщает? Другие порты использовать бесполезно. 123 порт - стандартный порт сервиса синхронизации времени. Если сервера времени специально админы на другой порт не переносят. А такого практически не бывает, ибо стандарт. Проверьте работу синхронизации времени на компе. Если в вашей сети она не работает (заблокирована) - смотрите нет ли запрета в настройках роутера и/или пишите письмо админу, пусть разбирается.
Windows 7 на вкладке синхронизация времени по интернету делает это без вопросов с любым рабочим сервером. Вот к примеру использовал стороннюю ntpquerty и в бил туда ip из вашего списка.
Пытался смотреть переменные через монитор порта, никогда не получаю ничего в ответ на запрос.
Ну, тогда у меня нет ответа. Вы единственный из сотен собравших у кого это не работает. Если найдете, что причина все же в скетче - сообщите, исправим. По логике кода я проблем не вижу. Повторить ошибку не могу. Исправить, следовательно, тоже. С моей точки зрения там нечему не работать.
Вот странно, прошу людей скинуть лог с монитора порта, где видно что работает, так никто и не может. Я бы и сам не полез если бы затыков не было после определенной серии неудачных подключений (wifi переподключает). Попробую прошивку с лампы с готовой библиотекой ntp запустить и посмотреть что происходит.
Ну, вот что выводит сразу при включении: 18:21:43.358 -> .... 18:21:45.669 -> WiFi подключен. IP адрес: 192.168.0.96 18:21:45.703 -> 18:21:45.703 -> UDP-сервер на порту 2390 18:21:45.703 -> Инициализация MP3 плеера... 18:21:46.151 -> Звуков будильника найдено: 2 18:21:46.151 -> Звуков рассвета найдено: 6 18:21:46.151 -> Включен эффект 'Радужные переливы' 18:21:46.151 -> NTP-сервер ru.pool.ntp.org -> 192.36.143.130 18:21:46.151 -> Отправка NTP пакета на сервер ru.pool.ntp.org 18:21:46.252 -> UDP пакeт размером 48 от 192.36.143.130, порт 123 18:21:46.252 -> Разбор пакета NTP 18:21:46.252 -> Секунд с 1970: 1577211705
Так если мешает перезагрузка сети при 10 неудачных попытках синхронизации - просто убери эту строчку из скетча.
Ты часом скетч не редактировал? Может удалил кусок, где данные от сервера принимаются и парсятся?
нет, не редактировал. Специально из архива вытаскивал и менял перед опытами. А никаких изменений не вносилось с предыдущих версий. Я просто не помню раньше затыков при включенной синхронизации с ntp. Можно просто в режиме точки доступа использовать для управления. Попробую сегодня покрутить настройки роутера по поводу 123 порта.
Постоянно что-то вносится в версии. На то и смена. Но касательно именно работы с NTP не менялось ничего. Как в версии 1.12 было - так все и осталось. Если тебе не нужна синхронизация (или она вот так вот не работает) - просто выключи ее из приложения - там галочка есть "Использовать синхронизацию с NTP" в настройках часов.
Спасибо, так и делал. Для примера поставил последнюю прошивку с лампы, там библиотека ntp есть. Добавил вывод времени в
порт, показывает корректно, значит оно работает.
Поставил голую прошивку только поменял ssid и пароль сети и залил. Ничего не трогал вообще
Тоже самое. Версия ядра 2.6.1
Что-то мне кажется что это с портами связанно. У моего провайдера динамический ip, спрятанный за natoм. Вариантов получить белый ip почти нет. Буду побывать долбить их.
Вряд ли с портами. 123 порт - стандарт для NTP; У меня тоже не белый IP - но работает же почему-то. Или нет? Затык может быть в строчке (которая на прежних ядрах точно работала!) WiFi.hostByName(ntpServerName, timeServerIP); Потому что IP по которому идет запрос - 192.36.143.130 - аварийный, когда не удается преобразовать имя хоста в IP. Но у меня этот IP откликается, а у вас видимо нет. Когда оно работало - получался каждый раз разный IP сервера из их пула. Попробуйте хотя бы на компе несколько раз подряд выполнить ping ru.pool.ntp.org Каждый раз практически разные IP выдаются. И точно не этот "аварийный". А тут всегда аварийный используется... Надо посмотреть внимательнее этот момент... Пропишите вместо этого аварийного другой, который у вас точно откликается, с которым вам удалось время синхронизировать.
Пингуется всегда с одним адресом
Вот если вбить просто pool.ntp.org
Уже другой адрес что естественно.
Ниже фото что win синхронизирует время с обоими серверами
Просто по 123 порту ничего не идет, и в DMZ добавлял свой ip. Глухо
Делаю тоже самое через 123 порт:
Порт закрыт, любой адрес через 123 не откликается
Я бы не стал верить винде, что она синхронизировалась. Те еще пройдохи. Как она синхронизируется? Не через 123 порт? У нее свое что-то? Ну если 123 порт закрыт (где? На роутере? у провайдера?) так синхронизация и не будет работать... Провайдеру письмо написать - что ответит?
у нас он монополист, ничего отвечать не будет. не хочешь не пользуйся. Буду побывать что-то с провайдером сделать. Порт из вне закрыт как я понимаю
А как утилита, что вы выше приводили синхронизируется? Ей то можно верить. И она, вроде как, тоже по 123 порту работает.
Какая утилита? port cheker просто порты проверяет
NtpQuery. Где-то в самом верху ветки
Позавчера тоже имел проблемы с получением времени по NTP. Версия платформы esp8266 2.6.3 Изначально сменил #define DEFAULT_NTP_SERVER "pool.ntp.org" // было "ru.pool.ntp.org"
WiFi.hostByName(ntpServerName, timeServerIP); - функция не отрабатывает и идет на "аварийный" IP. Я его сменил на тот, который у меня DNS-сился из коммандной строки (вроде начинался на 5.32.x.x - сейчас нет возможности посмотреть, т.к. не дома ) прямо в прошивке
if (!timeServerIP.isSet()) timeServerIP.fromString(F("5.32.x.y")); // тут было 192.36.143.130
После этого все заработало...
ntpquerty неизвестно как работает, но если сервер рабочий, оно данные получает
Alex, вы сменили на тот адрес по которому отозвался pool.ntp.org?
да
в командной строке набрал ping pool.ntp.org IP оттуда вписал в clock.ino в 84-ю строку. Перекомпилил и загрузил в wemos d1. И все заработало.
я побывал играться с локальными серверами по вашей методике.
не получалось, попробую еще, спасибо
wip, а ты с библиотекой ntp не разбирался? странно что через оную работает
Alex, у вас тоже только на 2.6.3 wemos адекватно цветопередачу дает?
Как вариант - попробуйте еще откатить платформу до версии 2.5.2 (это в Менеджере плат). Возможно WiFi.hostByName(ntpServerName, timeServerIP) будет отрабатывать корректно...
Насчет " только на 2.6.3 wemos адекватно цветопередачу дает". Честно говоря - на данный момент у меня матрица на лоджии (19x10) работает на Arduino pro mini + RTC DS3231 (код от Сергея Козлова с оптимизацией памяти). Позавчера пробовал перейти на Wemos D1 mini, но пока отказался от него, т.к. бегущий текст скачет как фиг-знает кто... Ферритов всяких повесил штук 6 и на линии питания и на сигнальную линию. Электролит дополнительный 1000x16В (на меньшее напряжение не нашлось) на питание Wemos напаял, Диод на плюсовую линию к Wemos тоже поставил. С компьютерного блока питания у меня идет 5.01V (замерял достаточно точным UT61). Еще уменьшить напряжение питания у меня нет возможности, разве что какой-то мощный диод еще поставить на питание матрицы... Но эксперименты продолжаю... (у меня достаточно длинная сигнальная линия - 4,5 метра от контроллера до первого RGB-диода)
Alex, матрица 13х19, на wemose перестают вылазить проблемы в отображении исключительно при:
оригинальной fastled 3.3.2(не от гайвера)
esp8266 2.6.3
и таких настройках:
Питание ровно 5, кондер по питанию 500, все
nodemcu и на других конфигурациях работает
При других конфигурациях были такие-же проблемы как и у тебя (текст крашиться, снежинки цвет меняют, в кубике при движении артефакты вылазили)
FastLED 3.3.2 оригинальная; esp8266 2.6.3; настройки абсолютно такие-же (тоже выбрано именно NodeMCU 1.0), кроме Flash Size (FS я выбираю 1Mb, но это влиять не должно). Единственно у меня сам контроллер не NodeMCU, а Wemos D1 mini. Забыл добавить - управляющий сигнал у меня снимается с линии D3 через резистор 220 Ом.
резистор стоит схожего номинала, я побывал на разных платах запускать, для wemosa только на такой конфигурации работает. Настройки это для wemosa скинуты, при использовании wemosa плату выбираем как на фото. Посмотри чтобы других библиотек fastled не было нигде, в папке программы и документах.
У меня портабельный вариант Arduino - все в одной папке. Все библиотеки в D:\arduino-1.8.5\portable\sketchbook\libraries\ Если-бы где были другие библиотеки FastLed - ругалось-бы на дублирование библиотек. Кроме того при компиляции там варнингом выводится версия библиотеки (с путями): pragma message "FastLED version 3.003.002". Попробую еще диод по питанию wemos убрать. Еще жду с Ali другой БП (5V 5А) с подстройкой напряжения - правда не знаю когда придет. Также есть мысля пока запитать wemos от отдельного маломощного БП (может быть даже трансформаторного, а не импульсного) с объединением земель...
У меня такой БП на 10 A. У меня напруга никак не влияет, а вот то что описал очень. и еще тру ее flash download tools
Вот чего я добился, синхронизации с локальной машиной в сети
Посмотрел дома - я прописал аварийным IP 5.135.3.88 Лог у меня такой: ... WiFi подключен. IP адрес: 192.168.0.106
UDP-сервер на порту 2390 Включен эффект 'Водоворот' NTP-сервер pool.ntp.org -> 5.135.3.88 Отправка NTP пакета на сервер pool.ntp.org Таймаут NTP запроса! NTP-сервер pool.ntp.org -> 5.135.3.88 Отправка NTP пакета на сервер pool.ntp.org UDP пакeт размером 48 от 5.135.3.88, порт 123 Разбор пакета NTP Секунд с 1970: 1577301904 19:25 25 декабря 2019 года <- это уже я сам добавил в отладку (разбирался с проблемой TimeZone )...
PS: кстати у меня дома платформа оказалась 2.6.2. Сейчас обновлю до 2.6.3, выпаяю диод и посмотрю насчет фантомным мерцаний...
буду прикручивать ntp на малину или на роутер. На сколько точны данные часики? за какое время и на сколько убегает время?
только на 2.6.3 wemos без артефактов заработал
Решил проблему неработы WiFi.hostByName(ntpServerName, timeServerIP);
Проблема в том, что для контроллера не определен DNS сервер, поэтому hostbyname возращает 0.0.0.0
Чтобы работало - правим GyverMatrixOS_v1.15.ino в функции startWiFi:
if (IP_STA[0] + IP_STA[1] + IP_STA[2] + IP_STA[3] > 0) {
WiFi.config(IPAddress(IP_STA[0], IP_STA[1], IP_STA[2], IP_STA[3]), // 192.168.0.106
IPAddress(IP_STA[0], IP_STA[1], IP_STA[2], 1), // Gateway 192.168.0.1
IPAddress(255, 255, 255, 0),
IPAddress(IP_STA[0], IP_STA[1], IP_STA[2], 1), // DNS1 192.168.0.1
IPAddress(8, 8, 8, 8)); // DNS2 8.8.8.8
WiFi.begin(ssid, pass);
vvip-68, поправь, пожалуйста (см. предыдущее мое сообщение)
ох я ж и валенок, спасибо что натолкнул своими коментами. IPAddress(IP_STA[0], IP_STA[1], IP_STA[2], 1), // Gateway 192.168.0.1 у меня же два роутера, а это адрес как раз второго который и поднимает это соединение и он у меня не такой
Хорошо, добавил. Но если dns не задается - 0.0.0.0 он же по умолчанию IP шлюза (192.168.0.1) использует как DNS... И у всех вроде так и работает...
Если DNS явно через WiFi.config не задано, то WiFi.dnsIP(0) получается (ip unk) (или как-то так - вчера видел у себя в отладке) При этом при любом имени сервера WiFi.hostByName(любое_имя, timeServerIP) timeServerIP будет равно 0.0.0.0 и пойдет на "аварийный" (заданный явно) IP 192.36.143.130 (поэтому "у всех вроде и работает"). А вот если задать явно DNS через WiFi.config, то hostByName отрабатывает корректно. По крайней мере на платформах 2.6.2 и 2.6.3 именно так (добавлял отладочные сообщения и смотрел). PS: Вот нашел и подтверждение, что до версии 2.4.1 включительно все работало без заданного явно DNS, а начиная с версии 2.4.2 перестало https://github.com/esp8266/Arduino/issues/5328
Alex, победил свой wemos?
Пока нет, артефактов стало гораздо меньше (бегущая строка уже не пляшет), но не исчезли совсем - наблюдаются вспышки. Буду еще с питанием мудрить и, может быть, куплю еще экранированный провод (типа микрофонного) и поставлю вместо управляющего (экран одной точной на землю посажу)
Проще nodemcu купить
Никак не могу настроить синхронизацию с ntp сервером. Проблема в следующем: 22:36:02.254 -> NTP-сервер www.belgim.by -> 178.124.164.107 22:36:02.254 -> Отправка NTP пакета на сервер www.belgim.by 22:36:07.075 -> UDP пакeт размером 6 от 192.168.1.218, порт 2390 22:36:07.075 -> Содержимое: $18 0; 22:36:07.244 -> Таймаут NTP запроса! И так постоянно какой-бы адрес не указывал. Не могу понять почему оно пакеты не принимает от сервера. Порт использовал 123 как в исходнике. Пробовал и другие.
У меня тоже проблема была такая. Начал копать с файервола. У меня стоит микротик 951й, я в нем попересоздавал кучу всяких правил, гугл говорит, что проблемы у многих с NTP в микротике, с чем связано не понятно(но мои подозрения, что провайдер блокирует некоторые IP адреса NTP серверов). Заколебался если честно. Через синхронизацию времени винды забиваю сервер ru.pool.ntp.org и вижу что синхронизация успешно. Лезу в микротик и смотрю на какой ИПшник был коннект на 123й порт. Сделал в микротике NTP-клиент+сервер, в клиенте указал полученный IP, ну а в прошивке и винде поставил NTP локальный адрес микротика. Все работает!
(у меня достаточно длинная сигнальная линия - 4,5 метра от контроллера до первого RGB-диода)
Мне кажется проблема артефактов в этом. Где-то тут читал, у АлексГайвера вроде, что проблемы из-за длины могут быть. Может быть попробовать сопротивление поменьше поставить на управляющую ногу?
Мне кажется проблема артефактов в этом
.Меньше длину (4.5м)не сделать, т.к. БП и контроллер - на подоконнике в комнате (в тепле), а гирлянда - на окне лоджии (как раз ближайшим концом к окну), а контроллер выносить "на мороз" (у нас до -35градусов бывает, лоджия не утепленная) считаю неразумным. Кроме того - артефактов при использовании Arduino Pro Mini вообще нет - только на Wemos D1 mini. Буду пробовать уменьшать питание на ленту... С сопротивлением тоже поэкспериментирую...
4.5 метра это всего лишь длинна одной ленты. Отсоедините 50 диодов и посмотри на результат. А что с контроллером произойдет в -35? БП ещё возможно и опасно выносить, он греется немного. Так хоть на время укоротить кабель и посмотреть. У меня схожие условия с вами, гирлянда висит на лоджии холодной. Длинна управляющего метра 3 минимум. 3 соединения по пути на дюпонах. Wemos адекватно заработал только в том случае что описал. Nodemcu почему-то гораздо лояльнее относилась к всему выше сказанному.
Никак не могу настроить синхронизацию с ntp сервером. Проблема в следующем: 22:36:02.254 -> NTP-сервер www.belgim.by -> 178.124.164.107 22:36:02.254 -> Отправка NTP пакета на сервер www.belgim.by 22:36:07.075 -> UDP пакeт размером 6 от 192.168.1.218, порт 2390 22:36:07.075 -> Содержимое: $18 0; 22:36:07.244 -> Таймаут NTP запроса! И так постоянно какой-бы адрес не указывал. Не могу понять почему оно пакеты не принимает от сервера. Порт использовал 123 как в исходнике. Пробовал и другие.