- Как сделать GPS-трекер (маячок) своими руками
- Использование смартфона для GPS-слежения
- Как сделать GPS-маячок своими руками из обычного телефона
- Можно ли сделать GPS-трекер без телефона
- Преимущества и недостатки самодельной конструкции
- GPS Tracker на ардуино своими руками
- GPS приемник
- GSM приемник/передатчик
- Сервер
- Полевые испытания
- Выводы
- Использованные устройства
- Литература
Как сделать GPS-трекер (маячок) своими руками
В специализированных магазинах доступен широкий ассортимент GPS-устройств разных ценовых категорий. Мощные модели с расширенным функционалом довольно дорого стоят, а простейшие маячки отличаются доступной ценой. Тем не менее многие пытаются избежать расходов и изготовить GPS-маячок своими руками. Насколько сложна эта задача, что понадобится для ее решения и оправдают ли себя затраченные усилия?
Использование смартфона для GPS-слежения
Чтобы использовать смартфон с функцией GPS в качестве GPS-трекера или маяка, нужно немного поработать с программным обеспечением. Сделать своими руками GPS-трекер из телефона на базе Android, Windows Mobile или iOS очень просто, никакого вмешательства в его конструкцию не понадобится. Если смартфон будет применяться как автомобильный трекер, придется выполнить несложные манипуляции по его подключению к электросети ТС.
Существует несколько приложений, позволяющих превратить смартфон в трекер. Для устройства на платформе Android можно скачать на Google Play приложение Loki, запустить его на смартфоне и выполнить настройки. Рекомендуется активировать такие функции:
- автозапуск;
- уведомления (по желанию);
- внешнее питание (использование альтернативных настроек при подключении к внешнему источнику питания);
- полное пробуждение (по желанию);
- обработка команд.
Для навигации (определения местоположения) рекомендуется установить интервал обновления данных один раз в минуту, для отсылки SMS-сообщений при исчезновении связи с сервером ограничение по времени – 5 минут. Настройки в разделе «События» осуществлять в соответствии с собственными потребностями.
После выполнения настроек остается зарегистрироваться на сайте Asgard и добавить свое устройство, указав идентификатор, определенный программой Loki. Если в результате на карте сайта появилась отметка вашего местоположения, значит, все сделано правильно, и смартфон можно использовать в качестве трекера, отслеживая его местонахождение через Asgard.
Также для Android можно использовать приложение GPShome Tracker, а для Windows Mobile – GpsGate Client for Pocket PC. Превращая смартфон в трекер или маячок, крайне важно правильно настроить часовой пояс.
Для определения координат через сети Wi-Fi и GSM, устройство должно иметь доступ к безлимитному мобильному интернету, так что нужно выбрать тариф, позволяющий оптимизировать затраты. Если телефон будет использоваться исключительно как трекер, лучше установить SIM-карту только для выхода в интернет, а не для звонков. Использование GPS-приемника, повышающего точность определения координат, – весьма энергоемкий процесс, так что следует позаботиться об обеспечении питания самодельного трекера. Для этого нужно обрезать нижний конец автовилки (штекера прикуривателя) и вставить шнур зарядного устройства телефона в USB-разъем. Для подключения трекера напрямую к бортовой системе нужно купить понижающий конвертер постоянного тока. А те, кто немного разбирается в электронике, могут собрать аналог конвертера из пары конденсаторов и стабилизатора.
Как сделать GPS-маячок своими руками из обычного телефона
Простейшую модель мобильного телефона без GPS тоже можно превратить в маяк, но для этого понадобится дополнительное оборудование и придется приложить больше усилий. Необходимые материалы и инструменты:
- мобильный телефон;
- GPS/GPRS-модуль;
- GPS-приемник;
- переходник (можно использовать старое зарядное устройство с рабочим штекером);
- нож и паяльник.
Обрезав зарядное устройство со стороны блока питания, нужно зачистить провода и припаять их к плате модуля, а штекер вставить в разъем питания телефона. Затем включается приемник и настраивается телефон. С помощью такого устройства можно отслеживать местонахождение мобильных телефонов, принадлежащих членам вашей семьи. Информация об их координатах будет приходить на мобильник, объединенный с GPS-модулем, в виде обычных текстовых сообщений.
Можно ли сделать GPS-трекер без телефона
Есть альтернатива использованию смартфона или телефона в комплексе с GPS-модулем – любое устройство с функцией GPS (ноутбук, КПК). Принцип такой же, как для смартфона, – установка приложения, настройки, регистрация устройства на сайте.
А можно ли собрать своими руками сам GPS-модуль и приемник, из которых состоит маяк или трекер? Вот некоторые компоненты, входящие в состав этих устройств:
- фоторезистор, обычно коротковолновый;
- операционный усилитель на базе биполярных транзисторов;
- выпрямитель;
- контроллер конденсаторного типа;
- сетчатые фильтры;
- импульсный триггер.
Все эти детали можно купить, а схему устройства – найти в интернете, но далеко не всем под силу разобраться, как сделать GPS-трекер своими руками.
Преимущества и недостатки самодельной конструкции
Если используется старый и ненужный телефон (смартфон), то основное преимущество его переделки в трекер – экономия. Если приобретать аппарат специально для этой цели, экономия от изготовления GPS-трекера своими руками практически неощутима. Конструкция из мобильного телефона и GPS-модуля получается довольно громоздкой, человеку носить ее с собой неудобно, а при установке в автомобиле велик риск обрыва проводов. Смартфон в качестве трекера или маячка использовать удобнее, но только для слежения за людьми. Его установка на автомобиле – это не самое удачное решение, оригинальный трекер обладает рядом преимуществ перед самоделкой:
- до года работает от батарейки;
- без всяких ухищрений подключается к бортовой сети, потребляя минимум энергии;
- предназначен для эксплуатации в более широком температурном диапазоне, чем телефон;
- благодаря герметичному корпусу может устанавливаться снаружи автомобиля;
- реагирует на удары, раскачивание авто;
- может комплектоваться тревожной кнопкой, микрофоном, различными датчиками.
Если использовать смартфон в качестве устройства скрытого слежения, функции коммуникатора он выполнять уже не сможет.
Лучше купить GPS-трекер или маячок, чем использовать самодельное устройство на базе смартфона или обычного мобильного телефона. Заводской трекер надежнее, удобнее в установке на транспортное средство, выполняет больше функций. Затраты на покупку трекера не так уж велики, а превращение смартфона в устройство слежения оправдано только при наличии ненужного аппарата.
Источник
GPS Tracker на ардуино своими руками
После нескольких экспериментов с ардуиной решил сделать простенький и не очень дорогой GPS-tracker с отправкой координат по GPRS на сервер.
Используется Arduino Mega 2560 (Arduino Uno), SIM900 — GSM/GPRS модуль (для отправки информации на сервер), GPS приёмник SKM53 GPS.
Всё закуплено на ebay.com, в сумме около 1500 р (примерно 500р ардуина, немного меньше — GSM модуль, немного больше — GPS).
GPS приемник
Для начала нужно разобраться с работой с GPS. Выбранный модуль — один из самых дешевых и простых. Тем не менее, производитель обещает наличие батарейки для сохранения данных о спутниках. По даташиту, холодный старт должен занимать 36 секунд, однако, в моих условиях (10 этаж с подоконника, вплотную зданий нет) это заняло аж 20 минут. Следующий старт, однако, уже 2 минуты.
Важный параметр устройств, подключаемых к ардуине — энергопотребление. Если перегрузить преобразователь ардуины, она может сгореть. Для используемого приемника максимальное энергопотребление — 45mA @ 3.3v. Зачем в спецификации указывать силу тока на напряжении, отличном от требуемого (5V), для меня загадка. Тем не менее, 45 mA преобразователь ардуины выдержит.
Подключение
GPS не управляемый, хотя и имеет RX пин. Для чего — неизвестно. Основное, что можно делать с этим приемником — читать данные по протоколу NMEA с TX пина. Уровни — 5V, как раз для ардуины, скорость — 9600 бод. Подключаю VIN в VCC ардуины, GND в GND, TX в RX соответствующего serial. Читаю данные сначала вручную, затем с использованием библиотеки TinyGPS. На удивление, всё читается. После перехода на Uno пришлось использовать SoftwareSerial, и тут начались проблемы — теряется часть символов сообщения. Это не очень критично, так как TinyGPS отсекает невалидные сообщения, но довольно неприятно: о частоте в 1Гц можно забыть.
Небольшое замечание относительно SoftwareSerial: на Uno нет хардверных портов (кроме соединённого с USB Serial), поэтому приходится использовать программный. Так вот, он может принимать данные только на пине, на котором плата поддерживает прерывания. В случае Uno это 2 и 3. Мало того, данные одновременно может получать только один такой порт.
Вот так выглядит «тестовый стенд».
GSM приемник/передатчик
Теперь начинается более интересная часть. 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.
После подключения пытаемся «поговорить» с модулем (не забываем его включить). Выбираем скорость порта — 115200, при этом хорошо, если все встроенные последовательные порты (4 на меге, 1 на uno) и все программные работают на одной скорости. Так можно добиться более устойчивой передачи данных. Почему — не знаю, хотя и догадываюсь.
Итак, пишем примитивный код для проброса данных между последовательными портами, отправляем atz, в ответ тишина. Что такое? А, case sensitive. ATZ, получаем OK. Ура, модуль нас слышит. А не позвонить ли нам ради интереса? ATD +7499… Звонит городской телефон, из ардуины идет дымок, ноутбук вырубается. Сгорел преобразователь Arduino. Было плохой идеей кормить его 19 вольтами, хотя и написано, что он может работать от 6 до 20V, рекомендуют 7-12V. В даташите на GSM модуль нигде не сказано о потребляемой мощности под нагрузкой. Ну что ж, Mega отправляется в склад запчастей. С замиранием сердца включаю ноутбук, получивший +19V по +5V линии от USB. Работает, и даже USB не выгорели. Спасибо Lenovo за защиту.
После выгорания преобразователя я поискал потребляемый ток. Так вот, пиковый — 2А, типичный — 0.5А. Такое явно не под силу преобразователю ардуины. Нужно отдельное питание.
Программирование
Модуль предоставляет широкие возможности передачи данных. Начиная от голосовых вызовов и SMS и заканчивая, собственно, GPRS. Причем для последнего есть возможность выполнить HTTP запрос при помощи AT команд. Придется отправить несколько, но это того стоит: формировать запрос вручную не очень-то хочется. Есть пара нюансов с открытием канала передачи данных по GPRS — помните классические AT+CGDCONT=1,«IP»,«apn»? Так вот, тут то же самое нужно, но слегка хитрее.
Для получения страницы по определенному URL нужно послать следующие команды:
В результате, при наличии соединения, получим ответ от сервера. То есть, фактически, мы уже умеем отправлять данные о координатах, если сервер принимает их по GET.
Питание
Поскольку питать GSM модуль от преобразователя Arduino, как я выяснил, плохая идея, было решено купить преобразователь 12v->5v, 3A, на том же ebay. Однако, модулю не нравится питание в 5V. Идем на хак: подключаем 5V в пин, с которого приходит 5V от ардуины. Тогда встроенный преобразователь модуля (существенно мощнее преобразователя ардуины, MIC 29302WU) сделает из 5V то, что нужно модулю.
Сервер
Сервер написал примитивный — хранение координат и рисование на Яндекс.картах. В дальнейшем возможно добавление разных фич, включая поддержку многих пользователей, статус «на охране/не на охране», состояние систем автомобиля (зажигание, фары и пр.), возможно даже управление системами автомобиля. Конечно, с соответствующей поддержкой трекера, плавно превращающегося в полновесную сигнализацию.
Полевые испытания
Вот так выглядит собранный девайс, без корпуса:
После установки преобразователя питания и укладывания в корпус от дохлого DSL модема система выглядит так:
Припаивал провода, вынул несколько контактов из колодок ардуины. Выглядят так:
Подключил 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
Литература
Публикующийся код может быть использован в любых разрешенных законом целях любыми лицами. Качество кода ужасно, поскольку это, всё же, тестовый вариант. Когда допишу до чего-то более красивого, обновлю.
Для компиляции кода для ардуино нужно импортировать библиотеку tinygps.
Источник