라즈파이로 TV 조작하기

전제


  • 라즈베리 파이와 TV를 HDMI로 연결합니다
  • TV가 CEC를 지원합니다
  • 텔레비전의 CEC 연동을 ON으로 하고 있다(메이커에 의해 부르는 방법이 다릅니다. 도시바의 레그자 링크등)

  • config.txt 편집



    다음 명령을 사용하여 config.txt를 열고 hdmi_force_hotplug=1hdmi_ignore_cec_init=1를 추가합니다.
    sudo /boot/config.txt
    

    /boot/config.txt
    hdmi_force_hotplug=1
    hdmi_ignore_cec_init=1
    
    hdmi_force_hotplug=1 는 라즈파이의 HDMI가 디스플레이(TV)에 접속되어 있지 않은 상태에서 기동하면, NTSC(컴포지트)로 전환되어 버리는 것을 막기 위해, hdmi_ignore_cec_init=1 ON이 되는 것을 막기 위한 설정입니다.

    cec-utils 설치



    다음 명령을 사용하여 cec-utils를 설치합니다.
    sudo apt install cec-utils -y
    

    TV 조작



    기본 조작



    다음 명령으로 TV 전원의 On/Off, 음량을 조작할 수 있습니다.bash:電源ON
    echo 'on 0' | cec-client -s

    전원 OFF
    echo 'standby 0' | cec-client -s
    

    볼륨을 높이다
    echo 'volup' | cec-client -s
    

    볼륨을 낮추다
    echo 'voldown' | cec-client -s
    

    입력 전환



    다음 명령으로 입력 장치의 정보를 얻습니다.
    echo "scan" | cec-client -d 1 -s
    

    출력 결과
    log level set to 1
    opening a connection to the CEC adapter...
    requesting CEC bus information ...
    CEC bus information   
    ===================   
    device #0: TV
    address:       0.0.0.0  
    active source: no     
    vendor:        Toshiba
    osd string:    TV     
    CEC version:   1.4    
    power status:  on     
    language:      jpn
    
    
    device #1: Recorder 1
    address:       2.0.0.0
    active source: no
    vendor:        Toshiba
    osd string:    CECTester ← ラズベリーパイ
    CEC version:   1.4
    power status:  on
    language:      eng
    
    
    device #5: Audio
    address:       1.0.0.0
    active source: no
    vendor:        Onkyo
    osd string:    TX-NR626
    CEC version:   1.4
    power status:  on
    language:      ???
    
    
    device #B: Playback 3
    address:       3.0.0.0
    active source: no
    vendor:        Toshiba
    osd string:    Fire TV Stick
    CEC version:   1.4
    power status:  on
    language:      ???
    

    다음 명령으로 입력을 전환합니다.
    echo "tx ff:82:30:00" | cec-client -s
    
    ff:82:30.00 의 값의 의미는 ff 가 모든 기기에서 모든 기기입니다. 첫 번째 숫자는 숫자인가 f 82 는 입력 전환입니다. 30:00 는 계측기의 주소입니다. 이번에는 상기 출력 결과의 Fire TV Stick의 address가 3.0.0.0 이었기 때문에 닷을 제외해 두 자리수씩 나누어 세미콜론을 붙여 30:00 가 됩니다. 라즈베리 파이의 경우라면 address가 2.0.0.0이므로 20:00입니다. 내 환경에서 TV로 전환 echo "tx ff:82:00:00" | cec-client -s이 작동하지 않았습니다.

    다른 코드는 이 사이트에서 확인할 수 있습니다.

    내 계정



    좋은 웹페이지 즐겨찾기