Wayfinder com gps bluetooth как пользоваться

Обновлено: 04.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Обычно настольные компьютеры и ноутбуки продаются без GPS чипа. Это можно объяснить тем, что стационарному устройству не нужно определять координаты. Тем не менее имеется несколько специализированных приложений, для которых нужен GPS, например: составление списка Точек Доступа Wi-Fi с их точными координатами. Конечно, можно купить внешний GPS приёмник, который обойдётся вам буквально в несколько долларов (от трёх долларов вместе с доставкой). Но есть ещё более бесплатный вариант — использовать GPS сенсор вашего телефона Android.

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

Протокол NMEA и демон GPS приёмников

Начнём с небольшой матчасти.

NMEA 0183 (от «National Marine Electronics Association») — стандарт определяющий текстовый протокол связи морского (как правило, навигационного) оборудования (или оборудования, используемого в поездах) между собой. Стал особенно популярен в связи с распространением GPS-приёмников, использующих этот стандарт.

Говоря простым языком, NMEA это способ передачи координат и другой сопутствующей информации в виде специально организованных данных, передающихся в виде простого текста. Пример строк NMEA:

Именно с использованием этого протокола мы будем отправлять GPS координаты с телефона на компьютер.

gpsd — это интерфейс демона для GPS приёмников. Дело в том, что GPS приёмники выводят данные в самом разном виде: некоторые из них поддерживают протокол NMEA, а некоторые используют свои собственные бинарные форматы. Если бы программы напрямую работали с GPS приёмниками, то каждой бы из них нужно было реализовывать поддержку каждого устройства. Для упрощения этой ситуации и используется gpsd, эта служба прослушивает входящие данные с GPS приёмников, причём поддерживает множество форматов и устройств. Служба gpsd автоматически определяет формат входящих данных, распознаёт их и делает доступными на сокете tcp://localhost:2947 (порт можно изменить в настройках) для любых программ в операционной системе. То есть если нужно, чтобы программа умела получать поток GPS данных, то достаточно в ней реализовать получение данных от tcp://localhost:2947 и понимание формата gpsd, и после этого программа сможет работать с большинством GPS приёмников!

В моём дистрибутиве следующие типы драйверов скомпилированы в gpsd:

  • Экспорт сокетов
  • Экспорт совместной памяти
  • Экспорт DBUS
  • Функции службы времени
  • PPS

Как можно увидеть, многие устройства передают типы пакетов отличные от NMEA. Для некоторых устройств реализованы дополнительные функции подстройки переключения режима, скорости и темпа.

Как можно передать GPS данные на компьютер в реальном времени

Есть разные способы передавать данные от телефона в компьютер:

  • Bluetooth
  • USB
  • по сети (Wi-Fi, Интернет)

Самый простой способ — по сети. Bluetooth и USB требуют дополнительной настройки.

Для передачи по сети нужно, чтобы у телефона был доступный с компьютера IP адрес — в локальной сети Wi-Fi это довольно просто. Если же вы вдалеке от Wi-Fi роутера, то можно использовать в качестве Точки Доступа сам телефон — в этом случае он также будет доступен по IP с ноутбука. Даже если телефон далеко от компьютера, он всё равно может передавать GPS данные не имея белого IP — но для этого нужно, чтобы оба устройства были подключены к одной VPN.

Программы для передачи GPS с телефона на компьютер

Следующая таблица взята отсюда. Я не знаю, насколько она актуальная — вполне возможно, что когда я это пишу и уж тем более когда вы это читаете, появились новые программы для этой функции — кстати, пишите их в комментариях, если вы знаете другие программы.

Имя Через TCP порт Лицензия
ShareGPS Bluetooth, USB 50000 бесплатная
BlueNMEA Bluetooth, USB 4352 бесплатная
Solidsync Network/Bluetooth GPS Bluetooth, Wifi 25010 2.99 USD
Symarctic ExtGPS Bluetooth бесплатная
Bluetooth GPS Output Bluetooth пробный период 10 минут или 0.92 USD
GPS 2 Bluetooth v.4 Bluetooth бесплатная, просто виджет

