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

184 lines
8.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Тренировочное приложение КГЭУ
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 <url-репозитория>
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. Удалите предыдущую версию приложения, если она установлена
## Лицензия
Разработано для КГЭУ (Казанский государственный энергетический университет).