first commit

This commit is contained in:
2026-01-22 12:54:20 +03:00
parent ad40e245b7
commit 739df2502b
2 changed files with 268 additions and 83 deletions

116
README.md Normal file
View File

@@ -0,0 +1,116 @@
# KgeuTraining
Приложение для ESP32, отслеживающее положение груза с помощью датчиков Холла и передающее данные по TCP.
## Описание
Устройство создаёт точку доступа WiFi и TCP-сервер. При изменении положения груза (верх, низ, середина) информация отправляется всем подключённым клиентам в формате JSON.
## Оборудование
- **Плата**: Wemos D1 UNO32 (ESP32)
- **Датчики**: 2x NJK-5002C (датчики Холла, NPN, нормально разомкнутые)
- **Питание датчиков**: 5-30В DC
## Схема подключения
| Компонент | Пин ESP32 |
|-----------|-----------|
| Датчик верха (NJK-5002C) | GPIO 4 |
| Датчик низа (NJK-5002C) | GPIO 5 |
### Подключение датчика NJK-5002C
- **Коричневый провод**: +5В (или до 30В)
- **Синий провод**: GND
- **Чёрный провод**: Сигнал → GPIO ESP32
Датчик имеет выход с открытым коллектором (NPN). Внутренняя подтяжка ESP32 включена в коде.
## Параметры WiFi
- **SSID**: `KgeuTraining_AP`
- **Пароль**: `12345678`
- **IP адрес**: `192.168.4.1`
- **TCP порт**: `8080`
## Формат данных
Сервер отправляет JSON-сообщения при изменении положения:
```json
{"position":"top"}
{"position":"middle"}
{"position":"bottom"}
```
## Установка и загрузка
### Требования
- [PlatformIO](https://platformio.org/) (расширение для VS Code или CLI)
- USB-кабель для подключения платы
### Шаги
1. **Клонируйте или скопируйте проект**
2. **Откройте проект в PlatformIO**
В VS Code: File → Open Folder → выберите папку `KgeuTraining`
3. **Подключите плату** к компьютеру через USB
4. **Соберите проект**
Нажмите кнопку "Build" (галочка) на панели PlatformIO или выполните:
```bash
pio run
```
5. **Загрузите прошивку на плату**
Нажмите кнопку "Upload" (стрелка) на панели PlatformIO или выполните:
```bash
pio run --target upload
```
6. **Откройте монитор порта** (опционально)
Для просмотра логов нажмите "Serial Monitor" или выполните:
```bash
pio device monitor
```
### Возможные проблемы
- **Порт не определяется**: Установите драйверы CH340 или CP2102 (в зависимости от платы)
- **Ошибка загрузки**: Попробуйте удерживать кнопку BOOT на плате во время загрузки
- **Не удаётся подключиться к WiFi**: Убедитесь, что плата запустилась (проверьте логи в мониторе)
## Использование
1. Включите устройство
2. Подключитесь к WiFi сети `KgeuTraining_AP` с паролем `12345678`
3. Подключитесь к TCP серверу: `192.168.4.1:8080`
4. Получайте данные о положении в реальном времени
### Пример подключения (Python)
```python
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('192.168.4.1', 8080))
while True:
data = sock.recv(1024)
if data:
print(data.decode())
```
### Пример подключения (netcat)
```bash
nc 192.168.4.1 8080
```