Например TDA7294

РадиоКот > Конкурс: Поздравь Кота по-человечески 2017!

Простой и надёжный GPS маяк «SateLink»

Автор: vitalyadm
Опубликовано 19.09.2017.
Создано при помощи КотоРед.

Приветствую вас, дорогие друзья!

В первую очередь, прежде чем мы перейдём к статье, от всего сердца, поздравляю КОТА и всех ВАС с знаменательной датой 12 лет со дня рождения сайта. Не хочу говорить пустых слов, совершенно честно признаюсь, проект radiokot сыграл в моей жизни не одну роль и именно благодаря ему, получалось решать некоторые не простые задачи и добиваться вполне конкретных результатов. Поэтому! Уважаемый КОТ, искренне поздравляю тебя с ДР и желаю только одного- развивай дальше когда- то начатое, всё очень даже хорошо складывается, а мы в свою очередь, будем помогать ;)

И так. Подняли, чокнулись, выдохнули, поехали….

О чём пойдёт речь? Речь пойдёт о устройстве, которое относится к весьма известному семейству систем точного определения географического местоположения объекта, а именно «GPS-GSM маяк», что это такое, разумеется, не знают разве что котята, но всё же будем терпеливы и попробуем разобраться не только в конкретном устройстве, а в принципах, сути, «подводных камнях» и вообще разжуём всю эту тему целиком и полностью. Вдруг кому- то будет полезно.
Давайте сначала разберём, что такое в принципе «GPS-GSM маяк» (он же в народе «GPS трекер», хотя это не совсем соответствует истине)? Я буду говорить максимально простыми словами.
«GPS-GSM маяк» (далее по тексту просто «маяк»)- это этакое программно-техническое средство, позволяющее точно определять местоположение самого себя по средствам GPS координат и передавать их владельцу по установленному для него (маяка) каналу.

Вот здесь их можно смело делить на два типа, разного рода «экзотику» и гибридные варианты мы рассматривать не будем т.к. это случаи весьма частные и нас они не интересуют, так вот, по большому счёту они делятся на «GPS-SMS» и «GPS-IP».

Задачи у обоих этих типов практически одинаковые, разница только в канале передачи и реализации, при этом что тот что этот тип имеет, как и плюсы, так и конечно же минусы.

«GPS-SMS маяк»- определяет свои координаты и передаёт их по запросу или в автоматическом режиме владельцу, в текстовом виде по средствам SMS сообщений.
Плюсы:
1. Автономность, не требуется никаких дополнительных ресурсов и сервисов
2. Прост в обращении, может управляться любым устройством, хоть Сименс А35)))
3. Куда более стабилен в работе, нежели «GSM-IP»
Минусы:
1. Относительное неудобство формирования команд при использовании т.к. «общение» между владельцем и «маяком» происходит также, по принципу текстовых сообщений в виде SMS
2. Более урезанная информативность по сравнению с «GSM-IP»

«GPS-IP маяк»- также определяет свои координаты, но передаёт их уже владельцу не напрямую, а сначала на свой «домашний» WEB сервер, от куда владелец, используя мобильное приложение или банальный браузер «забирает» ранее полученные данные от «маяка».
Плюсы:
1. Менее «прожорлив» т.к. использует не SMS, а интернет- трафик.
2. Более симпатичен, в плане WEB или ПО интерфейса.
3. Может передавать намного больше информации и с более высокой частотой, что и превращает при необходимости «маяк» в «трекер». («маяк»- даёт возможность видеть точную геолокацию, но только одну. «трекер» - «рисует» маршрут перемещения на карте за счёт того, что координаты передаются с малым интервалом и при их последовательной обработке можно построить маршрут в виде кривой)
Минусы:
1. Требует дополнительных ресурсов, таких как «домашний» WEB сервер, который в свою очередь, должен работать в режиме 24/7 и относительно «жирный» и стабильный канал, по средствам которого и происходит общение клиента к серверу. А это уже сами понимаете, удовольствие не дешёвое.
2. Менее стабилен т.к. требует постоянного наличия интернет канала, а как мы знаем, даже GPRS не везде работает, не говоря уже про 3G и прочее.

Это теория общая, ещё раз повторюсь, писал общими и простыми словами, не углубляясь в подробности и тонкости, а то так статью в формат «Войны и Мир» растянуть можно.
В нашем же случае, мы будем говорить о «GPS-SMS маяке». Кстати, название устройства «SateLink» имеет вполне понятные корни и происходит от слова «satellite» т.е. спутник и «link» т.е. связь/соединение. Учитывая некоторые недостатки при работе с таким типом устройств, я постарался максимально упростить работу с ним, как со стороны «железа», так и с программной стороны, преследуя вполне логичные цели: удобство при работе с «маяком», стабильность работы и надёжность «маяка». При этом, на данный момент, в нём реализованы только те функции, которые действительно нужны, разного рода: «вот есть такая фича, но так, забавы ради…»- реализации не подлежало.

Аппаратная часть.

