Меню

Gps приемник bluetooth своими руками

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.

Читайте также:  Jbl paragon d44000 своими руками

После подключения пытаемся «поговорить» с модулем (не забываем его включить). Выбираем скорость порта — 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.

Источник

Приёмник ГЛОНАСС с интерфейсом Bluetooth

Спутниковые системы навигации сегодня нужны всем. В связи с развитием отечественной системы ГЛОНАСС она активно используется наряду с такими зарубежными системами, как GPS. Но практически отсутствуют серийные образцы автономных приёмников сигналов ГЛОНАСС с интерфейсом Bluetooth. А они необходимы для планшетных компьютеров, в том числе с ОС Android. Это положение автор решил исправить, собрав такой приёмник из имеющихся в продаже готовых модулей.

Руководством для этой работы мне послужили различные материалы, опубликованные в Интернете. Например, в статье [1] я нашёл советы по выбору узлов и их компоновке. Функционально приёмник состоит из модуля приёмника сигналов спутников системы ГЛОНАСС, преобразователя его выходных сигналов для передачи по каналу Bluetooth и блока питания. Схема соединения модулей приёмника изображена на рис. 1.

Рис. 1. Схема соединения модулей приёмника

В качестве приёмника сигналов ГЛОНАСС (A2) использован готовый модуль на специализированной микросхеме MT3333 [2], имеющий следующие основные технические характеристики:

Число каналов приёма . . . . . . . . . . . . 99

Число каналов слежения . . . . . . . . . . 33

Чувствительность, дБм . . . . . . . . . . – 165

Напряжение питания, В . . . . . . . . . . 3…6

Потребляемый ток, мА, не более:

в режиме поиска . . . . . . . . . . . . . 35

в режиме слежения . . . . . . . . . . . 29

Длительность «холодного» старта, с, не более . . . . . . . . . . . . . 33

Длительность «горячего» старта, с, не более . . . . . . . . . . . . . . 1

Размеры, мм . . . . . . . . . . . . . . . 25×31×5

В режиме поиска на модуле мигает светодиод. Тот модуль, что показан на рис. 2, имеет встроенную антенну. Но существуют его варианты и без антенны, а лишь с разъёмом для её подключения. В этом случае нужно приобрести и подключить к этому разъёму внешнюю антенну. Оба варианта одинаковы по параметрам и назначению выводов и способны принимать сигналы как со спутников системы ГЛОНАСС, так и со спутников системы GPS. Наличиепоказанногона схеме штриховыми линиями резервного элемента питания G1 (это может быть литиевый элемент CR2032) не обязательно. Но его установка ускоряет повторный запуск модуля A2 после перерыва в подаче основного питания, позволяя сохранятьинформацию о спутниках, полученную в предыдущем сеансе работы.

Рис. 2. Модуль приёмника

Рис. 3. Bluetooth-адаптер HC05

Принятая навигационная информация поступает по последовательному интерфейсу в изображённый на рис. 3 Bluetooth-адаптер HC05 [3]. Его основные технические характеристики:

Протокол Bluetooth . . . . . . . . . 2.0 + EDR

Рабочий диапазон, ГГц . . . . . . . . . . . 2,4

Мощность излучения, дБм, не более . . . . . . . . . . . . . . . . . . . . . . . 4

Чувствительность при BER не более 0,1 %, дБм . . . . . . . . . . . – 84

Напряжение питания, В . . . . . . . . . . . 3,3

Потребляемый ток, мА . . . . . . . . . . . . 50

Читайте также:  Дай мне минутку своими руками

Частота мигания светодиода, Гц:

идёт поиск . . . . . . . . . . . . . . . . . . . . 5

связь установлена . . . . . . . . . . . 0,5

Рабочая температура, о С . . . . –20…+75

Размеры, мм . . . . . . . . . . . . 26,9×13×2,2

Пароль для связи с компьютером . . . . . . . . . . . . . . . . . . . . . . 1234

Источник питания состоит из литийионного аккумулятора G2 с устройством A1 (рис. 4) для его зарядки от USB-разъёма компьютера или зарядного устройства с таким разъёмом и изображённого на рис. 5 стабилизированного преобразователя напряжения аккумулятора в 3,3 В [4]. Именно такое напряжение используется для питания модуля приёмника ГЛОНАСС и адаптера Bluetooth.