Я буду использовать программу Share GPS — просто потому, то она шла первой по списку и у меня с ней всё получилось. Хотя нужно отметить, программа скорее условно бесплатная: бесплатно можно создать только одно подключение, к этому одному подключению может подсоединиться только одно устройство, некоторые продвинутые функции доступны только в премиум версии. Но для наших целей бесплатных возможностей предостаточно.

Как узнать IP адрес телефона

При отправке GPS данных телефон может выступать в качестве сервера, к которому мы подключаемся, либо может быть клиентом и подключаться в службе для передачи ей GPS потока. Первый вариант, когда телефон работает как сервер, является более простым. Нам нужно только знать локальный IP адрес телефона.

Если ваш телефон и компьютер находятся в одной локальной сети, например, подключены к одному роутеру по Wi-Fi, либо телефон подключён по Wi-Fi, а ноутбук по проводу, то локальный IP телефона можно посмотреть перейдя в свойства Wi-Fi подключения:


Если вы находитесь вдали от роутера, то вы можете использовать телефон как Точку Доступа — в этом случае:

  • телефон и ноутбук окажутся вновь в одной локальной сети
  • ноутбук сможет использовать Интернет подключение телефона (например, для загрузки карт)

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


То есть телефон в этой ситуации выступает в качестве роутера и предыдущей командой мы посмотрели IP адрес этого роутера, который оказался 192.168.43.1.

Как настроить Share GPS

На вкладке GPS STATUS вы можете просмотреть текущий статус и координаты GPS.


Переходим в CONNECTIONS и нажимаем кнопку ADD


Снимаем галочку Setup by Activity


Кликаем на Data Type


и выбираем Standard NMEA format


Нажимаем OK.


Нажимаем на Connection Method и выбираем Use TCP/IP to send NMEA GPS to PC. The IP addresses of the devices are known:


Придумываем и вводим любое имя для подключения:


Нажимаем кнопку NEXT.


Здесь можно изменить порт, который по умолчанию установлен на 50000. Меня устраивает стандартный порт, поэтому я просто нажимаю OK.


Когда всё готово, нажмите на подключение, чтобы активировать его. Если подключение перешло в статус Listening, значит ваш телефон готов для отправки GPS информации. Если статус Idle, то значит соединение не активно (не используется и не прослушивает порт).


Проверка поступающих GPS данных по протоколу NMEA

На самом деле, телефон будет работать как простейший веб-сервер, который будет отправлять поток данных в виде простого текста. Поэтому работу можно проверить, к примеру, командой curl (укажите IP вашего телефона, а также укажите правильный порт, если вы изменили порт по умолчанию, либо используете другую программу):

Предыдущая команда завершилась ошибкой:


Если пошёл поток данных, значит всё работает.

На телефоне статус поменялся на Connected.


Как запустить gpsd для получения GPS с телефона

Останавливаем предыдущую команду cURL, если вы этого ещё не сделали, поскольку в бесплатном варианте программа разрешает только одно подключение.

Теперь нужно установить gpsd.

В Debain, Kali Linux, Linux Mint, Ubuntu и их производные установка делается следующей командой:

В Arch Linux, BlackArch и их производные установка делается так:

Для запуска gpsd используйте команду (в ней замените IP адрес и порт на свои значения):

Опция -N нужна для того, чтобы служба не уходила в фон (не превращалась в демона). После отладки, когда вы убедитесь, что всё работает, опцию -N можно не использовать.

Если что-то не так — программа сразу завершает работу, либо работает, но в дальнейшем другие приложения не получают GPS информацию, то используйте опцию -D, после которой укажите число для увеличения уровня вербальности. Например, -D 1 для краткого вывода информации или -D 10 для очень подробного вывода:

Как проверить, работает ли gpsd

Даже после успешного запуска gpsd, визуально ничего не происходит. Для проверки, поступают ли данные от gpsd, запустите программу:

Эта программа будет показывать координаты, время, скорость, статус и другую сопутствующую информацию.


Карта на Linux для GPS. Запись трека движения на Linux по GPS

В качестве приложения, которое принимает GPS координаты и показывает расположение на карте, а также записывает путь движения, я буду использовать FoxtrotGPS — лёгкое и быстрое картографическое приложение.

FoxtrotGPS — это простое в использовании бесплатное приложение GPS/GIS с открытым исходным кодом, которое хорошо работает на небольших экранах и особенно подходит для сенсорного ввода. FoxtrotGPS находится в свободном доступе для публичного использования, распространения и изменения в соответствии с условиями GNU General Public License 2.0 (GPLv2).