Начнём мы, пожалуй, с основного элемента, это непосредственно сам GPS-GSM-BLUETOOTH модуль SIM808, bluetooth нас сейчас не интересует, а остальное очень даже. Что представляет из себя SIM808- это такой замечательный агрегат, который совмещает в себе сразу как GPS приёмник, так и полноценный GSM модуль. И главное цена, очень привлекательная для такого «зверька», в готовом исполнении, а именно в таком исполнении мы его и будем использовать, стоит он всего лишь порядка ~700 рублей или ~12 буржуйских долларов. Почему нет смысла покупать отдельно SIM808 в не запаянном виде? Дело в том, что SIM808 в виде шилда уже имеет все развязки, совместим по питанию с 5 вольтами, тут тебе и кардхолдер и фильтры, стабилизатор, короче говоря, цена вопроса на его обвязку выйдет больше чем взять его уже в готовом виде. Покупается он у «Алика». При чём интересует именно такой, вот как на картинках.

Разумеется, для того, чтобы модуль работал и находил спутники, нам ещё нужна GPS антенна, вот такая отрабатывает на все 100%, но можно и внешнюю поставить (выносную), тут дело хозяйское, главное её наличие.

Далее, GSM сеть. Как без неё, для GSM имеет смысл взять вот такую антенну, удобно, можно сразу в корпусе разместить, работает хорошо, проверено.

Остальное: MK (ATmega8), резисторы, транзисторы и прочая мелочёвка весьма стандартна и понятна, потому переходим к схемам. Я сделал несколько вариантов схем, одна двусторонняя, компоненты SMD, размер чуть больше самого модуля, второй вариант для простого повторения, вообще взглянув на схему, станет совершенно понятно, что устройство на столько просто, что сделать свой вариант ПП и подогнать его под нужные вам требования и характеристики- не составляет никакого труда.

И так, вариант SMD. Эта схема более продумана, имеет дополнительные элементы для повышения стабильности работы, управление питанием осуществляется через полевой транзистор. Тип корпуса SMD компонентов 0805 (резисторы, конденсаторы, светодиоды). Зачем именно нужен ключ питания SIM808 скажу чуть позже, т.к. это больше касается программной, нежели аппаратной части.

Верхняя сторона ПП варианта SMD

Нижняя сторона ПП варианта SMD

Итоговый размер: 46 х 40мм.

 

Вариант DIP, очень прост в повторении, плата изготавливается просто и без каких- либо трудностей. Сразу, зачем 2 стабилизатора, по этой схеме я выполнял отладочные работы и разного рода эксперименты, поэтому схему чертил именно такую, какую использовал при отладке и дальнейших тестах, можно обойтись и одним стабилизатором.

Нижняя сторона ПП варианта DIP

Итоговый размер 80 х 61мм. ПП изготавливалась под конкретный корпус GAINTA G521-B, поэтому такие размеры и вышли.

Фюзы при прошивке МК:

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

Программная часть.

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

Светодиод GSM, варианты индикации:
Мигает 2 раза в секунду- нет регистрации в сети GSM.
Постоянно горит- модуль успешно зарегистрирован в сети GSM.

Светодиод GPS, варианты индикации:
Мигает 2 раза в секунду- спутники GPS не найдены.
Горит постоянно- спутники GPS успешно найдены.

Светодиод SYSTEM, варианты индикации:
Мигает 2 раза в секунду- не установлен «мастер номер»
Загорелся вовремя работы- есть принятое SMS сообщение или зарегистрирован входящий голосовой вызов.
Погас после того как загорелся вовремя работы- входящее SMS сообщение или голосовой вызов успешно обработаны.

Комбинированные варианты индикаций:
Одновременно мигают все три светодиода 1 раз в секунду- запуск устройства, идёт процесс инициализации модуля SIM808
Горит постоянно GSM, SYSTEM мигает 2 раза в секунду- не установлен «мастер номер»

Индикация SYSTEM при нажатии на кнопку RESTORE:
Кнопка нажата, светодиод SYSTEM мигает 1 раз в секунду- таймер отсчитывает 20 секунд до сброса памяти.
Кнопка нажата, светодиод SYSTEM мигает 5 раз в секунду- до этого кнопка была нажата в течении 20 секунд, сброс памяти выполнен, кнопку можно отпускать, после чего в течении 5 секунд светодиод будет мигать 10 раз в секунду, произойдёт перезагрузка модуля, память EEPROM будет стёрта, устройство вернётся к нулевому состоянию.

Функции и алгоритм работы

