Тренировочное приложение КГЭУ
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
Шаги сборки
- Клонируйте репозиторий:
git clone <url-репозитория>
cd AndroidStudioProjects
-
Откройте проект в Android Studio:
- File → Open → выберите папку проекта
-
Дождитесь синхронизации Gradle (происходит автоматически)
-
Соберите проект:
- Build → Make Project (Ctrl+F9)
Установка на телефон
Способ 1: Через Android Studio (рекомендуется для разработки)
-
Включите на телефоне Режим разработчика:
- Настройки → О телефоне → 7 раз нажмите на "Номер сборки"
-
Включите Отладку по USB:
- Настройки → Для разработчиков → Отладка по USB → Включить
-
Подключите телефон к компьютеру USB-кабелем
-
Разрешите отладку на телефоне (появится диалог при первом подключении)
-
В Android Studio выберите ваше устройство в выпадающем списке устройств (рядом с кнопкой Run)
-
Нажмите Run (Shift+F10) или зелёную кнопку ▶
Способ 2: Установка APK-файла
-
Соберите релизный APK:
- Build → Build Bundle(s) / APK(s) → Build APK(s)
- APK будет в папке
app/build/outputs/apk/debug/
-
Скопируйте APK на телефон любым способом:
- Через USB-кабель
- Через облачное хранилище
- Через мессенджер
-
На телефоне разрешите установку из неизвестных источников:
- Настройки → Безопасность → Неизвестные источники (или аналогичный пункт)
-
Откройте APK-файл на телефоне и установите
Способ 3: Через ADB (командная строка)
-
Установите ADB (входит в Android SDK Platform Tools)
-
Подключите телефон с включённой отладкой по USB
-
Проверьте подключение:
adb devices
- Установите 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
- Проверьте, что телефон и ESP32 в одной WiFi-сети
- Проверьте правильность IP-адреса и порта
- Убедитесь, что ESP32 запущен и слушает указанный порт
Не подключается кардиодатчик
- Убедитесь, что Bluetooth включён на телефоне
- Проверьте, что кардиодатчик активен и не подключён к другому устройству
- Перезапустите кардиодатчик
Приложение не устанавливается
- Проверьте версию Android (требуется 14+)
- Убедитесь, что разрешена установка из неизвестных источников
- Удалите предыдущую версию приложения, если она установлена
Лицензия
Разработано для КГЭУ (Казанский государственный энергетический университет).