코딩정보




● HA작업)ESP32 에 인체감지 LD2410S LD2410B 를 HAOS esphome 연결작업 하기

♨ 카랜더 일정 : 2024년04월06일
  • 링크

  • 첨부

  • 컨텐츠 정보

    본문

    ● HA작업)ESP32 에  인체감지  LD2410S LD2410B 를 HAOS esphome 연결작업 하기


    제품 구입정보

    3232235521_1713842671.769.png


      주) pin 의 피치가 너무 작은것 구입시 주의 >> 다음  ld2420s의 구입 추천 합니다.


    3232235521_1712402840.6664.png

    3232235521_1713844491.7207.png



    esp32보드의 pin정보



    아두이노 ESP32 ESP-32 ESP32-WROOM-32 30PIN 2코어 와이파이-WIFI 블루투스-BlueTooth USB C-Type 

    3232235521_1712677812.8816.png

    3232235521_1712600550.1883.png

    3232235521_1713843075.7232.png

    3232235521_1713848802.4669.png

    https://www.youtube.com/watch?v=H1qk0tn6_5M


    3232235521_1713847422.9512.png


    3232235521_1713844214.5074.png

    연결정보)

    1)실물을 배송제품을 정확히  pin 정보를 확인 해야 합니다

    2) rx와 tx의 상대 pin으로  gpio1,3 pin연결

    3) 감지 신호 연결 gpio5

    4) 연결후 자동화 TTS로 연결 상태 멀리에서 확인 방송 확인

    3232235521_1713844424.4263.png

    3232235521_1713848014.4384.png

    3232235521_1713848042.2463.png


     ld2410 esphome의 esp32 소스 적용 

    1) 단품 연결 wifi 자동연결 구성

    2) ld2410 esphome의 esp32에 적용

    https://community.home-assistant.io/t/mmwave-wars-one-sensor-module-to-rule-them-all/453260/2#hlk-ld2410-5

    YAML 파일 esphome에 적용

    uart_read_line_sensor_ld2410v3.h 의 파일 생성 

    \\192.168.0.35\config\esphome\uart_read_line_sensor_ld2410v3.h



    pin 변경 적 : gpio1,3,5 연결 

    ======================

      includes:
        - uart_read_line_sensor_ld2410v3.h

    ====================

    uart:
      id: uart_bus
      tx_pin:
        number: GPIO1
      rx_pin:
        number: GPIO3
      baud_rate: 256000
      parity: NONE
      stop_bits: 1

    ===================

    binary_sensor:
      - platform: gpio
        name: mmwave_presence_ld2410
        id: mmwave_presence_ld2410
        pin: GPIO5
        device_class: motion
        on_state:
          then:
            - if:
                condition:
                  - binary_sensor.is_off: mmwave_presence_ld2410
                then:
                  - delay: 150ms
                  - script.execute: clear_targets

    =================

    소스 1차 적용

    https://gist.github.com/peyanski/5d46c7323385b38c64235f88e43df8c4

    https://www.simplysmart.house/blog/presence-detection-ld2410-home-assistant#code-for-esphome-202381-and-up


    제품 초기 설치시는 단품 단독으로 구성 확인후 다른 esp32보드에 통합 합니다.


    2차 > 

     ESP32-S3 개발 키트에 ld2410s 이식 작업

    Espressif Systems ESP32-S3 개발 키트는 완전한 Wi-Fi 및 Bluetooth LE 기능을 통합하는 범용 Wi-Fi + BLUETOOTH® LE MCU 모듈인 ESP32-S3-WROOM-1 또는

    3232235521_1713849772.8558.png

    제품 정보

    https://www.mouser.vn/new/espressif/espressif-esp32-s3-dev-kits?_gl=1*xy4k95*_ga*MzMxODA1Njg3LjE3MTI0MDMwMDU.*_ga_15W4STQT4T*MTcxMjQwMzAwNC4xLjAuMTcxMjQwMzAwNS41OS4wLjA.

    https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32

    3232235521_1713856594.171.png

     # ======================================================================
     # 2024_0424_1002_38
     # \\192.168.0.35\config\esphome\esp32-s3-ld2410s.yaml
     # ble및 WIFI 센서를 추가하지 마세요 2024_0424_0956_04
     # 본소스는 https://community.home-assistant.io/t/mmwave-wars-one-sensor-module-to-rule-them-all/453260/2
     # uart_read_line_sensor_ld2410v3.h 에러 대응 타입 변환을 (char) 수행해야 합니다.
     # 예를 들어, char cmd[2] = {(char)(engenable ? 0x62 : 0x63), 0x00}; 형식으로 변경
     # ============================================

    # uart_read_line_sensor_ld2410v3.h 에러 대응 타입 변환을 (char) 수행해야 합니다. 

    수정 버전

    s:\esphome\esp32-s3-ld2410s.yaml

    s:\esphome\uart_read_line_sensor_ld2410v3_11q.h

    초기 통신 상태 확인 을 위하여  logger 의 옵션 level: VERY_VERBOSE 로 확인 하세요

    # ===========================================  #
    # # Enable logging
    # logger:
    #   baud_rate: 0
    #   logs:
    #     sensor: INFO # DEBUG level with uart_target_output = overload!
    #     binary_sensor: INFO
    #     text_sensor: INFO
    # ===========================================  #

    # Enable logging
    logger:
      # baud_rate: 0
      baud_rate: 9600
      # level: DEBUG #기본값
      # level: VERBOSE #사용하지 않는 패킷만 출력
      level: VERY_VERBOSE   #전체 패킷 출력 <<=== 초기설치시 옵션사용

    3232235521_1713921338.7809.png

    3번째 구성>


    1)ESPRESSIF ESP32-WROOM-32

    2) LD2410B + LED

    3232235521_1713934727.2178.png

    2V 20MA 1.3V 440옴 

    HC-SR602 연결 gpio23

    3232235521_1714024040.9878.png

    단독 적용 파일 >> 밑에 파일

    \\192.168.0.35\config\esphome\esp32-2410_pir.yaml

    3232235521_1714025640.4071.png

    LD2410S  제품 정보

    https://www.hlktech.net/index.php?id=1176

    3232235521_1713922033.615.png

    1. 소개

    • HLK-LD2410S 는 HLK-LD2410S 시리즈의 배터리 구동식 초저전력 인체 감지 밀리미터파 센서로,

      극도로 단순화된 24GHz 밀리미터파 센서 하드웨어 LD2410S와 저전력 인체 감지 스마트 알고리즘 펌웨어를 포함하고 있습니다.

    • 하드웨어 LD2410S에는 AIoT 밀리미터파 센서, 고성능 24GHz 1송신기 1수신 안테나 및 주변 회로가 장착되어 있습니다.

      저전력 지능형 인간 존재 감지 알고리즘은 밀리미터파 센서 거리 측정 기술과

      ICL1112 칩의 고급 독점 레이더 신호 처리 및 저전력 제어 기술을 채택하여 동작, 미세 동작 및 서있는 인체를 정확하게 감지합니다.

      저전력 인체 감지 알고리즘 펌웨어는 주로 실내 장면에 적용되며,

      저전력 모드에서 해당 영역에 움직이는 인체가 있는지

      또는 미세하게 움직이는 인체가 있는지 감지하고 감지 결과를 실시간으로 새로 고칩니다 .

    2. 주요 기능

    • 단일 칩 스마트 밀리미터파 센서 SoC 및 스마트 알고리즘 펌웨어 탑재

    • 초소형 센서 크기: 20mm *20mm

    • 기본 감지 구성 로드, 플러그 앤 플레이

    • 24 GHz ISM 대역, FCC, CE, 위원회 스펙트럼 규정 없음 인증

    • 3.3V 전원 공급 장치, 3.0V ~ 3.6V의 넓은 전압 범위 지원

    • 평균 작동 전류 0.1mA @ 1Hz 보고된 주파수

    • 움직이는 물체, 약간 움직이는 물체, 정지된 물체 감지

    • 탐지결과 실시간 보고

    • 탐지 범위 간격 및 표적 소멸 지연 시간 구성을 지원하는 시각화 도구 제공

    • 구역 외부의 간섭으로부터 완전히 보호되는 감지 범위 분할 지원

    • 근접 감지 0.2m, 감지 사각지대 없음

    • 최대 8m까지 모션 바디 감지

    • 큰 감지 각도, 벽 장착용 수평 감지 각도 ±60°

    • 벽면 장착 지원

    • IAP 온라인 업그레이드 지원

    3232235521_1712402351.9819.png


    3.시스템 설명

    3232235521_1712402365.2942.png


    4. 하드웨어 설명

    그림 3-1은 하드웨어 LD2410S의 전면 및 후면 사진을 보여줍니다.

    하드웨어 LD2410S에는 전원 공급 및 통신용으로 J2라는 5개의 핀 구멍(공장 장착 핀)이 예약되어 있습니다.

    J1은 MCU 프로그램을 굽고 디버깅하기 위한 SWD 인터페이스입니다.


    3232235521_1712402391.0701.png

    표 3- 표 3- 1 J1 핀 설명

    J#핀#

    이름

    기능성

    지침

    J1핀1

    접지

    접지(전기 연결)

    -

    J1핀2

    디오

    SWD 인터페이스 데이터 케이블

    0~3.3V

    J1핀3

    CLK

    SWD 인터페이스 클록 라인

    0~3.3V

    J1핀4

    3V3

    전원 입력

    3.0V ~ 3.6V,

    유형 3.3V

    표 3- 표 3- 2 J2 핀 설명

    3232235521_1712402419.6596.png

    5. 설치 및 감지 범위

    [ 추가 정보 ... 더보기) ]
    뷰PDF 1,2



    office view

    관련자료

    댓글목록

    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    # left-top no1 reversclock
    # #no 15 = 5V (좌하단 상으로1)
    # #no 16 = 3.3v (우하단 상으로1)
    # #no 14(좌하단 상으로 2) = GND
    # #no 17(우하단 상으로 2) = GND
    # #no 21 = GPIO16
    # #no 5 = GPIO35
    # #no 10 = GPIO27 2410의 light  ??? GPIO19

    # 28 GPIO1 TXDO
    # 27 GP103 RXDO

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    ESP32 보드와 LD2410S 센서를 연결하는 방법은 다음과 같습니다:

    ESP32의 RX 핀을 LD2410S의 TX 핀에 연결합니다.
    ESP32의 TX 핀을 LD2410S의 RX 핀에 연결합니다.
    이렇게 하면 ESP32 보드와 LD2410S 센서 간의 통신이 가능해집니다. 하지만, 핀 배치가 보드에 따라 다를 수 있으므로, 사용하시는 보드의 문서를 참조하시는 것이 좋습니다12.

    참고로, ESP32와 LD2410S 센서를 사용하여 프로젝트를 진행하실 때는 해당 장치들의 라이브러리와 예제 코드를 참조하시는 것이 도움이 될 수 있습니다12. 특히, LD2410S 센서는 주파수를 이용하여 정지한 물체와 이동하는 물체에 대한 거리를 측정하는 모듈로, 다양한 응용이 가능합니다1.

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
    답변
    profile_image

    저언상님의 댓글

    no_profile 저언상 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (59.♡.212.197) 작성일

    잘부탁드립니다

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    In file included from src/main.cpp:120:
    src/uart_read_line_sensor_ld2410v3.h: In member function 'void LD2410::setConfigMode(bool)':
    src/uart_read_line_sensor_ld2410v3.h:106:31: warning: narrowing conversion of '(confenable ? 255 : 254)' from 'int' to 'char' inside { } [-Wnarrowing]
        char cmd[2] = {confenable ? 0xFF : 0xFE,0x00};
                        ~~~~~~~~~~~^~~~~~~~~~~~~
    src/uart_read_line_sensor_ld2410v3.h: In member function 'void LD2410::setEngineeringMode(bool)':
    src/uart_read_line_sensor_ld2410v3.h:156:30: warning: narrowing conversion of '(engenable ? 98 : 99)' from 'int' to 'char' inside { } [-Wnarrowing]
        char cmd[2] = {engenable ? 0x62 : 0x63,0x00};
                        ~~~~~~~~~~^~~~~~~~~~~~~
    In file included from src/main.cpp:120:
    src/uart_read_line_sensor_ld2410v3.h: In member function 'void LD2410::setBaudrate(int)':
    src/uart_read_line_sensor_ld2410v3.h:192:33: warning: narrowing conversion of 'index' from 'int' to 'char' inside { } [-Wnarrowing]
        char value[2] = {index, 0x00};
                                    ^

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    https://community.home-assistant.io/t/mmwave-wars-one-sensor-module-to-rule-them-all/453260/129

    uart:
      id: uart1
      rx_pin: GPIO13 #(D7)
      tx_pin: GPIO15  #(D8)
      baud_rate: 256000
      data_bits: 8
      stop_bits: 1
      parity: NONE

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    In file included from src/main.cpp:195:
    src/uart_read_line_sensor_ld2410v3.h: In member function 'void LD2410::setEngineeringMode(bool)':
    src/uart_read_line_sensor_ld2410v3.h:157:30: warning: narrowing conversion of '(engenable ? 98 : 99)' from 'int' to 'char' inside { } [-Wnarrowing]
        char cmd[2] = {engenable ? 0x62 : 0x63,0x00};
                        ~~~~~~~~~~^~~~~~~~~~~~~
    In file included from src/main.cpp:195:
    src/uart_read_line_sensor_ld2410v3.h: In member function 'void LD2410::setBaudrate(int)':
    src/uart_read_line_sensor_ld2410v3.h:193:33: warning: narrowing conversion of 'index' from 'int' to 'char' inside { } [-Wnarrowing]
        char value[2] = {index, 0x00};
                                    ^
    Linking .pioenvs/esp32-s3-8m-ld2410s/firmware.elf

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    In file included from src/main.cpp:195:
    src/uart_read_line_sensor_ld2410v3.h: In member function 'void LD2410::setEngineeringMode(bool)':
    src/uart_read_line_sensor_ld2410v3.h:157:30: warning: narrowing conversion of '(engenable ? 98 : 99)' from 'int' to 'char' inside { } [-Wnarrowing]
        char cmd[2] = {engenable ? 0x62 : 0x63,0x00};
                        ~~~~~~~~~~^~~~~~~~~~~~~
    In file included from src/main.cpp:195:
    src/uart_read_line_sensor_ld2410v3.h: In member function 'void LD2410::setBaudrate(int)':
    src/uart_read_line_sensor_ld2410v3.h:193:33: warning: narrowing conversion of 'index' from 'int' to 'char' inside { } [-Wnarrowing]
        char value[2] = {index, 0x00};
                                    ^
    Linking .pioenvs/esp32-s3-8m-ld2410s/firmware.elf
    의 에러를  해결해주세요

    Copilot
    이 코드에서 발생하는 경고는 'narrowing conversion’에 관한 것입니다. 이는 데이터 타입을 더 넓은 범위에서 더 좁은 범위로 변환하려고 할 때 발생합니다. 이 경우, ‘int’ 타입을 ‘char’ 타입으로 변환하려고 하면서 문제가 발생했습니다.

    setEngineeringMode(bool) 함수에서, engenable ? 0x62 : 0x63 표현식은 int 타입의 값을 반환하지만, 이를 char 타입의 배열에 저장하려고 합니다.
    setBaudrate(int) 함수에서는 index라는 int 타입의 값을 char 타입의 배열에 저장하려고 합니다.
    이러한 narrowing conversion은 데이터 손실을 초래할 수 있으므로, 컴파일러는 이를 경고로 알려줍니다. 이를 해결하려면, 적절한 캐스팅을 사용하여 명시적으로 타입 변환을 수행해야 합니다. 예를 들어, char cmd[2] = {(char)(engenable ? 0x62 : 0x63), 0x00};와 같이 작성할 수 있습니다. 이렇게 하면 컴파일러에게 의도적으로 타입 변환을 수행하고 있음을 알려줄 수 있습니다. 그러나 이렇게 하면 데이터 손실의 가능성이 여전히 있으므로, 주의가 필요합니다. 이러한 변환을 수행하기 전에, 변환된 값이 여전히 원하는 범위 내에 있는지 확인해야 합니다.

    마지막으로, “Linking .pioenvs/esp32-s3-8m-ld2410s/firmware.elf” 메시지는 컴파일 과정이 성공적으로 완료되었음을 나타냅니다. 이는 코드가 성공적으로 컴파일되었으며, 이제 실행 파일을 생성하는 단계에 도달했음을 의미합니다. 이 메시지는 보통 컴파일 경고나 에러가 없을 때 출력됩니다. 그러나 이 경우에는 경고가 있었지만, 이 경고가 치명적이지 않아 컴파일이 계속 진행되었음을 나타냅니다. 이 경고를 해결하면 코드의 품질을 더욱 향상시킬 수 있습니다.

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    # ======================================================================
     # 2024_0424_1002_38
     # \\192.168.0.35\config\esphome\esp32-s3-ld2410s.yaml
     # ble및 WIFI 센서를 추가하지 마세요 2024_0424_0956_04
     # 본소스는 https://community.home-assistant.io/t/mmwave-wars-one-sensor-module-to-rule-them-all/453260/2
     # uart_read_line_sensor_ld2410v3.h 에러 대응 타입 변환을 (char) 수행해야 합니다.
     # 예를 들어, char cmd[2] = {(char)(engenable ? 0x62 : 0x63), 0x00}; 형식으로 변경
     # ============================================

    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
    답변
    profile_image

    11qkr님의 댓글

    11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
    답변



    ♥간단_메모글♥


    최근글


    새댓글



    PHP 안에 HTML ☞ 홈페이지 화면갱신 시간은 ♨
    ▶ 2024-05-02 07:47:35

    오늘의 홈 현황


    • 현재 접속자♨ 262 명
    • 오늘 가입자※ 0 명
    • 어제 가입자※ 4 명
    • 주간 가입자※ 16 명
    • 오늘 방문자 1,082 명
    • 어제 방문자 1,557 명
    • 최대 방문자 13,042 명
    • 전체 방문자 4,298,970 명
    • 전체 게시물※ 8,548 개
    • 전체 댓글수※ 24,546 개
    • 전체 회원수 10,944 명

    QR코드


    ☞ QR코드 스캔은 kakao앱 자체 QR코드

    알림 0








    최신글↑