Raspberry Pi를 사용하여 적외선을 통해 AC 제어


19

어딘가에서 집으로 돌아갈 때 아파트에 도착하기 몇 분 전에 AC 전원을 켤 수 있기를 원할 것입니다. 아마도 내 전화를 사용하여 책상에있는 라즈베리 파이에 연결할 수 있습니다. AC 전원을 켜십시오. AC는 적외선 리모컨을 사용하여 제어 할 수 있습니다. Raspberry Pi가 필요한 신호를 방출하기를 원합니다.

필요한 신호를 보내려면 라즈베리 파이를 위해 무엇을 사야합니까? 또한 원래 리모콘으로 전송 된 신호를 샘플링 할 수있는 무언가가 필요하므로 어떤 신호를 전송할지 Raspberry Pi에 알릴 수 있습니다. 어떻게합니까?

내가 사용하는 유일한 프로그래밍 언어는 Python입니다. C 또는 다른 프로그래밍이 필요한 것이 나에게는 좋은 해결책이 아닙니다.

답변:


12

위에서 언급 한 바와 같이, LIRC는 RaspberryPi가 IR 신호를 보내고 받도록하는 훌륭한 소프트웨어 패키지입니다. 2012 년 12 월 현재 최신 Raspbian OS에는 ar0n의 LIRC 드라이버가 포함되어 있습니다.

나는이 같은 문제를 직접 해결해야했기 때문에 하드웨어에서부터 RaspberryPi에 LIRC를 설치하고 구성하는 안내서를 작성했습니다. LISP를 설치하고 RaspberryPi에서 작업하고 나면 포함 된 일부 응용 프로그램을 사용하여 Python / Ruby / 선택한 언어에서 IR 명령을 보내고받을 수 있습니다.

http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/


2
오늘 저는 RaspberryPi IR 트랜시버를 구축하기위한 회로도 (및 구매 한 부품)를 설명하는 새로운 블로그 게시물을 작성했습니다. alexba.in/blog/2013/03/09/raspberrypi-ir-schematic-for-lirc
Alex Bain

5

이미 Raspberry Pi 용 LIRC 커널 드라이버를 작성한 사람이 있습니다. 여기에서 찾을 수 있습니다 : LIRC Raspberry Pi driver . 또한이 페이지에서 필요한 하드웨어 및 연결 회로도를 찾을 수 있습니다.

LIRC를 직접 실험하지는 않았지만 LIRC를 사용하는 응용 프로그램이 많이 있습니다. 이제 모두 Raspberry Pi에서 작동한다고 생각합니다.

당신이 원하거나 필요로한다면, 나는이 주제에 대해 조금 더 깊이 파고 들고 몇 가지 추가 정보를 얻을 수 있습니다.

Python 부분에는 pyLirc 라고하는 LIRC와 상호 작용할 수있는 Python 모듈과 pyLirc2 라는 최신 유지 버전이 있습니다.


답변 주셔서 감사합니다,하지만 그 페이지는 "커널 다시 컴파일"에서 나를 잃었다 :) 더 플러그 앤 플레이 뭔가가 없습니까?
Ram Rachum 18:48에

1
당분간이 드라이버가 배포판에 나올 때까지 LIRC가 작동하는 유일한 옵션이라고 생각합니다. 그러나 파이썬 프로그래머를위한 GPIO 모듈은 파이썬 프로그래머이므로 링크 된 페이지에 표시된 하드웨어 만 사용하여 원하는 것을 정확하게 수행 할 수있는 자체 파이썬 코드를 만들 수 있습니다. AC 리모컨이 보내는 IR 시퀀스를 읽고 재생해야합니다. 이 Python GPIO 모듈을 사용하면 가능합니다.
ikku

1
내 의견 '... LIRC가 작동하는 유일한 옵션입니다 ...'는 GPIO 컨텍스트 내에서만 유효합니다. 직렬 / USB 등의 장치는 문제없이 작동해야합니다.
ikku

3

LIRC가 IR 메시지를 보내는 비교적 쉬운 방법이라는 것을 알았지 만 실제로는 Java에서 LIRC를 제어 할 수 있기를 원했습니다. 나는 자바 프로그래밍을 좋아하고 파이썬 대신 자바 대신 작업하도록 설득하는 간단한 자습서를 찾지 못했습니다. java를 사용하여 pi에서 IR 코드를 보내려고 몇 시간을 보낸 후 다음 해결책이 비교적 간단하다는 것을 알았 irsend습니다. 메시지 를 포함하는 bash 스크립트를 만들고 java에게 실행하도록 지시하십시오.

예:

toggleLight.sh

#!/bin/bash
irsend SEND_ONCE HyundaiFan lightOnOff

RunBash.java

public class RunBash {
    public static final void main (String args[]) {
        String cmd = "../toggleLight.sh";
        try {
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec(new String[] {"/bin/bash", "-c", cmd});
            int exitValue = process.waitFor();
            System.out.println("exit value: " + exitValue);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

당신은 얻을 것이라고 가정합니다 exit value: 0. 종료 값이 127 인 경우 java에서 bash 스크립트를 찾을 수 없음을 의미합니다.

더 많은 메모 :

  • LIRC 용 java 래퍼 인 jlirc와 lircj를 시도했지만 올바르게 구성 할 수 없었습니다-> 작동하지 않습니다.
  • 이 솔루션의 유일한 단점은 IR 메시지를들을 수 없다는 것입니다. 누군가가 비슷한 방법을 사용하여 IR 메시지를 듣는 것에 대한 아이디어가 있다면 알고 싶습니다.

유용한 자료 :

  • pi의 LIRC 설정에 대해서는 Alex Bain 지침을 따르십시오. 그들은 정말 좋다! 하나 더 irsend 여기 에 관한 정보를 찾을 수 있습니다 . 리모컨 목록이 훨씬 선명 해집니다.
  • 여기 에서 java에서 bash 스크립트를 실행하는 데 대한 자세한 정보를 찾을 수 있습니다.

도움이 되길 바랍니다. Tom


2

나는 항상 LIRC가 필름 센서와 같이 필요한 것보다 다루기가 더 불쾌한 프로젝트라는 것을 알았습니다.

그래서 나는 이것을 조금 더 우회적으로 볼 것입니다 : 트리거 될 때 올바른 펄스 트레인을 보내기 위해 마이크로 컨트롤러 (또는 실제 리모컨)를 얻을 수 있다면 gpio 핀 (또는 uart 메시지)을 사용할 수 있습니다 RPi를 사용하여 "버튼을 누르십시오".

올바른 송신기 솔루션을 찾으면 비교적 플러그 앤 플레이 방식입니다.

RPi가 서버가되는 것에 대해 걱정하고 하드웨어 (펌웨어) 모듈이 IR 동작에 대해 걱정하게하십시오. 비슷한 트릭을 사용하여 프로세스 상태를 모니터링 할 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.