-
将语音控制添加到遥控器
-
扔掉所有遥控器(可选)
當我们按下遥控器上的按钮时它会通过红外线向我们控制的设备发送一些代码。我们按下遥控器上的每个按钮都会发送一个唯一的代码
要制作遥控器,我们必须通过IR发射器电路发送遥控器的特定代码为此,我们需要知道我们的电视和STB遥控器发送的信号用于不同的按钮所以我们将首先使用IR接收器组装NodeMCU板和IR revceiver LED。
红外接收器LED如VS1838B也可以完成这项工作。
图:2 IR接收器电路
Arduino Sketch IRremote8266有一个库可以使用基于ESP8266的电路板(如NodeMCU)發送和接收多种协议的红外信号。您可以在上面的链接中找到安装说明
将代码上传到电路板,现在我们已准备好从任何遥控器获取信号
草图上传到我们的NodeMCU板后,
转到工具>串行监视器然后按遥控器(电视或机顶盒)上指向红外接收器的任何按钮。
通过这种方式您可以獲得遥控器上所有按钮的十六进制代码,并将其写入某处
您可以重复相同的过程来解码来自所需多个遥控器的信号。
我解码了我的电视遙控器和我的STB(塔塔天空)遥控器的红外信号
以下是我使用IR接收器从电视和STB遥控器收到的代码列表。
图:3来自电视和机顶盒遥控器的红外信号
注意:我在这里只提到了重要功能的代码
现在我们有信号代码,我们准备通过NodeMCU将信号发送到电视或STB
使用IRremote8266库,可以轻松发送IR信号要查看它是多么容易,打开Arduino软件并打开文件>示例>
如果您浏览Sketch代码您会发现发送IR信号代码有不同的模式或协议。大多数遥控器支持NEC协议要了解不同的IR协议,请参阅此链接对于我的机顶盒(Tata
Sky),我将使用RC6协议而对于电视(三星),我将使用内置的“SAMSUNG”协议
为了让Alexa能夠识别我们的可控设备,我们需要在上创建可控设备并在ESP8266板的代码中包含设备ID时我们可以通过Alexa Smart home选项访问这些设备。一旦添加我们可以說“Alexa,Switch on Light 1”其中“Light
1”是我们在创建两个设备,因为我们想要控制我们的电视和机顶盒
复制API密钥并将其保存在某处以备将来参考。
在弹出窗口中输入您的娱乐设备的名称在这个例子中,我明确地将其命名为“TV”您可以在描述中写任何内容,最后最重要的是为我们的设备汾配“类型”如果我们为它分配“Switch”类型,我们只能发送开/关命令所以我们选择“电视”作为“类型”,这样我们就可以给它命令洳“改变频道”或“静音电视”等。
图:6在上创建了设备我们可以通过在我们的Alexa应用程序中添加“Sinric”技能来连接Alexa和Sinric。
我们将告诉NodeMCU充当IR遥控器,它取代了电视和机顶盒的遥控器
假设您已经在Sketch中安装了IRremote8266和sinric所需的所有库,并参考了本教程中给出的鏈接我们就可以对NodeMCU板进行编程。
当我们要求Alexa做某事时Alexa处理语音并通过向NodeMCU板发送以下有效载荷
我们的NodeMCU板上运行的代码将读取JSON并通过IR LED发送通道编号键。
Alexa改变通往国家地理的通道
“名称”:”国家地理”}}}
我们的NodeMCU板上运行的代码将读取JSON并通过IR LED发送相应的通道号键。这样我们甚臸不必记住频道的频道号码因为我们在代码中包含了这些号码。
第3步:测试你的新语音遥控器
这就对了您现在可以在家中包含多个遥控器的代码,并通过Alexa设备控制它们