Рассчитать часовой пояс по координатам GPS
У меня есть модуль GPS uBlox NEO-6M, и он выводит долготу и широту. Он также выводит время, которое является UTC. Я хочу использовать координаты GPS для вычисления часового пояса, а затем вычесть и добавить часы на основе этого. Возможно ли это вообще? Я знаю, что могу сделать это с помощью Wi-Fi, но я хочу использовать GPS, чтобы сделать это.
1 ответ
Часовые пояса-это политические конструкции, такие же, как правила переключения летнего и зимнего времени. Вам понадобится карта, чтобы найти страну/регион и его текущий местный часовой пояс.
Ваш коммерческий автомобильный спутниковый навигатор, вероятно/возможно, оснащен такой картографической информацией.
Я хочу вычислить его с помощью Arduino и GPS. Я знаю, что такое часовой пояс, но мне нужно знать его, чтобы я мог иметь правильное время, если я нахожусь в другом регионе. Я не могу подключить Arduino ни к чему, потому что это самодельные часы., @DragonflyRobotics
Вы не можете вычислить его. Вы можете посмотреть его на карте, которую вы храните в arduino. Удачи., @DataFiddler
Да, извините, я имел в виду поиск., @DragonflyRobotics
Так что есть способ хранить карту на Arduino. У меня есть Arduino Nano 33 IOT., @DragonflyRobotics
Если граница между двумя часовыми поясами представляет собой простую линию, состоящую из упорядоченного списка точек (более или менее в направлении Север-Юг), вы можете легко вычислить, находится ли ваше местоположение к востоку или западу от этой границы. (методом линейной интерполяции) Это простой частный случай общего вопроса, находится ли точка внутри данной области или нет. Вся эта математика не является специфичной для arduino. Хранение точек этих пограничных линий немного утомительно, но просто., @DataFiddler
@DragonflyRobotics если это nano IOT, подключитесь к Wi-Fi, чтобы получить часовой пояс напрямую. Без обоих *много* памяти и программирования усилий - нет шансов!, @Sim Son
Я знаю, но я хочу попробовать это с помощью GPS. Спасибо за помощь., @DragonflyRobotics
- Почему мои часы реального времени показывают неверное время с моего ПК?
- Несколько неблокирующих таймеров обратного отсчета?
- Получение кода FFT arduino для работы более 9 часов с использованием micros()
- Как повторить код
- Вопрос по программированию для Time Arduino
- Как справиться с rollover millis()?
- Печать string and integer LCD
- Как получить текущее время и дату в Arduino без внешнего источника?
Обычно вы действительно используете внутренне сохраненную карту для получения часового пояса. Но сохранить подробную карту часовых поясов может быть непросто. Память довольно редка. Но вы можете пойти на некоторые компромиссы и упростить представление часовых поясов (возможно, используя долготу в качестве основного значения, имея массив долгот границ часовых поясов, а затем некоторые операторы if для особых случаев, когда одна и та же долгота имеет несколько часовых поясов). Это не всегда будет работать, так как часовые пояса могут быть сложными в деталях, но это будет хорошо в большинстве случаев, @chrisl
Есть ли какой-нибудь пример кода, поскольку это звучит довольно сложно?, @DragonflyRobotics
Я сомневаюсь, что вы сможете поместить шейп-файл часового пояса в память вашего Arduino. Если вы все равно хотите попробовать, посмотрите на [эти](https://forum.arduino.cc/index.php?topic=166099.0) [обсуждения](https://forum.arduino.cc/index.php?topic=727928.0) и автономные ресурсы, перечисленные в [этом ответе](https://stackoverflow.com/a/16086964). Некоторые сведения см. также в разделе [Проблема со временем и часовыми поясами]. (https://www.youtube.com/watch?v=-5wpm-gesOY)., @Edgar Bonet
Исходя из опыта, даже профессиональные GPS-устройства со встроенными картами часто ошибаются. Я плыл из Германии в Борнхольм прошлым летом, когда мой GPS-навигатор за 800 долларов установил часовой пояс на восточноевропейское время. Даже по простым 15° часовым поясам, один был бы лучше, чем это..., @PMF