116 lines
3.9 KiB
Markdown
116 lines
3.9 KiB
Markdown
# 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
|
||
``` |