+move
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
# 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 в коде.
|
||||
Reference in New Issue
Block a user