# LD2410B Conveyor Counter ESPHome прошивка для подсчета товаров на конвейере с помощью mmWave сенсора **Hi-Link LD2410B** + **ESP32**. Данные передаются через **MQTT**. ## Схема подключения ``` ESP32 DevKit V1 LD2410B ────────────────────────────────── GPIO17 (TX) ────► RX GPIO16 (RX) ────► TX GPIO18 ────► OUT (digital motion) 3.3V / 5V ────► VCC GND ────► GND GPIO2 ────► LED (status, onboard) ``` **Важно:** Питание LD2410B — **5V** (не 3.3V!). UART логика 3.3V — совместима с ESP32. ## Как работает 1. **UART** (256000 baud) — чтение дистанции и энергии движения для каждой "зоны" (gate) 2. **GPIO OUT** — быстрый бинарный сигнал присутствия 3. **Конечный автомат** определяет момент прохода товара: - `State 0` — ожидание - `State 1` — товар в зоне (energy > threshold) - `State 2` — товар прошел (debounce 300ms) → +1 к счетчику ## MQTT топики | Топик | Описание | |---|---| | `ld2410b/conveyor/sensor/items_count/state` | Общий счетчик товаров | | `ld2410b/conveyor/sensor/moving_distance/state` | Дистанция до цели (cm) | | `ld2410b/conveyor/sensor/trigger_distance/state` | Дистанция в зоне детекции | | `ld2410b/conveyor/text_sensor/counter_status/state` | Строка статуса (state, energy, count) | | `ld2410b/conveyor/button/reset_counter/command` | Сброс счетчика (payload: любая) | | `ld2410b/conveyor/number/energy_threshold/command` | Порог энергии детекции | | `ld2410b/conveyor/number/min_distance_cm/command` | Мин. дистанция зоны (cm) | | `ld2410b/conveyor/number/max_distance_cm/command` | Макс. дистанция зоны (cm) | ## Настройка порогов ### Energy Threshold - **По умолчанию:** 50 - **Диапазон:** 10–100 - Чем выше — тем меньше ложных срабатываний, но нужно больше энергии движения для детекции ### Min / Max Distance - **По умолчанию:** 75–200 см - Установите диапазон, в котором товары проходят через луч - LD2410B имеет минимальную дистанцию ~75 см (gate 0) ## Установка ```bash # Установите ESPHome pip install esphome # Скомпилируйте и залейте esphome run ld2410b_counter.yaml ``` ## secrets.yaml Создайте файл `secrets.yaml` рядом с конфигом: ```yaml mqtt_broker: "192.168.1.100" mqtt_user: "esphome" mqtt_pass: "your_password" ``` ## Отладка 1. Откройте веб-интерфейс ESP (по IP устройства) 2. Следите за `Counter Status` — строка вида `State: 1 | E: 65 | D: 120 | Count: 42` 3. Если счетчик не увеличивается: - Уменьшите `Energy Threshold` - Проверьте что товар попадает в диапазон `Min/Max Distance` 4. Если ложные срабатывания — увеличьте `Energy Threshold` или сузьте диапазон дистанций ## Ограничения LD2410B - **Минимальная дистанция:** ~75 см - **Угол обзора:** ~120° (для сужения используйте физический экран/тубус перед сенсором) - **Не различает** направление движения (для этого нужен LD2450 с трекингом X/Y) - **Макс. скорость конвейера:** зависит от размера товаров и debounce (300ms). Для быстрого конвейера уменьшите debounce в коде.