sonyps4.ru

Gsm трекер из телефона своими руками. Как установить поисковый GPS маяк своими руками

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

Разработка

Мы из тех, кто делает все и сами. Пусть долго, пусть дорого, но в таких случаях все недочеты убираем до момента выпуска, да и винить в случае неудачи никого не нужно. Основные задачи, которые стояли при разработке нового устройства – надежность, наличие акселерометра, работа с любыми устройствами по rs-232, а также, удобство и простота инсталляции для конечного пользователя (купил – поставил – пользуешься). Никаких автоэлектриков и прочих установщиков.

GSM

Из-за перебоев с поставкой Telita в Украину, выбор был сделан в пользу модуля компании Quectel M12. Модуль довольно известный и пришел на смену модулю М10. Он имеет такой же форм фактор как и Телит (SMT), удобен в диагностике неисправностей, т.к. все его выхода выведены по бокам (никакого BGA). В большинстве своем, модуль имеет абсолютно такие же (или очень близкие) характеристики к Телиту. Тут стоит отметить, что на рынке Украины практически все модули имеют одинаковые функциональные возможности с основными различиями только в среде разработке, и тут уже каждый выбирает, что он лучше знает и в чем удобней «писать». Хочется отметить про фишку М12 в виде OpenCPU , который весьма сокращает весь процесс разработки готового девайса, и крайне удобен в освоении.

GPS

Ну, тут вообще интересная история. Изначально все разрабатывалось под чип, который использовали Uranus 625r. Но в момент заказа китайцы заявили, что этот чип снят с производства, и они на все 100% уверены, что новый чип (их же производства) нас удовлетворит чуть менее чем полностью. В процессе переговоров были согласованы pin-to-pin совместимость (а это rx,tx,reset (тут особое внимание, об этом будет написано ниже), земля), этот момент был несколько раз поднят в переписке и устных переговорах. Крайне обрадовало наличие нового Sirf IV и поддержки загрузки эфемерид для работы режима a-gps. Забегая вперед, могу сказать, что если убрать довольно большое количество брака (около 10%, который слава Богу, можно отсеить на этапе сборке устройств) качество самого приемника вполне отличное.

Сборка номер ноль

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

Вот такая вот «идеальная» трассировка:

Небольшой конфуз при разработке:

Ну и основные работники крупным планом:

После отладки всех основных моментов перешли к человеческой разводке и подготовке к производству. Результат ниже (обе стороны для сравнения):

После согласования всех спецификаций плата была отдана в производство и 8 недель для изготовления первой партии были потрачены на поиск\закупку всех запчастей. Примерно через два месяца было получено первые 10 устройств:

Как обычно

После получения первых образцов, обычно, начинается самое интересное – это когда все вроде и правильно, и вроде бы тестировалось долго, а ничего не работает. Или работает, но не так. Просто не работает и уже вроде ничего и нельзя изменить.
Так и случилось. Пришедшие «волшебные» GPS модули просто «молчали». Ставим старые – все работает, прозваниваем новые – должно работать, но «лыжи не едут». Виной тому – использование reseta при первом старте, когда модуль обращается в первый раз к стеку. Китайцы с присущим им удивлением сказали, что «нужно было предупредить» и выслали мануал как вернуть все на место. После поднятия всей переписки и отсылки им, просто пообещали, что такое больше не повториться. Занавес.

ТТХ готового устройства

- старт за 2 секунды, AGPS
- sirf IV (возможность замены на glonass для РФ вариантов)
- память на 250000 точек
- адаптивный режим
- датчик удара\вибрации (акселерометр)
- режим маяка
- удаленный контроль и управление тарифными планами посредством прямых USSD команд
- работа без сервера посредством СМС
- и еще много,

Бонусы

Розничная стоимость устройства на данный момент составляет 180 у.е. Дилерские цены при определенных объемах падают до 110 у.е. На нашем сервисе абонентская плата до конца 2013 года полностью отсутствует при подключении любого количества устройств.
Как обычно, гарантия на 512 месяцев со дня покупки устройства (на АКБ не распространяется).

Что такое Track IR?

Одна из систем отслеживания движений головы, вышедших на массовый рынок.
Это устройство ввода, разрабатываемое компанией NaturalPoint, обеспечивает псевдо-виртуальную реальность на персональном компьютере. Оно может следить за движениями головы пользователя по координатам X, Y и Z. Полученные данные используются в программах (играх) для преобразования реальных поворотов головы в виртуальные. Например, в авиасимуляторе, игрок может осматривать кабину. Чувствительность настраивается, чтоб предотвратить такие повороты, когда пользователь не может нормально смотреть на экран."