Для установки FoxtrotGPS в Debain, Kali Linux, Linux Mint, Ubuntu и их производные выполните команду:

Для установки foxtrotgps в Arch Linux, BlackArch и их производные выполните команды:

Если служба gpsd запущена, то программа сразу покажет ваше расположение:



2. Полноэкранный режим (F11)

3. Увеличение карты

4. Уменьшение карты

5. Автоцентр на вашем расположении

6. Следующий репозиторий карт (поддерживается сразу несколько бесплатных карт!)

7. Предыдущий репозиторий карт

8. Включить запись маршрута

Настройка FoxtrotGPS


На первой вкладке настроек показывается

  • текущая скорость
  • средняя скорость
  • максимальная скорость
  • длина пути
  • время записи трека
  • данные GPS (координаты и время)
  • количество видимых спутников

На следующей вкладке можно включить или отключить запись маршрута. Если нажать кнопку Split, то запись продолжится в новый файл.


На третьей вкладке настроек можно выбрать карту, систему единиц, подключить датчик сердечного ритма, а также поменять адрес и порт GPSD службы, если вы хотите использовать нестандартные значения.


Карта по умолчанию в FoxtrotGPS выглядит так:


В FoxtrotGPS вы можете выбрать спутликовый вид от Google:


Ещё есть такой вариант:


А одна из карт показывает на водяных знаках необходимость использовать API:


Симуляция работы GPS приёмника

Некоторые программы, например, Google Earth, по известным только им причинам не работают с GPSD — они пытаются сканировать систему в поисках приёмника GPS.

Примеры таких устройств:

  • /dev/ttyS0 (serial device)
  • /dev/ttyUSB0 (USB устройства)
  • /dev/gpsd0 (Generic GPS device 0)

Вы можете имитировать работу таких устройств с помощью socat командами вида (IP, номера портов, а также номера устройств меняйте на свои):

В принципе, с таких устройств становится возможным считывать данные — я проверял с помощью программ cat и bettercap.

Но Google Earth у меня так и не заработала.

Если вы увидели какую-то ошибку в моих командах socat, либо вам удалось успешно работать с такими виртуальными устройствами в каких-либо программах, то просьба написать об этом в комментариях.

GPS в Bettercap

По умолчанию Bettercap использует устройство /dev/ttyUSB0 (можно поменять в настройках). Для того, чтобы симулировать будто бы GPS информация приходит от устройства /dev/ttyUSB0, запускаю следующую команду:

Затем запускаем Bettercap

Внутри сессии Bettercap включаем GPS модуль и выводим текущие координаты:

На моей системе эта команда успешно вывела информацию о координатах, качестве и количестве видимых спутников.


GPS в Kismet

Kismet стала известной как программа для сбора информации о беспроводных точках доступа, в том числе с их привязкой к GPS координатам. В настоящее время программа бурно развивается и поддерживает множество источников радиосигналов, в том числе:

Kismet может работать с разными источниками GPS, в том числе напрямую с GPS ресиверами или получая данные по сети.

Поддерживаемые типы GPS:

Пример настройки для получения данных от последовательного устройства:

Пример настройки для получения данных непосредственно из сети (можно подключиться к телефону вместо GPSD и получать поток GPS координат):

Пример настройки для считывания данных от GPSD службы:

GPS приёмники для ноутбука

Если вам нужен внешний GPS приёмник для вашего ноутбука или компьютера, который вы можете подключить по USB и получать текущие координаты независимо от телефона, то вы можете выбрать любое из следующих устройств, благо цены на них невысокие:

  • BEITIAN BS-71U (поддерживает NMEA-0183)
  • BEITIAN BS-70U (поддерживает NMEA-0183)
  • BN-808 USB GPS Receiver (поддерживает NMEA-0183)
  • BT-708 GPS Receiver (поддерживает NMEA-0183)
  • BU353S4 (поддерживает NMEA-0183)
  • VK-172
  • VK-162
  • gps usb receiver

Автоматический запуск службы GPSD с опциями и на определённом устройстве

При желании, вы можете выполнить настройку службы GPSD в файле /etc/default/gpsd:

