Время с NTP сервера
- Войдите на сайт для отправки комментариев
Втр, 08/12/2015 - 23:49
Здравствуйте!
Поставил датчик движения, который включает свет, теперь хочу сделать чтобы он работал только ночью.
Время хочу получать с NTP сервера.
При каждом срабатывание датчика лезть в интернет нецелесообразно, по этому хочу сделать так:
В setup ардуино подлючается к NTP серверу и кладёт значение в переменную startTime, потом, когда срабатывает датчик движения время узнаётся startTime+millis().
Сработает?
Какие недостатки у данного метода?
Да, сработает.
Вам нужна еще одна переменная (значение millis(), во время обращения к серверу), которую нужно будет вычитать.
Я обычно добавляю обращение к серверу, примерно раз в 1 час, для точности.
Но я все это делаю, только ели заказчик просит об этом явно. Другой подход - использование ds3231, стоит всего 1 доллар, плюс батарейка.
Да, сработает.
Вам нужна еще одна переменная (значение millis(), во время обращения к серверу), которую нужно будет вычитать.
Я обычно добавляю обращение к серверу, примерно раз в 1 час, для точности.
А переполнение millis как учитывать? Проверка текущего состояния, если меньше времени запроса, то от максимума вычитать время запроса и добавлять текущее?
Просто сам думаю от безделья часы с термометром и вафлей замутить.
Проще не изголяться а периодически обновлять время сервера. А еще лучше - поставить RTC.
Безделье - это плохо.
если МК ничем не занят, то можно еще набросать скетч часов и синхронизировать время по ntp раз в сутки
если МК ничем не занят, то можно еще набросать скетч часов и синхронизировать время по ntp раз в сутки
странный совет, учитывая, что об этом и идет речь...
странный совет, учитывая, что об этом и идет речь...
пост #2 сподвиг меня на это
Здравствуйте!
Поставил датчик движения, который включает свет, теперь хочу сделать чтобы он работал только ночью.
Время хочу получать с NTP сервера.
При каждом срабатывание датчика лезть в интернет нецелесообразно, по этому хочу сделать так:
В setup ардуино подлючается к NTP серверу и кладёт значение в переменную startTime, потом, когда срабатывает датчик движения время узнаётся startTime+millis().
Сработает?
Какие недостатки у данного метода?
1. Если у pir датчик. то там должен быть фоторезистор который "отсекае" день и начинает работать на движение только при определенном уровне освещенности.
2. Предлагаемый метод (NTP сервер) будет рабоать (я его использую) только маленькое замечание. NTP сервер обычно крутится под linux и время приходит в формате unsigned long - число секунд с момента 01.01.1970. По этому прибавлять надо только секунды.