Как мы делали автомобильный трекер
Три года назад мы решили делать простое решение: берёшь коробку, кладёшь под капот, платишь 195 рублей в месяц и всегда точно знаешь, где машина. В реальном времени.
Трекеры тогда были, и их было довольно много. Но либо это были варианты от охранных предприятий (дорогие и ориентированные на бизнес), либо такие, которые человек без IT-образования вообще не смог бы использовать. Купить для личного пользования что-то было невозможно.
У меня была задача сделать трекер, который сможет использовать любой автовладелец. То есть железо позволяло, но нужно было сделать так, чтобы эта штука вышла на массовый рынок.
Начали мы с того, что купили несколько железок для опытов и начали смотреть на то, как они будут использоваться. Кто-то увидел, что сын не поехал на дачу; кто-то нашел свою машину на штрафстоянке; кто-то помогал жене доехать до нужного магазина. Я же звонил в страховой автосервис и спрашивал, когда начнут ремонт (у них цех и площадка в разных местах). Они меня уверяли, что работы идут полным ходом — а я просто уточнял, почему тогда машина ещё не в цеху. В общем, оказалось, что «гражданских» применений просто море.
А заодно мы быстро поняли, что имеющееся железо в целом нормальное, но требующее доработок и удешевления, а софт нужно было вообще писать с нуля.
Как работает трекер
- Передаёт данные по запросу или в реальном времени с координатами машины.
- Определяет координаты по GPS, ГЛОНАСС и, что важно, ближайшей станции сотовой сети.
- Пишет трек на наш сервер в личный кабинет клиента.
- Настраивается из личного кабинета или по IVR.
- Оплата не за трафик или что-то ещё непонятное, а просто за услугу – одна и та же в месяц.
Подключение простое – привязать свой номер телефона как номер администратора, установить трекер в автомобиль – и всё.
Первичные тесты
За время тестов выяснилось вот что:
- Трекер должен отдавать данные по GPRS, то есть использовать мобильный интернет, а не SMS. Почти все аналогичные решения отправляли SMS — тогда присутствие в зоне действия базовой станции вовсе не означало наличие GPRS. Мы же, видя, что ситуация очень скоро изменится, сразу заложились на такое требование. Это позволило обновлять данные в реальном времени очень часто, плюс удешевило использование (оно было тогда очень дорогим для абонента) и позволило освободить каналы. Плюс SMS иногда задерживались из-за перегрузки SMS-стека (например, под новый год), что тоже успешно решалось GPRS. При активном использовании, кстати, трекер «кушает» всего 15 мегабайт за месяц.
- Основные проблемы с трекерами у всех были с настройками. Где-то нужен был программатор, где-то решалось подключением к десктопу, но чаще всего — пачкой SMS-команд с достаточно бедной обратной связью. Оказалось, что удобнее всего людям был телефон с IVR, где можно было просто отвечать на вопросы в духе «да» или «нет», нажимая кнопки. Плюс параллельно мы начали разработку понятного веб-интерфейса, где можно было бы посмотреть треки и другую информацию.
Как выбирали поставщика
Мы начали искать поставщика, и нашли одну российскую компанию, которая оценила будущий рынок и сказала, что готова потратить время и силы на то, чтобы доработать железо и низкоуровневое ПО. Они были открыты для наших требований, список которых у нас уже появился. Для начала они собрали типовую железку, которую поставляли ЧОПам, и дали нам партию около 100 штук.
Вторая итерация тестов
Мы раздали их коллегам и, что важнее, водителям. Водители сразу сказали пару очень важных штук:
- Во-первых, стандартный интерфейс подключения питания не подходил. Где-то питание подключалось один раз «навсегда», но в примерно половине случаев водитель втыкал устройство в прикуриватель через систему переходников. Поэтому мы сразу решили включать в базовую комплектацию два шнурка — второй как раз для прикуривателя.
- Во-вторых, мы очень долго мучились с коннектором для входа питания в устройство. В машине постоянная вибрация, поэтому кто-то использовал для прочного крепления винты, кто-то хитрые зажимы. В итоге мы приняли довольно пародоксальное, но логичное решение — RJ-45. Он прост и понятен как разъём, очевидным образом втыкается, уже содержит защёлку и вообще очень удобен водителям.
Укреплённое гнездо
Кабель
- В-третьих, нужен был аккумулятор. Трекер мог остаться без питания на несколько часов если в автомобиле гнездо прикуривателя обесточивается при выключении двигателя (водители беспокоились, что его могут отключить при угоне, например) — но всё равно должен был передавать координаты.
Аккумулятор очень простой и доступный по цене, держит от 4 до 6 часов.
Сами мы параллельно дошли до того, что железка должна легко крепиться на магните куда угодно к корпусу. Чпок — и встал на место. Это оказалось самым простым — сильный магнит ничему внутри не помешал.
Предупреждение на серийной версии
Третья итерация
Поставщик в это время работал с железкой по нашим требованиям. Мы тестировали новые версии. Они собирали её частично из отечественных, частично из китайских комплектующих. С китайцами возникла проблема — в условиях плотной застройки начались неприятные баги с точностью. Выяснилось, что нужно менять чип GPS, скорее всего — вместе с антенной. Оказалось, что наши заводы делают в разы лучше по качеству (что мы ещё умеем делать — так это антенны), плюс получается даже дешевле. Наши партнёры собрали несколько прототипов, поменяли железо, и проблемы с точностью ушли в прошлое.
В это время начали ломаться кабели питания. Оплётка замерзала — в сильные морозы мы его ещё не испытывали. Пришлось искать специальные морозостойкие варианты и тестировать их. Мы их замораживали, а потом сгибали и разгибали несколько сотен раз. В итоге остановились на силиконовой оплётке.
Беспокоились о том, что магнит на трекере заставит некоторых крепить его скрытно где-нибудь внизу машины, что скажется на качестве приёма сигнала — проверили, всё равно ловит уверенно.
Портал
В это время был готов первый веб-интерфейс. Выглядел он инженерно и больше смахивал на расширенную консоль, но уже позволял полноценные тесты с живыми людьми. Следующей итерацией он стал таким, каким должен был быть. Можно было смотреть движение по карте в реальном времени, историю за 3 месяца, быстро ставить машину на охрану, плюс ловить разные предупреждения в виде SMS от сервера вроде того, что аккумулятор почти что сел (очень полезно зимой). Как вы понимаете, мы сделали ещё одну важную вещь – связь была не напрямую с трекером, а с нашим сервером, который конфигурировал трекер:
Упрощённая архитектура решения
Самые частые действия – постановку и отключения режима охраны – мы вынести на короткие номера, звонок на которые, соответственно, активировал нужные режимы. В режиме охраны при отключении питания или движении сразу приходит SMS об этом событии.
Карты
Параллельно мы искали поставщиков карт для отображения в личном кабинете. Задача не совсем тривиальная, потому что закопирайчено всё. В итоге используем бесплатные карты OSM, плюс заключили очень важные договорённости с крупными поставщиками- мы отдаём им обезличенную статистику с трекеров для их сервиса пробок, а они дают нам карты.
В это время начались проблемы с прыжками в треках. Дело в том, что кроме GPS и ГЛОНАСС, мы находили положение автомобиля по ближайшей базовой станции. В случае, когда GPS не было (тоннель, например или колодец из домов, либо пара минут после холодного старта устройства), координаты скакали на несколько километров. Дело
в том, что мы использовали не триангуляцию (её вообще никто не использует — это один из мифов определения положения по базовым станциям), а просто уровень сигнала до ближайшей известной. Пришлось писать очень такую приблизительную и грубую модель поведения автомобиля для исключения сложных случаев. Например, допущение, что трекер не может двигаться со скоростью выше 250 км/ч, позволило убрать 90% ошибочных положений.
Иногда трекер терял связь с базовой станцией, либо делал реконнект на переходе от одной БС к другой. Потребовался небольшой буфер, куда можно было складывать данные между сеансами связи и потом отправлять их пакетом.
Да! Забыл сказать про SIM. Мы использовали обычные SIM-карты, для чего пришлось уменьшать наводки от GSM-модуля. Для большей надежности можно, конечно, вставить и специальную термо-SIM-карту. Если посмотрите на железку – там нет слота под маленькую встраиваемую SIM: из-за большого размера аккумулятора мы выбрали снижение цены за счёт пары лишних миллиметров толщины.
Итог
В результате мы сделали простую и практичную штуку, понятную каждому. Для сравнения:
- GPS-сигнализация стоила около 10 тысяч рублей + подключение.
- ЧОПы брали от 700 рублей в месяц за то, что смотрели за вашей машиной (и исключали только угон, но не давали возможность свободно видеть машину на карте).
- Другие трекеры не были массовыми и стоили на 2-3 тысячи рублей минимум дороже, требовали специальных знаний, не все были готовы к морозам и обходились раза в три дороже в эксплуатации (в частности, из-за стоимости SMS).
Наш трекер стоит 3900, абонплата – 195 рублей в месяц. За абонплату можно ездить по всей стране, но за границей РФ уже начнут списываться дополнительные деньги.
Готовое устройство (серийная модель)
Упаковка
Комплект поставки. Я очень хотел, чтобы там сразу была отвёртка, чтобы не пришлось искать – благо она совсем дешевая.
Отдельная гордость – всё сделано у нас.
Сейчас наш трекер продаётся в Северо-Западном регионе. Всё идёт к тому, что мы будем использовать их во всей сети «Билайн» по России довольно скоро.
Вот так. Если интересно – расскажу ещё пару историй разработки железа у нас.
Автор: Beeline_spb_lab