Укажите опции как значение GPSD_OPTIONS, а желаемое устройство, в том числе вида tcp://*, укажите в качестве значения DEVICES.

Для запуска в фоне службы:

Для включения автоматического запуска gpsd при каждой загрузке компьютера:


Интернет

GPS Bluetooth представляет собой приёмник GPS, способный соединяться с андроид-устройствами, таким как: планшеты, смартфоны, разработанные на базе указанной операционной системы и передавать им GPS-сигнал с модуля устройства. Средняя стоимость топовой версии такого агрегата находится в районе 100$, однако китайские производители предлагают модели устройств GPS блютуз за 30$-40$.

GPS-приёмники от GlobalSat

Стоит отметить, что производители приёмников изготавливают их из добротных материалов и в компактных размерах. Так к примеру, выносной приёмник от производителя GlobalSat, модельный номер которого BU-353s4 произведён из качественного пластика, под которым помимо самого GPS-устройства содержится активная антенна, так называемая GPS-mouse. Данный аппарат может быть подключён, как к мобильному телефону и планшету, так и к ноутбуку и персональному компьютеру. Для синхронизации устройств необходимо иметь соответствующее установленное навигационное программное обеспечение на телефоне, «таблетке» или компьютере.

Более взрослой версией приёмника от всё-того же производителя GlobalSat является модель BR-355s4. Данная версия продукта обладает немного лучшими характеристиками, однако, платой за них является более чем в два раза повышенное энергопотребление.

Тем не менее явным фаворитам с точки зрения технической оснащённости, сравнивая с двумя предыдущими моделями приёмников от GlobalSat, является GlobalSat BT-821. Его функциональные возможности позволяют устройству синхронизироваться с большим количеством гаджетов. При этом, аппарат отличается пониженным энергопотреблением.

bluetooth gps android

Как легко подключить Bluetooth GPS к Android-устройству?

О том, как подключить и какое программное обеспечение следует устанавливать на андроид-устройства, которые с завода обделены функцией GPS-навигатора рассмотрим далее.

Для начала, имея в наличии оба устройства, необходимо скачать с Play Market-а специальное приложение, которое называется «Bluetooth GPS провайдер». Данная программка находится в магазине приложений от «Google» в свободном доступе.

  1. включить приёмник для совмещения с телефоном/планшетом;
  2. запустить на вашем гаджете функцию Bluetooth;
  3. в настройках, в разделе Bluetooth найти наш навигационный приёмник. Название соединения, как правило, является названием модели приёмника;
  4. активировать в настройках модуль «Местоположение», разрешающий открытие доступа к навигационным данным пользователя.

Далее можно свободно осуществлять использование навигационных функций, которые предоставляет приёмник.

gps своими руками

Bluetooth GPS-приёмник, сделанный своими руками.

В случае, если по каким-то причинам вы не хотите тратиться на покупку Bluetooth GPS Android навигатора, можно сделать его самостоятельным образом.

Для реализации плана по созданию устройства навигации в качестве основного элемента аппарата (приёмника) можно взять модуль EB-500. Он обладает 66 каналами, при том, что общая его стоимость составляет каких-то 15$. Отличительными и, в то же время, положительными чертами модуля данной модели является его маленький размер и возможность его лёгкой пайки на плату.

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

Эта статья объяснит нашим читателям, как можно подключить внешний Bluеtooth GРS приемник к Аndroid устройству без встроенного датчика и затем использовать его как полноценный навигатор.

Что нужно иметь

GPS

Для того чтобы успешно использовать ваше Andrоid-устройство как навигатор, убедитесь в следующем:

  1. У вас есть Bluetоoth GPS приемник с поддержкой подключения к Androіd-девайсам.
  2. Плaншет/телефон с Bluetooth модулем.
  3. Установлена программа Bluetооth GPS провайдер для Andrоіd, которая бесплатно доступна в Gооglе Plаy.

Инструкция по подключению

Итак, чтобы связать ваш внешний GPS с Bluеtооth вашего Аndrоіd,выполните следующие указания:

  • Включите внешний модуль.
  • На мобильном девайсе включите Bluеtоoth.
  • Откройте настройки плaншета.

Настройки

Выберите Bluetooth

  • В открывшемся окне справа сверху нажмите на переключатель для активации модуля.

