● HA작업)ESP32 에 인체감지 LD2410S LD2410B 를 HAOS esphome 연결작업 하기
♨ 카랜더 일정 :
2024년04월06일
본문
● HA작업)ESP32 에 인체감지 LD2410S LD2410B 를 HAOS esphome 연결작업 하기
pir과 mmwave의 차이는
pir는
on off 동작 시간을 주어 on off 되나 연속 재실상태를 감지가 어려우며
mmvave 을 사용하면
재실감지가 바로 on 후 off 되고
장점으로 재실시 연속으로 동작 계속 on 상태 유지 합니다
제일 쓸만한 mmwave는 5v용 ld2410c 입니다.
주) 3.3v 연결시 열폭주 발생 합니다.
을 추천 하며
적용가능한 소스중에
https://github.com/rainchi/ESPHome-LD2410/blob/main/ld2410.yaml
https://cafe.naver.com/koreassistant/14129
소스를 참조 합니다
제품 구입정보
주) pin 의 피치가 너무 작은것 구입시 주의 >> 다음 ld2420c(5V용) 구입 추천 합니다.
ld2410s는 3.3v용입니다 ( 5v 연결 테스트후 작동불능 됬음)
LD2410C 24GHz 휴먼 프레전스 센서 FMCW 웨이브 레이더 유도 모듈 바디 하트 비트 감지 센서 고정밀
https://ko.aliexpress.com/item/1005005400130647.html?
5V용 입니다 >> 3.3v에 잘못 연결시 열 발생이 심합니다.
esp32보드의 pin정보
아두이노 ESP32 ESP-32 ESP32-WROOM-32 30PIN 2코어 와이파이-WIFI 블루투스-BlueTooth USB C-Type
https://www.youtube.com/watch?v=H1qk0tn6_5M
연결정보)
1)실물을 배송제품을 정확히 pin 정보를 확인 해야 합니다
2) rx와 tx의 상대 pin으로 gpio1,3 pin연결
3) 감지 신호 연결 gpio5
4) 연결후 자동화 TTS로 연결 상태 멀리에서 확인 방송 확인
ESP32-S3 개발 키트에 ld2410s 작업
Espressif Systems ESP32-S3 개발 키트는 완전한 Wi-Fi 및 Bluetooth LE 기능을 통합하는 범용 Wi-Fi + BLUETOOTH® LE MCU 모듈인 ESP32-S3-WROOM-1 또는
이보드 구입시 주의점은 5v를 사용 불가능 합니다.
제품 정보
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
1)ESPRESSIF ESP32-WROOM-32
2) LD2410B + LED
2V 20MA 1.3V 440옴
HC-SR602 연결 gpio23
========= 최종 추천 보드 ================
WeActStudio.ESP32C3CoreBoard
https://github.com/WeActStudio/WeActStudio.ESP32C3CoreBoard.git
위액트 스튜디오 ESP32-C3FH4 코어 보드 에
https://www.espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf
제일 쓸만한 5v용 ld2410c 입니다.
설정 GPIO 번호
적용가능한 소스중에
GPIO2가 감지되면 LED_GPIO5_sw가 켜지고, 감지되지 않으면 LED_GPIO5_sw가 꺼지도록 설정하려면,
on_press
와 on_release
트리거를 사용하여 구성할 수 있습니다. 아래는 수정된 코드입니다:
뷰PDF 1,2
office view
관련자료
-
링크
-
첨부
-
이전
-
다음
댓글목록
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일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
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
mmWave Wars: one sensor (module) to rule them all
https://community.home-assistant.io/t/mmwave-wars-one-sensor-module-to-rule-them-all/453260/2
https://www.youtube.com/watch?v=dAzHXpP3FcI
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
ESP32 보드와 LD2410S 센서를 연결하는 방법은 다음과 같습니다:
ESP32의 RX 핀을 LD2410S의 TX 핀에 연결합니다.
ESP32의 TX 핀을 LD2410S의 RX 핀에 연결합니다.
이렇게 하면 ESP32 보드와 LD2410S 센서 간의 통신이 가능해집니다. 하지만, 핀 배치가 보드에 따라 다를 수 있으므로, 사용하시는 보드의 문서를 참조하시는 것이 좋습니다12.
참고로, ESP32와 LD2410S 센서를 사용하여 프로젝트를 진행하실 때는 해당 장치들의 라이브러리와 예제 코드를 참조하시는 것이 도움이 될 수 있습니다12. 특히, LD2410S 센서는 주파수를 이용하여 정지한 물체와 이동하는 물체에 대한 거리를 측정하는 모듈로, 다양한 응용이 가능합니다1.
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일저언상님의 댓글
저언상 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (59.♡.212.197) 작성일
잘부탁드립니다
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일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};
^
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
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
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” 메시지는 컴파일 과정이 성공적으로 완료되었음을 나타냅니다. 이는 코드가 성공적으로 컴파일되었으며, 이제 실행 파일을 생성하는 단계에 도달했음을 의미합니다. 이 메시지는 보통 컴파일 경고나 에러가 없을 때 출력됩니다. 그러나 이 경우에는 경고가 있었지만, 이 경고가 치명적이지 않아 컴파일이 계속 진행되었음을 나타냅니다. 이 경고를 해결하면 코드의 품질을 더욱 향상시킬 수 있습니다.
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}; 형식으로 변경
# ============================================
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
LD2410 블레 - hlk-ld2410b
https://community.home-assistant.io/t/ld2410-ble-hlk-ld2410b/529619/54
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
ESPHome-LD2410 /ld2410.yaml
https://github.com/rainchi/ESPHome-LD2410/blob/main/ld2410.yaml
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
https://github.com/rainchi/ESPHome-LD2410/blob/main/ld2410.yaml
소스 적용시
=============================
나
In file included from src/main.cpp:125:
src/ld2410_uart_rainchi.h: In member function 'void LD2410::setConfigMode(bool)':
src/ld2410_uart_rainchi.h:217:27: warning: narrowing conversion of '(enable ? 255 : 254)' from 'int' to 'char' inside { } [-Wnarrowing]
char cmd[2] = {enable ? 0xFF : 0xFE, 0x00};
~~~~~~~^~~~~~~~~~~~~
src/ld2410_uart_rainchi.h: In member function 'void LD2410::setEngineeringMode(bool)':
src/ld2410_uart_rainchi.h:245:27: warning: narrowing conversion of '(enable ? 98 : 99)' from 'int' to 'char' inside { } [-Wnarrowing]
char cmd[2] = {enable ? 0x62 : 0x63, 0x00};
~~~~~~~^~~~~~~~~~~~~
In file included from src/main.cpp:125:
src/ld2410_uart_rainchi.h: In member function 'void LD2410::setBaudrate(int)':
src/ld2410_uart_rainchi.h:273:33: warning: narrowing conversion of 'index' from 'int' to 'char' inside { } [-Wnarrowing]
char value[2] = {index, 0x00};
에러 정수처리 해주세요
Copilot
코드에서 발생하는 경고는 'narrowing conversion’으로, 이는 특정 타입의 값을 다른 타입으로 변환하려고 할 때 발생합니다. 이 경우에는 int 타입을 char 타입으로 변환하려고 하면서 문제가 발생했습니다.
이를 해결하기 위해 static_cast<char>를 사용하여 명시적으로 형 변환을 수행할 수 있습니다. 아래는 수정된 코드입니다:
src/ld2410_uart_rainchi.h: In member function 'void LD2410::setConfigMode(bool)':
char cmd[2] = {static_cast<char>(enable ? 0xFF : 0xFE), 0x00};
src/ld2410_uart_rainchi.h: In member function 'void LD2410::setEngineeringMode(bool)':
char cmd[2] = {static_cast<char>(enable ? 0x62 : 0x63), 0x00};
src/ld2410_uart_rainchi.h: In member function 'void LD2410::setBaudrate(int)':
char value[2] = {static_cast<char>(index), 0x00};
이렇게 하면 int를 char로 안전하게 변환할 수 있습니다. 그러나 이렇게 하면 데이터 손실이 발생할 수 있으므로 주의해야 합니다. 예를 들어, char는 일반적으로 -128에서 127까지의 값을 저장할 수 있으므로, 이 범위를 벗어나는 int 값은 잘릴 수 있습니다. 이 점을 염두에 두고 코드를 작성해야 합니다.
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
GPIO2가 감지되면 LED_GPIO5_sw가 켜지고, 감지되지 않으면 LED_GPIO5_sw가 꺼지도록 설정하려면, on_press와 on_release 트리거를 사용하여 구성할 수 있습니다. 아래는 수정된 코드입니다:
output:
- platform: gpio
pin:
number: GPIO5
inverted: true
id: led_output
light:
- platform: binary
name: "mmwave_led"
output: led_output
id: LED_GPIO5_sw
binary_sensor:
- platform: gpio
name: "2410_mmwave_G2"
id: mmwave
device_class: occupancy
pin:
number: GPIO2
mode: INPUT_PULLUP
on_press:
then:
- light.turn_on: LED_GPIO5_sw
on_release:
then:
- light.turn_off: LED_GPIO5_sw
이 설정은 GPIO2 핀이 감지되면 (즉, 스위치가 눌릴 때) LED_GPIO5_sw 라이트가 켜지고, 감지되지 않으면 (즉, 스위치가 떼어질 때) LED_GPIO5_sw 라이트가 꺼집니다12. 이 코드를 ESPHome 구성 파일에 추가하면 됩니다. 추가적인 질문이 있으시면 언제든지 알려주세요! ????
11qkr님의 댓글
11qkr 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
github에 있는 소스는 먹통 증상 발생
카페내 자료 로 소스 변경
https://cafe.naver.com/koreassistant/14129
♥간단_메모글♥
-
등록일 04.15가입 인사드립니다.댓글 2
-
등록일 04.09가입인사.댓글 2
-
등록일 03.03안녕하세여댓글 1
-
등록일 02.13
최근글
-
등록일 05.09
새댓글
-
등록자 11qkr 등록일 02:42
-
등록자 fdlkjfekle 등록일 05.09
-
등록자 11qkr 등록일 05.09
-
등록자 작은알맹이 등록일 05.09
-
등록자 작은알맹이 등록일 05.09
오늘의 홈 현황
QR코드
☞ QR코드 스캔은 kakao앱 자체 QR코드