当我从某个地方回家的路上时,我希望能够在到达公寓前的几分钟内切换交流电源,方法可能是使用手机将其连接到桌上的Raspberry Pi,以便转,控制交流电。可使用红外遥控器控制AC。我希望Raspberry Pi发出所需的信号。

我需要为Raspberry Pi购买什么才能使其发送所需的信号?另外,我将需要一些东西来采样原始遥控器发送的信号,因此我可以告诉Raspberry Pi发送哪个信号。我该怎么做?

请注意,我唯一会使用的编程语言是Python。如果某些内容需要使用C或其他语言进行编程,那么这对我来说不是一个好的解决方案。

#1 楼

如上所述,LIRC是一个出色的软件包,可让您的RaspberryPi发送和接收IR信号。截至2012年12月,最新的Raspbian操作系统现在包括ar0n的LIRC驱动程序。

我编写了一个指南,以在RaspberryPi上安装和配置LIRC(从硬件开始),因为我必须自己解决同一问题。 。一旦安装了LIRC并在RaspberryPi上工作,就可以使用其中包含的一些应用程序从Python / Ruby /您选择的语言发送和接收IR命令。

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

评论


今天,我写了一篇新的博客文章,描述了构建RaspberryPi红外收发器的原理图(以及我购买的零件)。 alexba.in/blog/2013/03/09/raspberrypi-ir-schematic-for-lirc

– Alex Bain
13年10月10日在1:43



#2 楼

已经有人为Raspberry Pi编写了LIRC内核驱动程序,可以在这里找到:LIRC Raspberry Pi驱动程序。也可以在此页面上找到所需的硬件和连接示意图。 Pi。

如果您需要/需要,我可以更深入地研究该主题,并提供一些其他信息。与LIRC交互的Python模块pyLirc和更新的维护版本pyLirc2

评论


感谢您的回答,但是该页面让我在“重新编译内核”中迷失了:)难道没有更多的即插即用功能吗?

–Ram Rachum
2012年10月1日18:48



目前,在此驱动程序进入发行版之前,恐怕这是LIRC起作用的唯一选择。但是有一个适用于python的GPIO模块,作为Python程序员,您可以仅使用链接页面中显示的硬件来创建自己的Python代码,以完全执行所需的操作。您需要阅读AC遥控器发送的IR序列,然后重播该序列。使用此Python GPIO模块应该可以实现。

– ikku
2012年10月1日20:00

我的评论“ ...恐怕这是LIRC起作用的唯一选择...”仅在GPIO上下文内有效。串行/ USB等设备应该可以正常工作。

– ikku
2012年10月2日,0:32

#3 楼

我发现LIRC是发送IR消息的相对简单的方法,但我确实希望能够从Java控制LIRC。我喜欢用Java编程,没有找到任何简单的Python教程来说服我使用它代替Java。相对简单:
制作一个包含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脚本。

更多注意事项:


我尝试了jlirc和lircj -用于LIRC的Java包装器,但无法正确配置它们->无法使用。
该解决方案的唯一缺点是您无法收听IR消息。如果有人对使用类似方法收听IR消息有任何想法,我想知道。

有用的资源:


按照Alex Bain的说明进行设置pi的LIRC。他们真的很好!您可以在此处找到有关irsend的更多信息。它可以使您的远程控制列表更加清晰。

在这里您可以找到有关从Java运行bash脚本的更多信息。 >

#4 楼

我总是发现LIRC看起来比lm传感器更难处理而不是看起来像是必要的项目。

所以我可能会以一种更为round回的方式来看待这个问题:如果您能得到一个微控制器(甚至是实际的遥控器)在触发时发送正确的脉冲序列,也许您可​​以在RPi上使用gpio引脚(或uart消息)或多或少地“按下按钮”并触发发送。

,如果您找到合适的发射器解决方案,则相对即插即用。也许您也可以使用类似的技巧来监视过程状态。