← Все проекты

02 · Проект

Garmin Tracker

Приложение для Garmin Connect IQ, которое получает координаты с часов и отправляет данные на собственный REST API для дальнейшего хранения и обработки.

Monkey C Garmin Connect IQ Fenix 7X REST API Laravel
01

Задача

Цель проекта — сделать небольшой трекер для Garmin Watch, который может брать GPS-координаты с часов и отправлять их на собственный сервер.

Вместо стороннего сервиса используется собственная связка Garmin Connect IQ → REST API → Laravel → Joomla. Это позволило изучить API Garmin Connect IQ и серверную часть Laravel.

02

Приложение на часах

Клиентская часть написана на Monkey C с использованием Garmin Connect IQ SDK. Приложение работает с позиционированием устройства и коммуникациями.

Monkey CConnect IQ SDK
03

Отправка координат

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

Приложение соединяется с VPS сервером посредством API Connect IQ и отправляет данные.

Laravel обрабатывает полученные данные и записывает в базу данных таблицы Joomla.

Одной из практических задач стала отладка поведения, которое отличалось в симуляторе и непосредственно на Fenix 7X.

04

REST API

На сервере Laravel предусмотрен endpoint для приёма координат и записи в таблицу базы данных Joomla. Запрос содержит идентификатор устройства и координаты.

{
    "device_id": "...",
    "latitude": 0.0,
    "longitude": 0.0
}

Laravel валидирует входные данные, после чего он записывает их в базу данных.

05

Отладка

Самой сложной частью проекта стала отладка реального устройства. В процессе встречались ошибки Monkey C и некорректное функционирование приложение на часах.

06

Что было сложным

  • Разобраться с Connect IQ и Monkey C с нуля.
  • Сделать отправку данных на собственный Laravel API.
  • Отлаживать код одновременно в Simulator и на Fenix 7X.
07

Результат

Получилась связка носимого устройства и собственного backend API. Проект стал практикой работы с нестандартной платформой, сетевыми запросами, GPS и серверной валидацией данных.