Обработка запросов от китайского 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-Категорически запрещается разжигание межнациональной розни или действий, направленных на возбуждение национальной, расовой вражды, унижение национального достоинства, а также высказывания о превосходстве либо неполноценности пользователей по признаку их отношения к национальной принадлежности или политических взглядов. Мат - Нежелателен. Учитесь выражать мысли без матерщины

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

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

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

А вот это интересно. Можно немного подробнее про "подключить всю разводку" ?

Я его не разбирал т.к думал там максимум UART какой-нибудь найдётся. Будет приятной неожиданностью если там ещё что-то полезное предусмотрено.

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