Как из телефона сделать gps приемник

Обновлено: 07.07.2024








Все материалы добавляются пользователями. При копировании необходимо указывать ссылку на источник.

GPS приемник

GPS reciever

Для начала нужно разобраться с работой с GPS. Выбранный модуль — один из самых дешевых и простых. Тем не менее, производитель обещает наличие батарейки для сохранения данных о спутниках. По даташиту, холодный старт должен занимать 36 секунд, однако, в моих условиях (10 этаж с подоконника, вплотную зданий нет) это заняло аж 20 минут. Следующий старт, однако, уже 2 минуты.

Важный параметр устройств, подключаемых к ардуине — энергопотребление. Если перегрузить преобразователь ардуины, она может сгореть. Для используемого приемника максимальное энергопотребление — 45mA @ 3.3v. Зачем в спецификации указывать силу тока на напряжении, отличном от требуемого (5V), для меня загадка. Тем не менее, 45 mA преобразователь ардуины выдержит.

Подключение

Небольшое замечание относительно SoftwareSerial: на Uno нет хардверных портов (кроме соединённого с USB Serial), поэтому приходится использовать программный. Так вот, он может принимать данные только на пине, на котором плата поддерживает прерывания. В случае Uno это 2 и 3. Мало того, данные одновременно может получать только один такой порт.

Тестовый стенд

GSM приемник/передатчик

GSM Shield

Теперь начинается более интересная часть. GSM модуль — SIM900. Он поддерживает GSM и GPRS. Ни EDGE, ни уж тем более 3G, не поддерживаются. Для передачи данных о координатах это, вероятно, хорошо — не будет задержек и проблем при переключении между режимами, плюс GPRS сейчас есть почти везде. Однако, для каких-то более сложных приложений этого уже может не хватить.

Подключение

Модуль управляется также по последовательному порту, с тем же уровнем — 5V. И здесь нам уже понадобятся и RX, и TX. Модуль — shield, то есть, он устанавливается на ардуину. Причем совместим как с mega, так и с uno. Скорость по умолчанию — 115200.

Собираем на Mega, и тут нас ждет первый неприятный сюрприз: TX пин модуля попадает на 7й пин меги. На 7м пину меги недоступны прерывания, а значит, придется соединить 7й пин, скажем, с 6м, на котором прерывания возможны. Таким образом, потратим один пин ардуины впустую. Ну, для меги это не очень страшно — всё-таки пинов хватает. А вот для Uno это уже сложнее (напоминаю, там всего 2 пина, поддерживающих прерывания — 2 и 3). В качестве решения этой проблемы можно предложить не устанавливать модуль на ардуину, а соединить его проводами. Тогда можно использовать Serial1.

Сгоревший преобразователь

После выгорания преобразователя я поискал потребляемый ток. Так вот, пиковый — 2А, типичный — 0.5А. Такое явно не под силу преобразователю ардуины. Нужно отдельное питание.

Программирование

Для получения страницы по определенному URL нужно послать следующие команды:


В результате, при наличии соединения, получим ответ от сервера. То есть, фактически, мы уже умеем отправлять данные о координатах, если сервер принимает их по GET.

Питание

Поскольку питать GSM модуль от преобразователя Arduino, как я выяснил, плохая идея, было решено купить преобразователь 12v->5v, 3A, на том же ebay. Однако, модулю не нравится питание в 5V. Идем на хак: подключаем 5V в пин, с которого приходит 5V от ардуины. Тогда встроенный преобразователь модуля (существенно мощнее преобразователя ардуины, MIC 29302WU) сделает из 5V то, что нужно модулю.

Сервер

Полевые испытания

Вот так выглядит собранный девайс, без корпуса:

Собранный девайс

В корпусе

После установки преобразователя питания и укладывания в корпус от дохлого DSL модема система выглядит так:

image

Припаивал провода, вынул несколько контактов из колодок ардуины. Выглядят так:

Трек

Подключил 12V в машине, проехался по Москве, получил трек:

Точки трека достаточно далеко друг от друга. Причина в том, что отправка данных по GPRS занимает относительно много времени, и в это время координаты не считываются. Это явная ошибка программирования. Лечится во-первых, отправкой сразу пачки координат со временем, во-вторых, асинхронной работой с GPRS модулем.

Время поиска спутников на пассажирском сидении автомобиля — пара минут.

Выводы

Создание GPS трекера на ардуино своими руками возможно, хотя и не является тривиальной задачей. Главный вопрос сейчас — как спрятать устройство в машине так, чтобы оно не подвергалось воздействиям вредных факторов (вода, температура), не было закрыто металлом (GPS и GPRS будут экранироваться) и не было особенно заметно. Пока просто лежит в салоне и подключается к гнезду прикуривателя.

Использованные устройства

  • Arduino Mega 2560 [compatible]
  • Arduino Uno [compatible]
  • GPS SkyLab SKM53
  • SIM900 based GSM/GPRS Shield
  • DC-DC 12v->5v 3A converter

Литература

    (содержит подробную информацию и о платах, и об их программировании) (ссылка на скачивание в середине страницы)

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


Интернет

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

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

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

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

bluetooth gps android

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

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

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

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

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

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

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

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

Android + Bluetooth + GPS

Тем временем включаем bluetooth на планшете, подключаемся к gps модулю. Запускаем программу и сразу идем в настройки и ставим галочку напротив пункта Use Insecure Connection. Выходим из настроек и на вкладке Main щелкаем Connect — программа начнет видеть спутники, покажет координаты и, скачав карты с Google, покажет Ваше местоположение. Для того, чтобы другие программы могли использовать данные нашего Bluetooth модуля, необходимо рядом с кнопкой Connect активировать чекбокс Enable Mock GPS Provider. После этого запускаем Навител или другую программу для навигации — она должна увидеть спутники.

Более наглядно в видео. Извиняюсь за качество, снимал на калькулятор

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