Files
WorkoutHammerAndroid/README.md
2026-01-22 13:00:58 +03:00

8.0 KiB
Raw Blame History

Тренировочное приложение КГЭУ

Android-приложение для проведения и учёта тренировок с использованием тренажёра, подключённого к ESP32.

Описание

Приложение позволяет:

  • Регистрировать участников тренировок
  • Создавать и выбирать сценарии упражнений
  • Проводить тренировки с автоматическим подсчётом подъёмов
  • Отслеживать пульс через Bluetooth-кардиодатчик
  • Просматривать статистику тренировок

Режимы тренировок

Режим на время (TIME_BASED)

  • Задаётся время выполнения упражнения в секундах
  • Приложение считает количество выполненных подъёмов
  • Норматив: минимальное количество подъёмов за заданное время

Режим на количество (COUNT_BASED)

  • Задаётся целевое количество подъёмов
  • Приложение засекает время выполнения
  • Норматив: максимальное время для выполнения заданного количества подъёмов

Технические требования

  • Android 14 (API 34) или выше
  • Bluetooth для подключения кардиодатчика
  • WiFi для подключения к ESP32

Подключение к оборудованию

ESP32

Приложение подключается к ESP32 по TCP/IP. ESP32 должен отправлять JSON-сообщения с положением груза:

{"position": "top"}     // Груз вверху
{"position": "middle"}  // Груз в движении
{"position": "bottom"}  // Груз внизу

Поддерживаемые значения position:

  • top, up — верхнее положение
  • middle, moving, in_motion, motion — груз в движении
  • bottom, down — нижнее положение

Кардиодатчик

Приложение поддерживает Bluetooth-кардиодатчики с протоколом Heart Rate Service (стандартный BLE профиль).

Сборка проекта

Требования

  • Android Studio Ladybug (2024.2) или новее
  • JDK 11
  • Android SDK 36

Шаги сборки

  1. Клонируйте репозиторий:
git clone <url-репозитория>
cd AndroidStudioProjects
  1. Откройте проект в Android Studio:

    • File → Open → выберите папку проекта
  2. Дождитесь синхронизации Gradle (происходит автоматически)

  3. Соберите проект:

    • Build → Make Project (Ctrl+F9)

Установка на телефон

Способ 1: Через Android Studio (рекомендуется для разработки)

  1. Включите на телефоне Режим разработчика:

    • Настройки → О телефоне → 7 раз нажмите на "Номер сборки"
  2. Включите Отладку по USB:

    • Настройки → Для разработчиков → Отладка по USB → Включить
  3. Подключите телефон к компьютеру USB-кабелем

  4. Разрешите отладку на телефоне (появится диалог при первом подключении)

  5. В Android Studio выберите ваше устройство в выпадающем списке устройств (рядом с кнопкой Run)

  6. Нажмите Run (Shift+F10) или зелёную кнопку ▶

Способ 2: Установка APK-файла

  1. Соберите релизный APK:

    • Build → Build Bundle(s) / APK(s) → Build APK(s)
    • APK будет в папке app/build/outputs/apk/debug/
  2. Скопируйте APK на телефон любым способом:

    • Через USB-кабель
    • Через облачное хранилище
    • Через мессенджер
  3. На телефоне разрешите установку из неизвестных источников:

    • Настройки → Безопасность → Неизвестные источники (или аналогичный пункт)
  4. Откройте APK-файл на телефоне и установите

Способ 3: Через ADB (командная строка)

  1. Установите ADB (входит в Android SDK Platform Tools)

  2. Подключите телефон с включённой отладкой по USB

  3. Проверьте подключение:

adb devices
  1. Установите APK:
adb install app/build/outputs/apk/debug/app-debug.apk

Или соберите и установите одной командой:

./gradlew installDebug

Разрешения приложения

При первом запуске приложение запросит разрешения:

  • Bluetooth — для подключения к кардиодатчику
  • Nearby Devices — для сканирования Bluetooth-устройств
  • Internet/Network — для подключения к ESP32

Структура проекта

app/src/main/java/ru/kgeu/training/
├── bluetooth/           # Работа с Bluetooth (кардиодатчик)
├── data/
│   ├── dao/            # Data Access Objects для Room
│   ├── database/       # Конфигурация базы данных
│   ├── model/          # Модели данных (Participant, Scenario, Session)
│   └── repository/     # Репозиторий для работы с данными
├── network/            # TCP-клиент для ESP32
├── ui/
│   ├── navigation/     # Навигация приложения
│   ├── screen/         # Экраны (Compose)
│   ├── theme/          # Тема приложения
│   └── viewmodel/      # ViewModels
├── util/               # Вспомогательные утилиты
├── MainActivity.kt     # Главная Activity
└── TrainingApplication.kt  # Application класс

Настройка подключения к ESP32

IP-адрес и порт ESP32 можно настроить в приложении перед началом тренировки.

По умолчанию:

  • Порт: 8080 (или настраиваемый)
  • Протокол: TCP

Решение проблем

Не подключается к ESP32

  1. Проверьте, что телефон и ESP32 в одной WiFi-сети
  2. Проверьте правильность IP-адреса и порта
  3. Убедитесь, что ESP32 запущен и слушает указанный порт

Не подключается кардиодатчик

  1. Убедитесь, что Bluetooth включён на телефоне
  2. Проверьте, что кардиодатчик активен и не подключён к другому устройству
  3. Перезапустите кардиодатчик

Приложение не устанавливается

  1. Проверьте версию Android (требуется 14+)
  2. Убедитесь, что разрешена установка из неизвестных источников
  3. Удалите предыдущую версию приложения, если она установлена

Лицензия

Разработано для КГЭУ (Казанский государственный энергетический университет).