Включите Bluetooth

  • В окне устройств Bluetooth тапните на кнопку «Поиск» для обнаружения Bluetooth GРS для Аndroіd планшета.

Нажмите поиск

  • После того как название появится в списке найденных устройств, выберите его.

Выберите устройство

  • Выполнится сопряжение обоих устройств. Если же устройство запросит ввести четырехзначный пароль, обычно это 0000.

После этого Bluetооth GPS приемник для Android и плaншет будут успешно подключены и готовы к работе. Далее нужно будет их как следует настроить.

Инструкция по настройке

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

Настройки

Местоположение

  • В открывшемся окне нажмите на переключатель сверху справа для активации модуля.

Включите обнаружение

  • Если гаджет, к которому вы подключаетесь, обладает 3G, перейдите по пункту «Режим», если же нет 3G, это можно пропустить.

Выберите режим

Нажмите GPS

На этом настройка GPS через Bluetoоth на Andrоid закончена: можно начинать пользоваться навигационными приложениями, но не все могут корректно видеть Bluеtоoth GРS приемник для Аndroіd, поэтому в начале статьи мы просили установить программу. Запустите ее и тапните кнопку «Start» для того, чтобы на Android Bluеtooth GPS смог поделиться его данными с приложением, а оно, обработав их, передало дальше для навигационной программы. Сверните приложение для работы в фоновом режиме. Так будет обеспечен уверенный сигнал, понятный любой программе.

Запуск программы

Нажмите старт

На этом настройки Bluеtоoth GРS для Android планшета закончены. Если вы еще не определились, какое выбрать приложение с картами, советуем для начала попробовать бесплатное приложение с бесплатными картами и функцией прокладывания маршрута, которое называется Mаps.Mе.

Планшет-навигатор: Видео

В предыдущей статье было показано, как подключить по Bluetooth телефон на Android к компьютеру с Windows в качестве GPS-приемника. В настоящем руководстве изложен способ подключения телефона на Android к другому телефону или планшету на Android с той же целью.

Предварительная настройка

Для реализации передачи данных GPS по Bluetooth с одного Android-устройства на другое необходимо, чтобы гаджеты были сопряжены, поэтому настройте Bluetooth-пару на Ваших Android-устройствах.

Настройка телефона-передатчика

На телефоне-передатчике данных GPS установите и запустите приложение GPS over BT.

Программа должна автоматически выполнить поиск спутников, определить местоположение и передавать данные подключенному по Bluetooth телефону-приемнику.

Интерфейс приложения GPS over BT

Примечание: если у Вас не получится осуществить передачу данных GPS с помощью GPS over BT, попробуйте другие приложения, перечисленные в этой статье.

Настройка телефона-приемника

На телефоне-приемнике данных GPS перейдите в раздел "Настройки > Для разработчиков > Отладка", найдите пункт "Фиктивные местоположения" и активируйте его.

Примечание: Если в настройках нет пункта "Для разработчиков", его нужно активировать. Для этого зайдите в раздел "Настройки > Сведения о телефоне" и нажмите семь раз на пункт "Версия сборки".

Следующий шаг: установите на телефон-приемник и запустите приложение "Bluetooth GPS".

Это приложение будет получать данные GPS по Bluetooth от телефона-передатчика и предоставлять их операционной системе Android телефона-приемника.

В списке устройств выберите сопряженный по Bluetooth телефон-передатчик данных GPS и нажмите кнопку "Connect". Вы должны увидеть в полях ниже координаты и другую информацию о местоположении. Поставьте галочку рядом с надписью "Enable Mock GPS Provider", чтобы предоставить эту информацию системе Android и приложениям.

Запустите предпочитаемое приложение навигации, чтобы отслеживать свое местоположение (точнее местоположение телефона-передатчика координат GPS, подключенного по Bluetooth).

Достоинства и недостатки работы с GPS-приемником другого телефона

Недостатки: Работа с GPS-приемником подключенного по Bluetooth телефона отличается от работы с собственным GPS-модулем устройства, поскольку данные передаются по протоколу NMEA 0183, данные о местоположении обновляются с задержкой (по нашим оценкам примерно раз в 30 секунд или реже). При записи пути в популярном трекинг-приложении Endomondo хоть и отображается значок нормальной работы GPS, трек получается прерывистым.

Читайте также: