# Тренировочное приложение КГЭУ Android-приложение для проведения и учёта тренировок с использованием тренажёра, подключённого к ESP32. ## Описание Приложение позволяет: - Регистрировать участников тренировок - Создавать и выбирать сценарии упражнений - Проводить тренировки с автоматическим подсчётом подъёмов - Отслеживать пульс через Bluetooth-кардиодатчик - Просматривать статистику тренировок ## Режимы тренировок ### Режим на время (TIME_BASED) - Задаётся время выполнения упражнения в секундах - Приложение считает количество выполненных подъёмов - Норматив: минимальное количество подъёмов за заданное время ### Режим на количество (COUNT_BASED) - Задаётся целевое количество подъёмов - Приложение засекает время выполнения - Норматив: максимальное время для выполнения заданного количества подъёмов ## Технические требования - Android 14 (API 34) или выше - Bluetooth для подключения кардиодатчика - WiFi для подключения к ESP32 ## Подключение к оборудованию ### ESP32 Приложение подключается к ESP32 по TCP/IP. ESP32 должен отправлять JSON-сообщения с положением груза: ```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. Клонируйте репозиторий: ```bash git clone cd AndroidStudioProjects ``` 2. Откройте проект в Android Studio: - File → Open → выберите папку проекта 3. Дождитесь синхронизации Gradle (происходит автоматически) 4. Соберите проект: - 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. Проверьте подключение: ```bash adb devices ``` 4. Установите APK: ```bash adb install app/build/outputs/apk/debug/app-debug.apk ``` Или соберите и установите одной командой: ```bash ./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. Удалите предыдущую версию приложения, если она установлена ## Лицензия Разработано для КГЭУ (Казанский государственный энергетический университет).