Рис. 4. Источник питания

Рис. 5. Стабилизированный преобразователь напряжения аккумулятора

Модуль зарядки имеет следующие параметры:

Входной разъём . . . . . . . . . . . microUSB

Входное напряжение, В . . . . . . . . . . . . 5

Максимальный зарядный ток, А . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Напряжение отсечки зарядки, В . . . . . . . . . . . . . . . . . . . . . . . . . 4,2

Порог срабатывания защиты от переразрядки, В . . . . . . . . . . . . 2,5

Порог срабатывания защиты по току нагрузки, А . . . . . . . . . . . . . . 3

Размеры, мм . . . . . . . . . . . . . . . 26×17×3

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

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

Входное напряжение, В . . . . . . . . 3…40

Выходное напряжение, В . . . . . . 1,5…35

Максимальный выходной ток, А . . . . . . . . . . . . . . . . . . . . . . . . . . 3

КПД, %, не более . . . . . . . . . . . . . . . . . 92

Размах пульсаций выходного напряжения, мВ, не более . . . . . . . . . . . . . . . . . . . . . . . . 30

Частота преобразования, кГц . . . . . . 150

Рабочая температура, о C . . . . –45…+85

Размеры, мм . . . . . . . . . . . . . . 43×21×10

Индикатор работы — синий светодиод.

Все модули устройства размещены в герметичном пластиковом корпусе размерами 115×55×65 мм, как показано на рис. 6, и соединены между собой согласно схеме отсутствующими на фотоснимке монтажными проводами. Оставшиеся в корпусе пустоты заполнены пенополиэтиленовыми вставками.

Рис. 6. Размещение модулей

Правильно собранное устройство обычно работоспособно сразу после включения питания. Необходимо лишь до подключения модулей A2 и A3 установить напряжение 3,3 В на выходе модуля A4 имеющимся в нём подстроечным резистором.

По сравнению с распространёнными GPS-Bluetooth приёмниками мы получаем высокочувствительный приёмник сигналов со спутников ГЛОНАСС и GPS, что положительно сказывается на точности определения координат.

Передача информации по каналу Bluetooth от приёмника к планшетному компьютеру с ОС Android была проверена с помощью бесплатных программ Bluetooth GPS Provider (URL: https:// apkplz.com/casual/bluetooth-gpsprovider-apk-download (27.03.17)) и Bluetooth GPS for Android (URL: https:// downloads.sourceforge.net/project/ bluegps4droid/Apk/BlueGPS4Droid_ 1.2.x/BlueGps4Droid_1.2.6.apk (27.03.17)).

Запустив программу Bluetooth GPS Provider, необходимо в правом верхнем углу экрана отметить строку Preferen ces, затем выбрать источник сигналов. В нашем случае это HC05. Нажав на клавишу Start, получим свои координаты и информацию о наблюдаемых нави-гационных спутниках с указанием мощности принимаемых от них сигналов. При запуске программы Bluetooth GPS for Android необходимо выбрать источник навигационных сигналов HC05. Получив информацию со спутников, программа отобразит текущие координаты. Сменив экран Main на экран Status (для этого нужно сместиться вправо), получим схематичное изображение небесной сферы с положением на ней спутников, их номерами и мощностью сигнала. Сместившись ещё на один экран вправо (на экран NMEA), можно просмотреть служебные сообщения о принимаемых навигационных сигналах.

1. GPS Bluetooth своими руками. — URL: http://kibermaster.net/gps-bluetooth-svoimirukami/ (27.03.17).

2. MT3333. A high-performance, single-chip, multi-GNSS solution with the industry’s highest level of sensitivity, accuracy and Time to First Fix. — URL: http://www.mediatek.com/products/ locationIntelligence/mt3333 (27.03.17).

3. Использование блютуз-модулей HC- 05/06. — URL: http://sotvorimvmeste.ru/ viewtopic.php?p=768 (27.03.17).

4. Про модули DC-DC Buck Converter на LM2596. — URL: http://trengtor.blogspot.ru/ 2015/06/buck-step-down-lm2596.html (27.03.17).

Автор: М. Наумов, г. Москва

Мнения читателей

Нет комментариев. Ваш комментарий будет первый.

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

Источник

Adblock
detector