Сделать gps часы с ардуино

Сделать gps часы с ардуино
Сделать gps часы с ардуино
Anonim

Сделать GPS-часы с Arduino

Вам нужно время GPS на вашем столе? В этой статье вы узнаете, как использовать модуль GPS для получения времени, даты и вашего местоположения, отображаемых на ЖК-дисплее с помощью Arduino.

Требования

  • Компьютер с установленной IDE Arduino
  • Ардуино (я использую Arduino Mega)
  • ЖК-дисплей
  • Модуль GPS (я использую EM-411)
  • Макет, перемычки и 5-килограммовый горшок
  • Библиотека TinyGPS (ссылка ниже)

Введение

Разработка Глобальной системы позиционирования или GPS началась в начале 1970-х годов. Каждая страна (Россия, США, Китай и т. Д.) Имеет свою собственную систему, но большинство подразделений GPS по всему миру используют систему США.

Каждый спутник для каждой системы имеет атомные часы, которые непрерывно контролируются и устанавливаются NORAD каждый день:

«Концептуально приемник измеряет TOAs (по собственным часам) четырех спутниковых сигналов. Из TOAs и TOTs приемник формирует четыре значения времени полета (TOF), которые (с учетом скорости света) приблизительно эквивалентны к разнице частот приемника-спутника. Затем приемник вычисляет свое трехмерное положение и отклонение часов от четырех TOF. " (Википедия)

$$ \ text {Примечание: TOA = Время прибытия, TOT = Время передачи} $$

Самые недорогие GPS-приемники имеют точность около 20 метров для большинства мест на Земле. Здесь мы узнаем, как узнать наши собственные GPS-часы, используя Arduino.

аппаратные средства

Мой модуль GPS имеет 6 контактов: GND, Vin, Tx, Rx & GND. 6-й вывод - NC. GND подключен к GND, Vin к Vin, TX подключен к выходу Arduino 10, а вывод Rx не подключен ни к чему, так как я не отправляю никаких сообщений в модуль GPS. Мой модуль передает спутниковые данные, используя RS-232 с 4800 бит / с, который поступает на контакт 10.

Это модуль, спереди и сзади.

Image
Image

Модуль отправляет так называемые NMEA-предложения. Здесь вы можете увидеть пример одного предложения NMEA и объяснения этого предложения (выдержка из таблицы):

Image
Image

Все эти данные получены Arduino Mega на булавке 10. Библиотека TinyGPS читает предложение GPGGA и предложение GPRMC. (Подробные сведения о GPRMC см. В техническом описании).

Arduino не находится в схеме, поэтому, пожалуйста, следуйте соединениям.

Image
Image

Программного обеспечения

При подаче питания модуль GPS занимает некоторое время, чтобы получить правильное исправление на спутниках. Когда фиксированное положение сделано, модуль отправляет предложения NMEA в Arduino. Библиотека TinyGPS имеет одну функцию для получения даты и времени из предложения GPRMC. Он называется crack_datetime (), и он принимает семь переменных: год, месяц, день, час, минута, секунды и сотые. Вызов функции выглядит следующим образом:

gps.crack_datetime (& year, & month, & day, & hour, & minute, & second, &hundredths);

Вызов этой функции дает вам правильные значения в переменных, если все с оборудованием в порядке.

Чтобы получить нашу позицию, вы вызываете функцию f_get_position (). Эта функция принимает две переменные, широту и долготу. Чтобы вызвать эту функцию, вы пишете это в своем коде:

gps.f_get_position (& широта и долгота);

Эскиз в ссылке показывает, как работают обе функции.

Загрузки

Вот все файлы, которые вам понадобятся:

Эскиз кода исходного кода

Вывод

В этой статье я показал вам, как получить время, дату и местоположение из модуля GPS, а затем отобразить все это на ЖК-дисплее. Теперь вы знаете, где вы!

Фото и видео

На фотографиях и видео я добавил смещение к широте и долготе для моей конфиденциальности. Комната, в которой я работаю, находится в подвале и имеет четыре бетонные стены. Чтобы получить лучший прием, мне пришлось припаять кабель между модулем GPS и заголовком соединений. Затем я поместил GPS в окно.

Image
Image
Image
Image
Image
Image

Попробуйте этот проект сами! Получить спецификацию.