似乎主要的手机制造商正在远离内置的红外线发射器,所以我正在寻找一种方法来让我的“愚蠢”设备能够适应未来,这些设备目前还没有与我的物联网基础设施集成。我有一个网状网络智能家居,但我需要找到一个物理遥控器来打开我的电视?一定有更好的方法。
我最近建造了一个红外线发射器,可以控制 我家的独立空调,而之前的另一个项目是一个连接的 HVAC 通风口,带有一个 android 连接的 webapp 。从本质上讲,我需要做的就是将这两件事结合到一个带有 webapp 前端的网络连接的 IR blaster 中,这样我就可以按下手机上的按钮并将 IR 信号发送到我的媒体中心。这些可以部署在每个房间,并通过单个界面在任何地方进行控制,因此这方面的应用非常广泛。
我抓起一些未使用的硬件并将连接到 WiFi、接受 HTTP 连接和发送 IR 信号所需的一切连接起来。
这很好用,因为我可以在分配给 ESP8266 的 IP 上请求一个特定的 URL,并让 Arduino 向 IR LED 输出一个“电源”信号。我只需要找出托管 webapp 的位置,将 URL 发送到 IR blaster,然后将这些请求解析为特定的 IR 代码。在 ESP8266 上使用 AT 命令非常乏味,并且在发送请求和 LED 闪烁之间存在 1-2 秒的延迟。
我继续使用 NodeMCU ESP8266 开发板,因为它具有板载电源调节、USB 转串行接口以及这个小封装中的大量 I/O 引脚(它也适用于面包板)。事实证明,已经有一个 ESP8266 WebServer 库可以接受 GET 请求,我能够适应这些请求来发送 IR 代码,并且常规的 IRremote 库可以开箱即用。
NodeMCU 上的 ESP8266 功能不足以托管 Web 应用程序本身,因此我将在一台未充分利用的 CHIP 9 美元计算机上运行它,该计算机 已经在我的家庭网络中运行。另一个限制是 ESP8266 是 3.3v 板,因此直接从 I/O 引脚驱动的 IR LED 非常暗,必须紧挨着它发送信号的设备。我改为使用 I/O 引脚来驱动一个 npn 晶体管来打开/关闭 5v 电源电压。
在做了一些研究之后,我找到了一个很好的教程,用于为 Arduino 实现一个 REST API 来控制 adafruit 上的 LED 。我使用他们的 JavaScript 和 PHP 文件提交 cURL 请求并将其加载到已经运行 apache 但可以轻松托管在云中的 CHIP 上。在为遥控器创建一个基本的 HTML 页面后,我添加了 manifest.json 和图标文件,以便它可以在 Android 手机上作为原生 web 应用程序运行。
在 Arduino 方面,我精简了网络服务器,只接受一个 GET 请求,解析 URL,发送 200 OK,然后断开连接。根据 URL,Arduino 将发送映射到按下的按钮的 IR 代码。
一切都以零延迟完美运行。我发现我使用的 IR LED 的角度非常窄,所以我必须小心它们的指向是否正确。一些工业魔术贴让我可以将它安装在架子下,看不见,并确保它始终指向另一端的 IR 接收器。我在 LED 引线上添加了一些粗规格线,以便可以对其进行微调。
IR LED 的电阻器导致它们几乎无法使用,因此晶体管以未调节的 5v 为它们供电。这使我可以将红外线从墙壁上反弹并在房间内安装冲击波,但肯定会对寿命产生影响。我希望因为它们很少使用,而且 IR 信号是超短脉冲(比大多数暗淡的 PWM 信号低占空比),所以一段时间内我不需要更换 LED。我确保为版本 2 订购了一些广角和更高输出的 IR LED,所以当它们最终死掉时,我将用一个内联电阻器替换它们。
我每天都使用它,它完美无缺。我什至在我们的家庭活动室中添加了第二个设备来控制我们的窗户空调单元和另一台电视。
对未来的计划:
这款小型联网红外发射器正在慢慢填补我的智能家居和传统电器之间的空白。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !