我开始这个项目是为了摆脱家里的各种遥控器,并建造一些可以结合所有功能的遥控器。当我看到朋友的一部内置IR blaster的手机时,我想到了这个主意,当时我决定不购买类似的手机,而是自己制造与现有手机兼容的设备。因此,这里我们将使用Arduino将Android手机转换为IR遥控器,以在家中控制各种设备。
所需组件:
- Arduino Uno
- 红外灯
- TSOP-IR接收器(1838T)
- 蓝牙模块(HC05)
- Android设备(电话,平板电脑等)
工作说明:
通常,我们使用两个遥控器在家中操作电视,一个用于电视,一个用于机顶盒,因此在此项目中,我针对这两个遥控器,将Android Phone用作IR Blaster,以便可以使用Phone来控制电视,而无需触摸任何遥控器。
使用Arduino Uno板让我更容易处理IR解码和编码部分。该定制的屏蔽只是增加了对这个项目的方便一部分。防护罩由TSOP红外接收器(1838T),红外LED和蓝牙模块(HC-05)组成,请参见下图:
您可以构建自定义屏蔽,也可以将组件直接连接到Arduino,如以下部分的“电路图”所示。
在继续前进之前,让我们首先讨论“ IR遥控器的工作原理”。大多数红外遥控器的工作频率约为38 KHz(这就是我选择18 38 T的原因)。在进一步涉及该主题时,将认识到在这些IR数据传输方法中没有固定的零和一表示。这些代码利用了我们在工程课程大纲中学习的各种编码技术(因为我是一名电子工程专业的学生)。 38 KHz的意义在于,它是逻辑上较高时信号振荡的频率,即这是信号的载波频率。看下面的图片;这是NEC协议的示例。这将使您的概念更加清晰:
因此,这里的这个IR冲击波是如何工作的; 带有定制Android应用程序的Android手机会通过蓝牙将信号发送到Arduino电路,然后Arduino通过TSOP-IR接收器(1838T)接收信号并进行分析。然后Arduino命令IR LED以特定模式闪烁,与该Android Device App上按下的按钮相对应。此闪烁模式由电视或机顶盒的IR接收器捕获,并按照指示进行更改,例如更改频道或增大音量。
但是在此之前,我们需要解码现有的遥控器。如前所述,在这个项目中,我使用了两个遥控器,一个遥控器与电视通讯,另一个遥控器用于连接电视机的机顶盒。
电路原理图:
使用Arduino解码IR遥控信号:
此处的Arduino板分两个阶段工作,一个阶段是当您使用它来从远程解码IR代码时,另一个阶段是当您将其用作IR blaster设备时。
让我们谈谈第一阶段。现在,要解码IR按钮代码,我使用了 Ken Shirriff的IRremote 头文件。该头文件具有许多预定义的示例/代码,只是为了使我们更轻松地使用IR代码:
- 您首先需要从这里https://github.com/z3t0/Arduino-IRremote下载并安装IR远程库。
- 解压缩它,并将其放置在您的Arduino“库”文件夹中。然后将提取的文件夹重命名为IRremote。
- 然后将以下提供的代码刻录到Arduino中,如上图所示插入自定义屏蔽,然后将要解码的遥控器放在TSOP IR接收器的前面。打开与此Arduino对应的串行监视器,然后按遥控器上的任何所需按钮。您将在终端上看到一些信息,该信息涉及代码的类型,其值和所涉及的位数。看起来是这样的:
#包括
完成所需的解码部分后,记下所有解码值和其他信息,并按下相应的按钮名称。这将作为Arduino下一阶段的数据库。以上程序取自IRremote库的“ examples”文件夹,您可以查看更多示例以了解有关使用IR遥控器的更多信息。这就是我们解码IR远程输出的方式。
现在将代码末尾给出的代码刻录到同一块板上。恭喜,您已经完成了该项目的前半部分。
为IR Blaster构建Android应用程序:
接下来是Android App的制作。我只是喜欢使用MIT的APP inventor-2制作此类应用。如果您是Android编码的业余爱好者,这将节省您的时间并提供良好的效果。制作此应用程序时使用的主要组件并不多,只有几个按钮和一个蓝牙客户端程序包。在编写应用程序的代码时,为屏幕上按下的每个按钮提供相应的文本,这将要求Arduino以与单个遥控器相同的方式使IR LED闪烁;还请确保提供正确的蓝牙HC-05模块地址。这是最终应用在您的Android智能手机中的外观:
这是构建应用程序的分步过程:
第1步:
登录到此链接:ai2.appinventor.mit.edu,或尝试在Google上搜索MIT appinventor-2。登录AI2需要一个Google帐户,因此如果没有,请创建一个。
第2步:
使用Google帐户登录后,您将被重定向到AI2工作网页,如下所示:
单击顶部的“项目”选项卡,然后选择“开始新项目”,以开始一个新项目。完成命名部分和全部的命名后,将显示空白屏幕,您可以在其中放置按钮和文本,如上所示。这是GUI屏幕,您可以在其中确定应用程序对用户的外观。
要使用按钮包,请在屏幕左侧“用户界面”部分下选择“按钮”选项卡。只需将任何软件包从左侧菜单中拖放到工作屏幕上即可。同样,要显示与文本相关的所有内容,请使用“标签”包。
步骤3:
排列完所有按钮和标签后,现在该为该应用编写代码了。但是在此之前,我们还需要选择一个蓝牙程序包以与Arduino通信。
您会注意到该软件包未显示在屏幕上,而是位于“不可见的组件”下。这些是在GUI组成中没有意义的组件。
步骤4:
接下来是编码部分,您将在其中定义已选择并要使用的组件的功能。
在屏幕的左侧,您会注意到在GUI部分中选择的所有那些软件包。上图显示了可以利用的特定程序包中的所有组件。还要注意,蓝牙模块的地址需要以文本格式提供。
SETP 5:
当您觉得该应用已可以使用并且没有错误时,请单击上方所示的“构建”选项卡,然后选择第二个选项。这会将您自己创建的应用程序以“.apk”格式下载到计算机上。然后,只需将此.apk文件传输到任何Android设备上,然后点击安装即可。
因此,这就是您可以使用智能手机控制任何IR远程控制设备的方式,您只需要解码要用手机控制的任何设备的遥控器,并在Arduino代码中替换解码后的远程按钮的十六进制代码即可。