Files
rostpoliplast/Move/ld2410b_counter.md
T
Mephimeow fe740da06b +move
2026-04-29 10:24:42 +00:00

4.2 KiB
Raw Blame History

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
  • Диапазон: 10100
  • Чем выше — тем меньше ложных срабатываний, но нужно больше энергии движения для детекции

Min / Max Distance

  • По умолчанию: 75200 см
  • Установите диапазон, в котором товары проходят через луч
  • LD2410B имеет минимальную дистанцию ~75 см (gate 0)

Установка

# Установите ESPHome
pip install esphome

# Скомпилируйте и залейте
esphome run ld2410b_counter.yaml

secrets.yaml

Создайте файл secrets.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 в коде.