И так. Для начала поясню- зачем же всё-таки нужен ключ питания? Подразумевается, что наш «маяк» будет передвигаться по просторам нашей (а может и не только) Родины, например, встроенным в какой- то авто. Не суть и не важно, куда он там будет встроен, ключевое передвигаться. Так вот, многие из вас наблюдали такую ситуацию, что при пересечении той или иной области страны, ваш телефон теряет регистрацию в сети и пока его не перезагрузить- толку от него ноль. Здесь- то как раз и нужен ключ питания, работает это так- МК постоянно, с периодичностью 30 секунд проверяет регистрацию в сети GSM и если таковой не окажется, МК начнёт паниковать, запрашивая регистрацию уже через каждые 4 секунды и если SIM так и не перерегистрируется сам в течении половины минуты, то МК его просто перезагрузит, при чём жестко и по питанию. Вот кто- то уже хочет возразить, мол на это команда есть, что его по питанию дёргать…. Ан нет и тут всё не так просто, хоть этот модуль хорош во всех отношениях и смыслах, грешки за ним имеются. Может он, увы, повиснуть, замолкает и не реагирует на UART и PWRKEY вообще, это бывает крайне ооооочень редко, но ведь может. И тут тоже спасает ключ питания, если от модуля в течении 30 секунд не будет ни ответа не привета, то МК снова запаникует и просто его перезагрузит. Разобрались с питанием. GPS, тут попроще будет. Состояние, как вы догадались, может быть или «спутники найдены» или «спутники не найдены». Видны они или нет- можно понять по индикатору (см. выше). А дальше всё просто, МК запрашивает GPS координаты каждые 10 секунд и запоминает их, если извлечь координаты не вышло- значит нет спутников, ничего страшного попробуем позже, через 10 секунд. Таким образом, модуль постоянно опрашивается (зачем см. выше), а в памяти всегда текущие и актуальные координаты.

Теперь как происходит диалог между «маяком» и его владельцем. Варианта 2, голосовой вызов и SMS команда. До SMS чуть позже, пока начнём с голосового вызова.
После первой прошивки МК устройства (или сброса по нажатию и удержанию в течении 20 сек. кнопки RESTORE) его потребуется «приручить» - сообщить ему основной номер владельца, с которого будет возможен «мастер- доступ».

Сразу о доступах. Для того, чтобы не городить огород, выдумывая и запоминая всякого рода пароли, шифры и т.д., МК имеет таблицу разграничения прав доступа, идентификация «от кого поступило SMS или голосовой вызов» происходит по номеру, который содержится в сообщении или строке вызова. Проще говоря, доступ к устройству определяется по номеру абонента, а не по паролю или «мамой клянусь - это я». Что собственно целиком и полностью упрощает жизнь владельца. Если номер не найден в памяти- голосовой вызов игнорируется, а SMS сразу удаляется без прочтения. Всего номеров в памяти «маяка» может быть 5, 1- это «мастер номер», имеющий все права и 4- это «доп. номера», которые позволяют получать информацию, но не дают права на внесение изменений в память. Так что же у нас насчёт «приручить», и так. Прошили Вы МК (или сбросили память), для того что бы «привязать» свой номер к «маяку» и задать его как «мастер- номер», достаточно просто позвонить на «маяк». Проще, номер первого входящего голосового вызова будет запомнен как «мастер», теперь он успешно будет сохранён в EEPROM, от куда будет извлекаться в ОЗУ только при старте или же изменении содержимого EEPROM. Последующие голосовые вызовы (после установки «мастер номера) являются для «маяка» командой на запрос текущего местоположения. Соответственно, если вы позвонили с номера, который известен «маяку»- то при первом же гудке модуль завершит вызов, а в ответ вы получите SMS с текущим местоположением, результат будет такой же, как и при команде «?» (см. таблицу команд).
А теперь к SMS командам. Проще всего будет описать команды в виде вот такой таблицы:

Добавлю к таблице команд. «Аварийный режим» т.е. «?!» отменяется или голосовым вызовом или командой «?».

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

Запрос баланса:

 

Добавление дополнительного номера:

 

Запрос текущего местоположения:

 

Как видно, телефон распознаёт ссылку в SMS сообщении, поэтому для того чтобы перейти на карту с указателем- достаточно просто кликнуть на этот URL. После чего у вас сразу откроется вот такая карта:

В основном, погрешность не более двух метров.

На последок пару фотографий «маяка» в том виде, в котором он существует сейчас. Каюсь, до последнего ждал платы из Китая, хотел собрать девайс в том виде, в котором он и должен быть т.е. в SMD варианте, но увы, платы так и не приехали, а приём конкурсных работ уже подходил к концу, ждать дальше уже не имело смысла. Поэтому простите, но сейчас только в DIP’е, GSM антенна отключена в виду того, что приклеена на верхнюю крышку корпуса, мешалась:

В сборе, корпус GAINTA G-521B

 

P.S. Приоткрою маленький секрет. Если моя работа будет интересна, то следующим этапом есть мысль о реализации уже полноценного «GPS-IP трекера», с прорисовкой маршрута и прочими плюшками, тем более что платформа имеется. Или же также «GPS-SMS» вариант, только модернизированный. Посмотрим. А вот «идеи и хотелки» с вас, дорогие друзья! Сейчас, уже на уме следующие функции для реализации:
• Контроль напряжения в бортовой сети авто (аварийные оповещения в том числе)
• Охранные оповещения (а надо ли……?)
• Встроить акселерометр
• Ну и ещё пару мелочей

 Всего наилучшего! До новых встреч и добро пожаловать на форум! Ждите новых статей ;)

В архиве:
1. Список SMS команд
2. Печатные платы
3. Прошивка
4. Схемы
5. Фюзы МК


Файлы:
Файлы проекта


Все вопросы в Форум.


ID: 2579

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

83 6 2
2
Подробно