Обработка запросов от китайского GPS-Tracker TK-102B

По просьбе страждущих в этой теме: #comment_70408960

Скажу сразу: пост пилить не хотел, т.к. уверен, что далеко не всем это будет интересно, но 3 подписчика меня фактически обязали :-)

Некоторое время назад мною был приобретён на Алиэкспрессе такой вот зверь:

Обработка запросов от китайского GPS-Tracker TK-102B Gps трекер, Карты, Мониторинг, PHP, Mysql, Длиннопост

С трекером возможно общаться по СМС, так же он может работать в режиме передатчика звука и, что самое для меня интересное, может отчитываться на сервер. Этот вариант мы и рассмотрим подробнее.

Для начала необходимо настроить сам трекер. Делается это с помощью СМС команд, отправленных на номер трекера. Стоит отметить, что они могут значительно отличаться в зависимости от версии и прошивки. Для моего это так:

begin123456 - инициализация. Здесь "begin" - команда, а "123456" - стандартный пароль по умолчанию.

password123456 111111 - смена пароля, но мы для простоты будем со старым.

admin123456 +79119876543 - установка телефона администратора (т.е. вашего). До этого момента трекер принимает команды с любого номера, а после только с установленных. Номеров может быть несколько, но начать лучше со своего иначе рискуете потерять управление.

adminip123456 8.8.8.8 2222 - собственно самое важное для нас - указание IP адреса и порта нашего сервера. IP адрес естественно должен быть статичный и внешний. Живущим за роутерами - не забываем пробросить порт.

apn123456 internet.mts.ru - настраиваем выход в интернет. Для каждого оператора строка разная. У меня мтс. Иногда может потребоваться так же пользователь и пароль. Их пишем через пробел т.е. что-то типа:  apn123456 internet.mts.ru mts mts

gprs123456 - собственно переключение на отправку данных с трекера на сервер (тот, что выше указали), а не через СМС.

check123456 - проверка состояния устройства. Ответ придёт в СМС и ОЧЕНЬ сильно зависит от версии/модели/продавца и хрен знает чего ещё. Если на момент проверки у нас УЖЕ работает сервер, о котором ниже, то минимум нам придёт GPRS: OK. Так же обычно есть инфа о заряде батареи и статусе GPS.

t060s***n123456 - собственно интервал отправки данных. 060 говорит об необходимости отправки раз в 60 секунд. *** - количество раз. Если "***" значит бесконечно, но можно указать и число раз. Минимальный интервал около 20 секунд. Я меньше 30 не ставил.

Кроме указанного минимума команд существует ещё множество и они легко гуглятся. Останавливаться тут на них мы не будем. Перейдём к серверу. Тут всё делится на 2 части. 1 часть непосредственно слушает порт, разбирает запросы и записывает это всё в базу. В моём случае рабочая версия у меня на php и пишем в mysql. Делал я это через сокеты. В общих чертах:

Открываем:

$master=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

$res=@socket_bind($master, $ip, $port);

и в цикле читаем как-то приблизительно так:

if (socket_select($read, $NULL, $NULL, 0, 10))

if(in_array($master, $read))

$sockets[]=socket_accept($master);

далее обрабатываем и пишем в базу.

Трекер присылает строку такого вида:

(0270*******2BR00160615A5934.7690N03007.2188E005.9174004242.9700000000L00000000)

Строка всегда в скобках.

Начинается с части (или полного) серийного номера устройства. В нашем случае 0270*******2 (замазал). Далее команда. У нас это BR00 (собственно команда отправки координат). Дальше данные в зависимости от команды. 160615 - дата 15-06-2016 года. "А" якобы говорит о том, что данные актуальные (по документации). Дальше идёт широта и долгота: lat:5934.7690 lon:03007.2188 (преобразовать в нужную систему координат ещё надо). Потом скорость: 5.9 км/ч. Затем время: 17:40:04

Периодически трекер требует так называемый handshake (рукопожатие). Если на него не ответить, то требовать он его будет после каждого ответа. Команда-запрос: BP00. Ответ: (серийный номер+AP01HSO) Более подробно по серверу думаю не уложится в рамки данного поста. Спрашивайте - постараюсь ответить.

Вторая же часть отвечает за вывод из базы на карту. Я сделал это через API yandex карт. Выглядит у меня как-то так:

Обработка запросов от китайского GPS-Tracker TK-102B Gps трекер, Карты, Мониторинг, PHP, Mysql, Длиннопост

Это я к тёще ехал :-) Каждая точка это минута. Соответственно чем выше скорость, тем больше расстояние между точками. Однако реализация визуальной части у каждого может быть своя. Тут огромный простор для фантазии. Читаем из нашей базы и с помощью API формируем фигурами то, что хотим от точки до точки. Можно учитывать дороги, можно получать ближайший адрес (запрещено в бесплатном API в реальном времени, но может тут есть миллионеры, желающие купить платный доступ для бизнеса). Да хоть расход топлива рассчитывайте. Возможностей масса.

Описание самого API тут: https://tech.yandex.ru/maps/ По Гуглу есть аналогичное на гугле.

В заключении хочу сказать, что данный девайс полностью оправдал лично мои надежды, но тут раз на раз не приходится. Ссылку на продавца оставлю в комментариях. Прошу прощения за столь сжатый пост. Инфы действительно ОЧЕНЬ много и всё сюда вероятно не влезет, да и Лига Лени затягивает в свои сети.

TECHNO BROTHER

1.6K постов12.5K подписчиков

Добавить пост

Правила сообщества

1-Мы А-политическое сообщество. 2-Запрещено оскорбление: Администрации Пикабу, сообщества, участников сообщества а также родных, близких выше указанных.

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

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Всем привет! Купил такой трекер, не получается с первой частью, вторую часть уже реализовал

Помогите отблагодарю! мой вк https://vk.com/id212528142


1. Не могу настроить отправку координат на сервер hoster.kz

2. Не могу добавить координаты в bd mysql,


Спасибо!!!!

раскрыть ветку (3)
Автор поста оценил этот комментарий

Про настройку трекера на отправку координат есть в статье. Там всё предельно просто. Если не получается значит что-то они уже поменяли т.к. делалось это уже давно. Вы собираетесь отправлять на адрес хостера ? Своё-то имя есть ? А в чём проблема добавить в mysql ? Mysql на том же сервере куда отправляете ? Т.е. координаты получаете ?

раскрыть ветку (2)
Автор поста оценил этот комментарий
Трекер такой же, команды такие же, просто не хватает мозгов! :)
Подключился к gpshome
Заметил следующую ситуацию, трекер валяется под столом на зарядке, там же и системный блок, когда компьютер включенный, перестают приходить координаты, поставил на стол, иногда не приходят или позиция сильно отклоняется!
Самое приятное, то что не взимается плата за отправку координат, через gprs
раскрыть ветку (1)
Автор поста оценил этот комментарий

Для GPS позиционирования нужно "небо". Чем больше препятствий между трекером и спутниками тем вероятнее, что работать не будет.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку