홈으로 돌아가기

HLK-LD2450: ESPHome 및 Home Assistant와의 깊은 통합

밀리미터파 레이더 HLK-LD2450의 잠재력을 완전히 발휘하는 방법을 알아보세요. 바이너리 프로토콜과 ESP-IDF를 사용하여 ESPHome 및 Home Assistant를 통해 레지스터, 존을 구성하고 Multi-Target 타겟을 추적하세요.

HLK-LD2450: ESPHome 및 HA를 사용한 스마트 홈에서의 완전한 레이더 제어
Advertisement 728x90

HLK-LD2450 심층 통합: ESPHome 및 Home Assistant를 통한 밀리미터파 레이더 제어

저렴한 가격에도 불구하고, HLK-LD2450 밀리미터파 레이더는 움직임뿐만 아니라 최대 세 개의 목표물의 정확한 좌표, 속도, 각도까지 동시에 감지할 수 있는 강력한 존재 감지 센서입니다. 하지만 표준 솔루션의 한계로 인해 그 잠재력을 온전히 활용하지 못하는 경우가 많습니다. 이 글에서는 ESPHome과 Home Assistant를 사용하여 LD2450을 스마트 홈 생태계에 완벽하게 통합하는 방법을 제시합니다. 이를 통해 중간 계층 없이 레이더의 바이너리 프로토콜을 통해 모든 하드웨어 매개변수를 심층적으로 제어할 수 있습니다.

표준 시나리오에서 HLK-LD2450의 기능 및 한계

LD2450 센서는 24GHz 주파수에서 작동하며, 0.5m에서 8m까지의 감지 범위와 ±60°의 넓은 수평 시야각을 제공합니다. 통신은 256000 보드 속도로 UART를 통해 바이너리 프로토콜을 사용하여 이루어지며, 이는 AT 명령으로 제어되는 장치와 차별화됩니다. 핵심 하드웨어 기능 중 하나는 밀리미터 단위의 직사각형으로 정의할 수 있는 세 개의 구성 가능한 영역입니다. 레이더는 이러한 영역 내에 있는 목표물에 대해서만 데이터를 제공하여 자체적으로 목표물을 필터링할 수 있습니다.

LD2450을 '기본 상태'로 사용할 때 사용자들이 직면하는 주요 과제는 고급 기능에 대한 접근이 제한적이라는 점입니다. 대부분의 상용 솔루션은 데이터 스트림을 읽는 데만 집중하여 동적 구성 기능을 무시합니다. 하드웨어 영역은 건드리지 않거나, 종종 Windows에서만 사용할 수 있는 특수 HLK-LD2450_TOOL을 사용하여 한 번만 구성됩니다. 민감도, 에너지 임계값, 작동 모드(일반, 고감도, 저전력, 고정밀), 목표물 유지 시간과 같은 중요한 매개변수는 장치의 레지스터에 저장되지만, 일반적으로 홈 자동화 시스템에서는 수정할 수 없습니다. 이는 변화하는 환경에 대한 적응형 응답이 필요한 복잡한 시나리오에서 센서의 유연성을 크게 떨어뜨립니다.

Google AdInline article slot

심층 통합의 목표:

LD2450의 잠재력을 완전히 발휘하기 위해, 표준 방법으로는 달성할 수 없는 다음과 같은 주요 목표가 수립되었습니다.

  • 동적 영역 관리: Home Assistant에서 하드웨어 영역의 좌표와 크기를 직접 변경할 수 있는 기능. 이를 통해 야간 모드나 가구 배치가 변경될 때와 같이 다양한 시나리오에 맞게 감지 영역을 조정할 수 있습니다.
  • 정밀한 민감도 조정: 오탐지를 최소화하고 특정 조건에서 감지를 최적화하기 위해 레이더 민감도, 에너지 임계값, 목표물 유지 시간 및 속도 필터를 조절하는 기능.
  • 작동 모드 전환: 전력 소비 또는 정확도 요구 사항에 따라 일반, 고감도, 저전력 및 고정밀 모드 간 전환.
  • 업데이트 빈도 제어: 응답성과 시스템 부하의 균형을 맞추기 위해 데이터 새로 고침 빈도 조정.
  • 구성 지속성: 전원 손실 후에도 수정된 설정을 유지하기 위해 레이더의 내부 메모리에 저장하는 기능.
  • 다중 목표물 모니터링: 복잡한 존재 감지 시나리오에 필수적인 최대 세 개의 목표물에 대한 좌표를 포함한 실시간 데이터 동시 확보.

네이티브 ESPHome 컴포넌트의 장점 및 ESP-IDF로의 전환

앞서 언급된 기능을 구현하기 위해 ESPHome용 네이티브 ld2450 컴포넌트가 개발되었습니다. 이 접근 방식은 중간 프로토콜이나 추상화 없이 센서의 UART와 직접 상호 작용하여 바이너리 명령을 보내고 응답을 처리할 수 있게 합니다. 직접적인 레지스터 접근은 장치에 대한 완전한 제어를 제공하여, 장치를 "블랙박스"에서 완전히 관리 가능한 센서로 변화시킵니다.

Google AdInline article slot

높은 UART 속도(256000 보드)에서 안정적인 작동을 달성하는 데 핵심적인 부분은 Arduino 프레임워크에서 ESP-IDF로의 마이그레이션이었습니다. 빠른 프로토타이핑에는 편리하지만, Arduino 프레임워크는 이러한 속도에서 UART와 함께 작동할 때 불안정성을 보이는 경우가 많아 데이터 손실이나 통신 오류로 이어질 수 있습니다. ESP-IDF로의 전환은 다음과 같은 이점을 가져왔습니다.

  • 향상된 UART 안정성: ESP-IDF는 레이더로부터의 고속 데이터 전송에 필수적인 보다 안정적이고 예측 가능한 주변 장치 작동을 보장합니다.
  • 리소스 최적화: ESP-IDF 기반 펌웨어는 플래시 메모리를 덜 차지하고(약 17% 감소) RAM 소비량도 적습니다. 이는 ESP32 리소스를 다른 작업에 할당하여 전반적인 시스템 성능을 향상시킵니다.
  • 미래 대비: ESPHome은 기본적으로 ESP-IDF로의 전환을 적극적으로 진행하고 있으므로, 이는 전략적으로 현명한 선택이며 향후 플랫폼 업데이트와의 호환성을 보장합니다.

바이너리 프로토콜 및 레지스터 관리 상세 분석

HLK-LD2450과의 상호 작용은 특정 바이너리 명령을 전송하여 수행됩니다. 각 명령은 엄격하게 정의된 구조를 가집니다.

Header: FD FC FB FA
Length: 2 bytes (little-endian)
Command: 2 bytes
Data: N bytes
Footer: 04 03 02 01

주요 매개변수 구성을 위한 명령 예시:

Google AdInline article slot
  • 민감도 설정 (명령 0x64): 이 매개변수를 통해 8개의 다른 범위 세그먼트에 걸쳐 객체 감지에 대한 레이더의 응답을 조정할 수 있습니다. 유연한 민감도 조정은 오탐지를 최소화하고 환경에 따라 센서 성능을 최적화합니다.

```c

uint8_t cmd_sensitivity[] = {

0xFD, 0xFC, 0xFB, 0xFA,

0x0A, 0x00,

0x64, 0x00,

sens, sens, sens, sens, sens, sens, sens, sens, // 8 sensitivity values

0x04, 0x03, 0x02, 0x01

};

```

  • 에너지 임계값 구성 (명령 0x60): 에너지 임계값은 사소한 간섭이나 매우 작은 물체로 인해 발생할 수 있는 약한 반사를 필터링합니다. 이 임계값을 높이면 오탐지 가능성이 줄어듭니다.

```c

uint8_t cmd_energy[] = {

0xFD, 0xFC, 0xFB, 0xFA,

0x04, 0x00,

0x60, 0x00,

(uint8_t)(energy & 0xFF),

(uint8_t)((energy >> 8) & 0xFF),

0x04, 0x03, 0x02, 0x01

};

```

마찬가지로, 다른 중요한 매개변수들도 바이너리 프로토콜을 통해 구성됩니다.

  • 목표물 유지 시간 (명령 0x61): 목표물이 감지 영역을 벗어난 후 레이더가 목표물의 존재를 보고할 시간을 결정합니다.
  • 속도 필터 (명령 0x62): 지정된 임계값 미만으로 움직이는 물체를 무시할 수 있도록 하여, 느리고 관련 없는 움직임을 필터링하는 데 유용합니다.
  • 작동 모드 (명령 0x65): 특정 작업에 따라 최적화를 위해 일반, 고감도, 저전력 및 고정밀 모드 간 전환.
  • 업데이트 빈도 (명령 0x66): 레이더가 목표물 데이터를 전송하는 빈도를 설정합니다.

이 모든 설정은 Home Assistant에 통합되어 사용자 인터페이스를 통해 수정할 수 있습니다. 변경 사항을 적용한 후, "레이더에 설정 쓰기" 버튼을 누르기만 하면 새로운 매개변수가 센서의 EEPROM에 저장되어 재부팅 후에도 유지됩니다.

고급 하드웨어 영역 구성 및 다중 목표물 추적

LD2450은 최대 세 개의 하드웨어 감지 영역을 정의할 수 있는 기능을 제공합니다. 각 영역은 센서에 대한 밀리미터 단위의 좌표(X1, Y1, X2, Y2)와 존재 시간 초과(presence timeout)로 지정되는 직사각형입니다. 레이더는 하드웨어 수준에서 데이터를 처리하여 정의된 영역 외부의 목표물을 필터링하므로, 마이크로컨트롤러의 부하를 줄이고 감지 정확도를 높입니다.

깊이별 계단식 영역 구성 예시:

  • 영역 1 (근접): 250–1000mm 깊이에서 2m × 0.75m 영역을 커버합니다. 근접한 물체 감지에 이상적입니다.
  • 영역 2 (중간): 1000–3000mm 깊이에서 4m × 2m로 감지 범위를 확장합니다. 더 넓은 공간 모니터링에 사용됩니다.
  • 영역 3 (원거리): 3000–6000mm 깊이에서 6m × 3m 영역을 차지합니다. 원거리 영역 모니터링을 가능하게 합니다.

영역 좌표와 시간 초과는 Home Assistant에서 number 엔티티로 완전히 구성할 수 있습니다. 기본 영역을 적용하고 저장한 후 레이더를 재부팅하는 버튼이 제공됩니다.

기본적으로 LD2450은 단일 목표물에 대한 데이터만 출력할 수 있습니다. 여러 물체를 추적하려면 특수 명령으로 다중 목표물 모드를 활성화해야 합니다. 활성화되면 레이더는 최대 세 개의 개별 목표물에 대한 정보를 전송하기 시작합니다. 다중 목표물 모드에서는 데이터 새로 고침 빈도가 10Hz로 제한되고, 최소 센서 폴링 간격이 100ms라는 점에 유의해야 합니다. ESPHome 구성에는 다중 목표물 모드가 활성화될 때 이러한 제한을 초과하지 않도록 하는 검사가 포함되어 있습니다.

감지된 각 목표물에 대해 다음 데이터가 제공됩니다.

  • X, Y: 밀리미터 단위의 목표물 좌표.
  • 속도: 목표물 이동 속도.
  • 각도: 목표물까지의 각도.
  • 해상도: 감지 해상도.

이 모든 매개변수는 개별 센서로 Home Assistant에 전송되어 공간 내 객체의 위치와 움직임을 상세하게 분석할 수 있습니다.

Home Assistant에서의 시각화 및 실제 적용

