● ESP32 ESP-32 ESP32-WROOM-32 30PIN 에 LD2410C 과 max98357 audio board 연결작업
♨ 카랜더 일정 :
2024년12월08일
본문
● ESP32 ESP-32 ESP32-WROOM-32 30PIN 에 LD2410C 과 max98357 audio board 연결작업
https://cafe.naver.com/homestation/165
에 등록 공유 합니다
box를 만들어 재구성 합니다
esp32보드의 pin정보
아두이노 ESP32 ESP-32 ESP32-WROOM-32 30PIN 2코어 와이파이-WIFI 블루투스-BlueTooth USB C-Type
LD2410C 24GHz 휴먼 프레전스 센서 FMCW 웨이브 레이더 유도 모듈 바디 하트 비트 감지 센서 고정밀
https://ko.aliexpress.com/item/1005005400130647.html?
5V용 입니다 >> 3.3v에 잘못 연결시 열 발생이 심합니다.
<max98357 audio board pin 정보>
ESPHome에서 미디어 플레이어 상태를 확인하고 LED를 추가하여 제어하는 방식으로 동작 상태 표시
구성> led를 gpio에 5v(+)와 연결 구성 합니다
동작>
1) switch: 동작으로 led 를 on / off 동작
2) text_sensor:로 - platform: homeassistant 로 media_player.esp32_ip53_media_player_max98357 연결
3) binary_sensor: 로 return id(media_player_state_sensor).state == "playing"; 동작 상태 표시
2) 상기 구성 조건에 media_player 동작시 led 를 on / off 동작
적용소스
media_player:
- platform: i2s_audio
name: "media_player_max98357"
id: media_player_98357
dac_type: external
i2s_dout_pin: GPIO25
mode: mono # 동작 ok
# mode: stereo # 동작 ok
text_sensor:
- platform: homeassistant
entity_id: media_player.esp32_ip53_media_player_max98357
id: media_player_state_sensor
name: "Media Player State"
binary_sensor:
- platform: template
name: "Media Player Playing"
id: media_player_playing
lambda: |
return id(media_player_state_sensor).state == "playing";
switch:
- platform: gpio
name: "media_player_led_right_13"
pin:
number: GPIO13
inverted: true
id: media_player_led_right_13
interval:
- interval: 1s
then:
- lambda: |
if (id(media_player_playing).state) {
id(media_player_led_right_13).turn_on();
} else {
id(media_player_led_right_13).turn_off();
}
===============
각각의 구성 설명
--------------------
media_player:
- platform: i2s_audio
name: "media_player_max98357" # 미디어 플레이어의 이름 지정
id: media_player_98357 # 미디어 플레이어의 고유 ID
dac_type: external # 외부 DAC 사용
i2s_dout_pin: GPIO25 # I2S 데이터 출력 핀 설정
mode: mono # 모노 모드로 동작
# mode: stereo # 스테레오 모드로 동작 가능
text_sensor:
- platform: homeassistant
entity_id: media_player.esp32_ip53_media_player_max98357 # Home Assistant의 미디어 플레이어 엔티티 ID
id: media_player_state_sensor # 텍스트 센서의 고유 ID
name: "Media Player State" # 텍스트 센서 이름 지정
binary_sensor:
- platform: template
name: "Media Player Playing" # 바이너리 센서 이름 지정
id: media_player_playing # 바이너리 센서의 고유 ID
lambda: |
return id(media_player_state_sensor).state == "playing"; // 텍스트 센서 상태가 "playing"인지 확인
switch:
- platform: gpio
name: "media_player_led_right_13" # GPIO 기반 스위치 이름 지정
pin:
number: GPIO13 # GPIO 핀 번호 설정
inverted: true # 핀 신호를 반전
id: media_player_led_right_13 # 스위치의 고유 ID
interval:
- interval: 1s # 1초 간격으로 동작
then:
- lambda: |
if (id(media_player_playing).state) { // 바이너리 센서 상태 확인
id(media_player_led_right_13).turn_on(); // 상태가 true면 LED 켜기
} else {
id(media_player_led_right_13).turn_off(); // 상태가 false면 LED 끄기
}
============ 전체 요약 설명 =============
전체 동작 요약
이 구성은 ESPHome에서 미디어 플레이어 상태를 확인하고 LED를 제어하는 방식으로 작동합니다. 다음은 전체 동작 과정입니다:
미디어 플레이어 설정:
I2S 기반 media_player를 ESP32에 연결하여 오디오 출력.
GPIO25 핀을 통해 데이터를 출력하며, 모노 또는 스테레오 모드로 설정 가능.
상태 확인 (Text Sensor):
Home Assistant의 media_player.esp32_ip53_media_player_max98357 엔티티를 읽어서 현재 상태를 가져옵니다.
상태는 "playing", "paused", "idle" 등의 문자열로 반환됩니다.
상태 기반 바이너리 센서:
binary_sensor는 text_sensor의 상태를 확인하여 "playing"일 경우 true를 반환.
이를 통해 현재 미디어 플레이어가 재생 중인지 판단.
LED 제어 (Switch):
GPIO13에 연결된 LED를 switch로 설정.
binary_sensor 상태가 true일 경우 LED를 켜고, 그렇지 않으면 LED를 끔.
주기적 상태 확인 (Interval):
1초 간격으로 binary_sensor의 상태를 확인.
미디어 플레이어가 재생 중(playing)이면 LED를 켜고, 그렇지 않으면 끄는 동작을 수행.
요약
미디어 플레이어 상태(playing, paused, idle)를 읽어 텍스트 센서로 전달.
playing 상태일 경우, 바이너리 센서가 활성화되어 LED를 켬.
매 1초마다 상태를 확인하여 LED를 업데이트.
----------------------------
esphome
☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠
뷰PDF 1,2
office view
관련자료
-
링크
-
이전
-
다음
댓글목록
등록된 댓글이 없습니다.