Система записи трека поездки с отображением местоположения в реальном времени.

Мы с семьёй летом часто путешествуем в различные интересные места. Появилось желание организовать систему, которая будет сохранять трек поездки и отображать наше текущее местоположение на сайте в плюс/минус реальном времени.

Последнее, что использовал — это связка android-приложения TrackMe. Hike&Travel Recorder и плагина Trackserver для WordPress.

Плюсы:

  • работает стабильно;
  • трек отправляется на сайт в реальном времени.

Минусы:

  • отправляется только текущее местоположение (если нет интернета, то не отправляется ничего);
  • приложение приходится запускать вручную.

В конечном итоге я решил придумать какую-нибудь систему, которая будет:

  • отправлять не только текущее местоположение, но будет и подгружать предыдущие точки;
  • будет автоматически запускаться при пуске автомобиля.

В итоге вышел такой алгоритм работы:

  • в машине установлен мини-ПК, к которому подключен GPS-приёмник и 4G модем;
  • мини-ПК подключен к автомобилю в USB порт на ЗУ, включенном в прикуриватель;
  • скрипт на мини-ПК получает с приёмника GPS координаты и сохраняет их в БД SQLite3;
  • другой скрипт на мини-ПК выдёргивает из БД SQLite3 некоторое кол-во неотправленных данных (координат), отправляет их на внешний сервер и помечает эти данные как отправленные;
  • на внешнем сервере полученные данные (координаты) сохраняются в БД MariaDB;
  • на внешнем сервере на основании данных (координат) из БД MariaDB генерируются файлы треков в формате gpx;
  • самый новый файл сохраняется с именем last.gpx и, как и все файлы gpx доступен из интернета;
  • сайт всегда отображает файл last.gpx.

Для реализации подобной задумки я использовал следующие компоненты:

  • мини-ПК Orange PI PC2 (уже был у меня)
  • Приёмник GPS/GLONASS USB, купленный на AliExpress
  • 4G/3G модем USB/WIFI, тоже с AliExpress
  • VDS сервер сначала на своём домашнем оборудовании. Позже на арендованном.

Описание будет состоять из четырёх частей (помимо этой):

Часть 1: Установка GPSD, получение GPS координат и сохранение их в БД SQLite3.

Часть 2: Отправка GPS координат из БД SQLite3 на внешний сервер.

Часть 3: Приём GPS координат и сохранение их в БД MariaDB.

Часть 4: Генерация gpx-файлов.

Запись опубликована в рубрике gps, linux. Добавьте в закладки постоянную ссылку.

Добавить комментарий