К слову:
Track (от англ.) - отслеживать
IR - (аббрев. Infra red) - инфракарасный
Всё потому что данные для обработки полступают на компьютер через веб - камеру от инфракрасных излучателей (обычных инфрокрасных светодиодов). Далее.

Что нам потребуется?

Для того чтобы соорудить подобную штуковину необходимо:

  • Уметь пользоваться паяльником
  • 3 инфракрасных светодиода 3V (l-34sf4c)
  • Батарейка (таблетка) на 3V
  • Резистор на 51Ом
  • Отрезок провода
  • Кнопочка с фиксацией (pb22e08)
  • Подходящая Веб-Камера
  • Программа free-track
  • Фантазия
Далее о каждом пункте поподробнее:

Уметь пользоваться паяльником

- необходимо, ибо ваши старания могут превратится в мучения. В определенный момент автор столкнулся с подобными трудностями.

Паяльник и прочие принадлежности

- собственно особо мощный паяльник не нужен, 30W хватит, олово и канифоль для того чтобы места пайки были крепкими.

3 инфракрасных светодиода 3V

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

Батарейка (таблетка) на 3V

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

Резистор на 50Ом

-Чтобы правильно подключить светодиод даже в самом простом случае, необходимо (читай желательно) подключить его через токоограничивающий резистор.

Отрезок провода

-я использовал отрезок витой пары UTP 5e (2 жилы разного цвета из кабеля от интернета), не толстый и не тонкий, в самый раз

Кнопочка с фиксацией

- тут, как говорится на вкус и цвет фломастеры разные, можно и без кнопочки, но таким образом батарейки на долго не хватит

Подходящая Веб-Камера

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

Про веб - камеру

Самое главное чтобы была возможность извлечь из веб - камеры инфракрасный светофильтр и отключить автовыдержку, чтобы увеличить FPS - всё.
Перечень совместимых камер можно прочитьать на сайте разработчика программы free-track -
Я использовал a4tech pk336e
Чтобы извлечь светофильтр необходимо разобрать корпус и выкрутить шахту с линзой, у основания шахты перед линзой вклеено небольшое стеклышко - это и есть светофильтр, поковырявшись ножичком пришлось его разбить и вычистить осколки, но аккуратно чтобы не повредить под ним линзу. После чего всё необходимо собрать обратно. Забегая вперед скажу, чтобы всё работало - веб- камера должна воспринимать лишь три белые точки от светодиодов и ничего лишнего, для этого её необходимо дополнительно затемнить небольшим кусочком магнитной поверхности от старой дискеты, или пленкой от видео кассеты VHS.
с картинками, фирма таже, но модель камеры другая.
Теперь у нас есть веб - камера, которая будет улавливать инфракрасное свечение, и вы можете на ней проверить работает ли ваша конструкция.
В итоге на изображении должны появится три харрактерные белые точки, читай датчики перемещения, котрые будут передавать информацию программе фритрек для обработки. Но об этом в следующем разделе.
Добавлю что роботоспособность у камеры сохраняется при извлеченном светофильтре.

Разбираем веб-камеру A4Tech PK336E

Настройка FreeTrack


Первым делом установить модель расположения.

3 - заходим в раздел CAM
4 - Выбираем камеру из списка
5 - Нажимаем на старт
Ну и на черном экране должны появится три белых точки, при движении которых должна вращаться соответственно 3d модель слева.

Каким должен быть поисковый GPS маяк

  1. GPS маяк PGSM Pointer полностью автономный , поэтому весь срок службы работает на встроенной батарейке.
  1. Новый влагонепроницаемый корпус PGSM Pointer позволяет спрятать поисковый GPS маяк максимально эффективно.
  1. Поисковый маячок PGSM Pointerв зависимости от выбранного режима его работы имеет с рок службы от одного до трех лет .
  1. GPS GSM маяк PGSM Pointer без абонентской платы и скрытых платежей
  1. GPS маяк PGSMPointer имеет встренный GPS-приемник , за счет чего местоположение автомобиля можно определить с точностью до одного метра.
  1. GPS GSM маяк PGSM Pointer имеет встроенный SIM-чип , который в отличие от стандартной SIM-карты является термостойким, несканируемым, а также извлечь который и узнать номер которого никогда не сможет угонщик автомобиля.
  1. Поисковый маяк PGSM Pointer работает с интернет-сервисом Car-Online, где на личной странице поискового маяка фиксируется данные за каждый день его работы.
  1. Управлять поисковым маяком можно через sms-сообщения или с сайта Car-Online
  1. GPS GSM маяк PGSM Pointer не имеет роуминга на территории России.