Home Assistant와의 통합은 설정 그 이상입니다. 명확한 데이터 표현을 위해 Plotly 카드(HACS를 통해 사용 가능)가 사용되며, 이는 감지된 목표물을 점으로, 구성된 영역을 반투명 직사각형으로 시각화할 수 있게 합니다. 레이더의 커버리지 영역은 점선으로 표시되어 센서의 현재 상태에 대한 완전한 개요를 제공합니다. 시각화 업데이트는 사용자가 구성할 수 있으며, 몇 초마다 발생합니다.

Home Assistant에서 구성 가능한 매개변수 목록:

  • 레이더 민감도: 범위 0–9.
  • 에너지 임계값: 범위 100–10000.
  • 목표물 유지 시간: 범위 0–60초.
  • 속도 필터: 범위 0–100 cm/s.
  • 작동 모드: 일반, 고감도, 저전력, 고정밀.
  • 업데이트 빈도: 1–20 Hz (다중 목표물 모드에서는 최대 10 Hz).
  • 세 가지 영역의 좌표 및 시간 초과.
  • 다중 목표물 및 블루투스 모드 켜기/끄기 (해당하는 경우).

또한, "기본 영역 적용", "레이더에 설정 쓰기", "레이더 재부팅", "공장 초기화"와 같은 편리한 제어 버튼이 구현되어 있습니다. 이를 통해 Home Assistant의 직관적인 인터페이스를 통해 센서를 완벽하게 제어할 수 있습니다.

보조 도구 및 물리적 통합

최종 설치 및 ESP32 연결 전에, HLK-LD2450은 USB-UART 어댑터를 사용하여 사전 구성하거나 테스트할 수 있습니다. 공식 HLK-LD2450_TOOL은 Windows용으로 제공됩니다. Linux/WSL 사용자를 위해 데이터 스트림을 모니터링하고 바이너리 프로토콜을 분석하기 위한 connect_radar.sh 스크립트(usbipd 활용)와 Python 스크립트 radar.py가 개발되었습니다. 데이터 프로토콜이 AA FF 마커를 사용하고, 좌표는 부호 있는 16비트 값으로 전송된다는 점에 유의해야 합니다.

프로젝트에 센서를 물리적으로 통합하기 위해 기성 솔루션이 제공됩니다. 프로젝트 저장소는 인클로저 및 커버 3D 프린팅을 위한 STL 파일을 제공하여 깔끔하고 기능적인 장치 제작을 크게 간소화합니다. 자세한 프린팅 및 조립 권장 사항은 case_stl 폴더 내의 README 파일에서 찾을 수 있습니다.

주요 요점

  • HLK-LD2450에 대한 완전한 제어: 네이티브 ESPHome 컴포넌트는 바이너리 프로토콜을 통해 모든 레이더 레지스터를 제어하여 잠재력을 최대한 발휘할 수 있게 합니다.
  • ESP-IDF를 통한 안정성: ESP-IDF로의 전환은 고속(256000 보드) UART 작동의 신뢰성을 위해 중요하며, Arduino 프레임워크에 비해 뛰어난 안정성과 리소스 최적화를 제공합니다.
  • 동적 하드웨어 영역: Home Assistant에서 최대 세 개의 하드웨어 감지 영역을 직접 구성하고 수정할 수 있는 기능은 다양한 시나리오에서 센서의 유연성을 크게 향상시킵니다.
  • 다중 목표물 추적: 레이더는 최대 세 개의 목표물을 동시에 추적하여 정확한 좌표, 속도 및 각도를 제공함으로써 복잡한 존재 감지 시스템에 새로운 가능성을 열어줍니다.
  • 원활한 Home Assistant 통합: 모든 센서 매개변수와 데이터는 Plotly를 사용한 영역 및 목표물 시각화를 포함하여 Home Assistant 사용자 인터페이스를 통해 접근하고 구성할 수 있습니다.

— Editorial Team

Advertisement 728x90

다음 읽기