当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]自从我发布红外遥控器项目已经六年了,至今只有一人关注过。此后,我搬到了另一处公寓楼,房东强制要求支付Comcast/Xfinity的有线电视和网络费用。不言而喻,服务体验非常糟糕,因为当付费成为租赁合同的一部分时,住户完全失去了谈判能力。

自从我发布红外遥控器项目已经六年了,至今只有一人关注过。此后,我搬到了另一处公寓楼,房东强制要求支付Comcast/Xfinity的有线电视和网络费用。不言而喻,服务体验非常糟糕,因为当付费成为租赁合同的一部分时,住户完全失去了谈判能力。

房东之所以签订此类协议,是为了获取经济回扣,并展示他们愿意为房产支付高于市场价的价格。Comcast也乐于接受这种安排,因为他们只需向一位客户(即房东)负责,对它们而言,住户是免费获得服务的。

除非你是埃琳·布罗科维奇,否则你对此几乎无能为力。然而,当你终于接入网络后,就会遇到遥控器方面的问题。

Comcast已从传统的红外(IR)遥控器转向射频(RF)和蓝牙遥控器。目前的遥控器支持语音指令,但体积笨重,且耗电量大。

方案设计

构建一个遥控器代码翻译器。我们本质上是在实现一种通用化的普通遥控器。

任何红外遥控器上的每个按钮都会按照标准协议发送特定代码,该代码被设定用于触发电视、机顶盒、风扇等设备的特定操作。如果电视接收到来自不同遥控器的代码,它会直接忽略,因为该代码没有对应的操作。代码翻译装置会接收新遥控器发出的代码,并根据预设的代码映射,向电视发送其期望的指令。

使用红外遥控器,我们可以获得以下优势:

•隐私保护

•安全性

•节能效果

•减少按键数量

•一键完成多种操作

•通过空中固件(OTA)更新灵活配置代码映射

硬件方面

我们本可以像之前红外遥控项目那样使用Arduino Pro Micro,再加装红外LED,但我们在AliExpress上找到了更合适的选择。

对于如此便宜的产品,我们也不应期待太多文档支持。

ESP8266-IR-Transceiver 随附了固件,但没有配套的使用手册。由于我们无法让固件正常工作,因此需要自行编写固件。有趣的是,该板子虽然带有USB-C接口,但仅用于供电。由于ESP8266本身不支持原生USB功能,所以我们必须使用USB转串口适配器来刷写自己的固件。我们在复位引脚上加了一个开关,在IO0引脚上又加了一个开关,这样就可以在不使用跳线连接引脚、也不拔掉板子的情况下刷写固件。更多详细信息请参见此处。

我们需要通过恢复出厂设置来解除当前遥控器的配对。这个过程会使遥控器改用红外信号而非射频信号进行通信。现在我们可以捕获红外码及其对应的操作,以便将其映射到新遥控器的红外码。请注意,我们将红外LED朝向与遥控器和接收设备相对应的方向。

软件

经过几次代码修改后,我们厌倦了使用跳线和重新插接电路板。ESP 提供了一个解决方案,且无需安装库文件。该方案是通过 OTA 固件更新实现的,我们在最近的项目中已采用此方法。

以下是所用文件的简要概述:

platformio.ini

我们给主机名命名为ESP8266IrTr,但你也可以选择其他未在Wi-Fi上使用的名称。代码已编写为仅在一个地方更新该变量。

该文件包含两个环境:

•[env:d1_mini]:当板子物理连接到计算机时使用(必须在首次上传时使用)

•[env:d1_mini_ota]:当板子连接到与计算机相同的Wi-Fi时使用(后续上传可使用)

ota_delay.py

PlatformIO中的“Update and Monitor”功能适用于[env:d1_mini]。为了在使用[env:d1_mini_ota]时获得相同监控功能,我们必须确保板子连接到与计算机相同的Wi-Fi网络。此Python文件正是为此而设计的。

OTATelnet.h 和 OTATelnet.cpp

我们添加了MultiPrint,以避免通过函数同时输出到Serial和Telnet,从而管理多个打印行。我们将使用setup部分的InitSharedServices和loop部分的HandleSharedServices来保持代码非阻塞。

main.cpp

创建了CodeMap结构体,用于保存输入代码、输出代码及其关联的函数。一旦接收到可读的代码,内置LED灯就会亮起,随后ESP8266会进行查找。如果找到对应的输出代码,就会发送出去。可能有多个代码,我们将按顺序依次发送。循环结束时,内置LED灯会熄灭,ESP8266将开始等待下一个红外码。

如果遇到协议冲突,可以尝试屏蔽电视接收端。我们的新款遥控器发送的是NEC码,而旧款电视遥控器也使用NEC码。当新遥控器发送一个代码后,ESP8266在短时间内也发送了一个代码,此时电视就无法区分它们了。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