Как установить поисковый GPS маяк своими руками

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

Вытащите поисковый GPS маяк PGSM Pointer из его упаковки, также из коробки извлеките инструкцию. На странице 4 инструкции от GPS маяка PGSM Pointer вы найдете телефонный номер SIM-чипа, встроенного в поисковый GPS маяк, его необходимо подготовить для активации маячка.

Чтобы перевести поисковый GPS маяк PGSM Pointer в режим настройки, нажмите и удерживайте в течение четырех секунд кнопку на верхней части корпуса маяка. Как только маяк «проснется», рядом с кнопкой постоянно начнет мигать светодиод. С момента начала мигания светодиода у вас будет 10 минут, чтобы полностью настроить поисковый GPS маяк.

Как установить поисковый GPS маяк своими руками: настройка

Настроить перед тем как установить GPS маяк PGSM Pointer своими руками очень легко. После того, как на корпусе поискового маяка начнет мигать красный светодиод, необходимо на указанный в инструкции телефонный номер отправить с мобильного телефоны sms-сообщение: INIT

В отчет на эту смс-команду поисковый GPS маяк вышлет вам sms-уведомление о том, что ваш номер теперь является управляющим для этого маячка: Main User OK. Wait the next SMS (Login, Password). Еще через несколько минут поисковый GPS маяк пришлет вам Логин и Пароль от сайта www.car-online.ru : Car-Online registration OK. Login: carxxxxx, Password: xxxxxx

Под этими логином и паролем вы сможете зайти в личный кабинет в системе Car-Online, в котором будут показаны данные о местоположении вашего поискового маяка за каждый день его работы.

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

Если для отслеживания местоположения вашего поискового маяка вы используете мобильный телефон, то вместо полной версии сайта воспользуйтесь его мобильной версией: m.car-online.ru или скачайте мобльное приложение Car-Online для iOS или Android.

Как установить поисковый GPS маяк своими руками: устанавливаем маяк

После того, как вы успешно произвели регистрацию поискового маяка в системе Car-Online, попробуйте установить GPS маяк PGSMPointer своими руками. Напомним, что поисковый GPSмаяк должен находиться на расстоянии не более 10 см от металлических и экранирующих поверхностей, верхняя поверхность корпуса маяка с кнопкой не должна «смотреть» вниз, кроме того для установки рекомендуется выбрать место, удаленное от нагревающихся и подвижных элементов ТС.

При установке поискового маяка следует помнить, что низкие температуры могут негативно повлиять на общее время работы поискового маяка. Дополнительно отметим, что для получения от высокочувствительного приемника GPSнаиболее точных координат с местоположением вашего ТС требуется устанавливать поисковый GPS маяк PGSMPointer “неглубоко”. Чем больше времени и энергии требуется приемнику GPS на поиск спутников, тем ниже может быть уровень приема сигнала, а также короче общее время автономной работы поискового маячка.

«Классически» поисковый GPS маяк при установке своими руками прячется в бардачок или под его обшивку, под одно из передних сидений, в диван задних пассажиров. Также поисковый GPS маяк при установке своими руками можно спрятать в багажник ТС: в боковые кармашки, «запаску», задние подголовники или даже аптечку.

После нескольких экспериментов с ардуиной решил сделать простенький и не очень дорогой 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 нужно послать следующие команды:
AT+SAPBR=1,1 //Открыть несущую (Carrier) AT+SAPBR=3,1,"CONTYPE","GPRS" //тип подключения - GPRS AT+SAPBR=3,1,"APN","internet" //APN, для Мегафона - internet AT+HTTPINIT //Инициализировать HTTP AT+HTTPPARA="CID",1 //Carrier ID для использования. AT+HTTPPARA="URL","http://www.example.com/GpsTracking/record.php?Lat=%ld&Lng=%ld" //Собственно URL, после sprintf с координатами AT+HTTPACTION=0 //Запросить данные методом GET //дождаться ответа AT+HTTPTERM //остановить HTTP

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

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

Сервер

Сервер написал примитивный - хранение координат и рисование на Яндекс.картах. В дальнейшем возможно добавление разных фич, включая поддержку многих пользователей, статус «на охране/не на охране», состояние систем автомобиля (зажигание, фары и пр.), возможно даже управление системами автомобиля. Конечно, с соответствующей поддержкой трекера, плавно превращающегося в полновесную сигнализацию.

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

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

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

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

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


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

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

Выводы

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

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

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

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


Загрузка...