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-сообщения при изменении положения:
{"position":"top"}
{"position":"middle"}
{"position":"bottom"}
Установка и загрузка
Требования
- PlatformIO (расширение для VS Code или CLI)
- USB-кабель для подключения платы
Шаги
-
Клонируйте или скопируйте проект
-
Откройте проект в PlatformIO
В VS Code: File → Open Folder → выберите папку
KgeuTraining -
Подключите плату к компьютеру через USB
-
Соберите проект
Нажмите кнопку "Build" (галочка) на панели PlatformIO или выполните:
pio run -
Загрузите прошивку на плату
Нажмите кнопку "Upload" (стрелка) на панели PlatformIO или выполните:
pio run --target upload -
Откройте монитор порта (опционально)
Для просмотра логов нажмите "Serial Monitor" или выполните:
pio device monitor
Возможные проблемы
- Порт не определяется: Установите драйверы CH340 или CP2102 (в зависимости от платы)
- Ошибка загрузки: Попробуйте удерживать кнопку BOOT на плате во время загрузки
- Не удаётся подключиться к WiFi: Убедитесь, что плата запустилась (проверьте логи в мониторе)
Использование
- Включите устройство
- Подключитесь к WiFi сети
KgeuTraining_APс паролем12345678 - Подключитесь к TCP серверу:
192.168.4.1:8080 - Получайте данные о положении в реальном времени
Пример подключения (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)
nc 192.168.4.1 8080