# 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 ```