极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12839|回复: 2

用手机或电脑控制带红外遥控的电器

[复制链接]
发表于 2016-3-19 16:40:52 | 显示全部楼层 |阅读模式
本帖最后由 lqh 于 2016-3-19 16:58 编辑

       问题提出:家里的红外遥控板多。有电视机的,有机顶盒的,还有空调的.........。每个遥控板上的按键也多,但常用的没有几个。如电视机,就是一个电源开关和信号源选择.........。遥控板不好找,找到了不好用——是我们经常遇到的问题,能不能在随身携带的手机上定制一个遥控面板,把家用电器常用的功能都集成上去,一个手机搞定,岂不方便自在!
      解决方案:硬件,Arduino+w5100+无线路由器+红外发射二极管。1、Arduino与w5100联接很方便,不在叙述。2、将w5100的网络接口通过网线联接到无线路由器上(本人用的Tenda)。3、将红外发射二极管的正极接到Arduino的数字3脚,负极接地,硬件联接完成。软件,将Arduino设置为网络服务器,网络终端(手机或电脑)在浏览网页时,采用Get的方法向Arduino传输数据,Arduino根据接收到的数据的不同,调用IRremote库向外发射红外信号,以达到控制电器的目的。具体程序如下:


/*
功能:运用联接WIFI网的手机,以浏览网页的方式发射红外信号,用以控制带红外遥控的电器;
用法:首先将手机联接到WIFI,在浏览器地址中输入http://192.168.0.17/?0
注意:本例无线WIFI采用的是Tenda150M的无线路由器,电视机是PHILIPS,机顶盒是ZTE。
*/

#include <SPI.h>
#include <Ethernet.h>
#include <IRremote.h>
byte mac[] = { 0xBB, 0xBD, 0xBE, 0xBF, 0xBE, 0xBD};
IPAddress ip(192, 168, 0, 17);//与无线路由器的地址处在同一网段上
EthernetServer server(80);
IRsend irsend;//红外发射初始化,发射管接Arduino数字3脚
char c;



void setup() {
  Ethernet.begin(mac,ip);
  server.begin();
  delay(1000);
  
}


void loop() {
  EthernetClient client = server.available();
  if (client.connected()) {
    while (client.available()) {
      c=client.read();
      if(c=='?'){
        c=client.read();
        switch(c){
        case '1':
         irsend.sendRC6(0x1000C, 20);//TV 电源
         break;

         case '2':
         irsend.sendRC6(0x10038, 20);//TV 信号源
         break;

         case '3':
         irsend.sendRC6(0x10058, 20);//TV 输入选择
         break;

         case 'A':
         irsend.sendRC6(0x1005C, 20);//TV 确定
         break;
         
         case '4':
         irsend.sendNEC(0xFFE21D, 32);//向上键
         break;
         
         case '5':
         irsend.sendNEC(0xFFD22D, 32);//向下键
         break;

          case '6':
         irsend.sendNEC(0xFF926D, 32);//确定键
         break;
         
         case '7':
         irsend.sendNEC(0xFF12ED, 32);//向左键
         break;

          case '8':
         irsend.sendNEC(0xFF52AD, 32);//向右键
         break;
         
         case '9':
         irsend.sendNEC(0xFF32CD, 32);//返回键
         break;

          case '0'://程序入口处
          break;
        }
               
          client.println("<html>");
          client.println("<head>");
          client.println("<title>IR control</title>");
          client.println("</head>");
          client.println("<body style=\"zoom:300%\">");//放大有利于在手机屏幕上操作
         
           client.print("<table border=\"0\" width=\"AUTO\" align=\"center\"><tr height=\"50\"><td align=\"center\"></td><td align=\"center\"><a href=\"/?4\">TOP</a></td><td align=\"center\"></td></tr>");
           client.print("<tr height=\"50\"><td align=\"center\"><a href=\"/?7\">LEFT</a></td><td align=\"center\"><a href=\"/?6\">OK</a></td><td align=\"center\"><a href=\"/?8\">RIGHT</a></td></tr>");
           client.print("<tr height=\"50\"><td align=\"center\"></td><td align=\"center\"><a href=\"/?5\">DOWN</a></td><td align=\"center\"></td></tr>");
           client.print("<tr height=\"50\"><td align=\"center\"><a href=\"/?9\">RETURN</a></td><td align=\"center\"></td><td align=\"center\"><a href=\"/?1\">TV &nbsp POWER</a></td></tr>");
           client.print("<tr height=\"50\"><td align=\"center\"></td><td align=\"center\"><a href=\"/?A\">TV &nbsp OK</a></td><td align=\"center\"></td></tr>");
           client.print("<tr height=\"50\"><td align=\"center\"><a href=\"/?2\">TV &nbsp Source</a></td><td align=\"center\"></td><td align=\"center\"><a href=\"/?3\">TV &nbsp UP</a></td></tr></table>");
           
           client.println("</body>");
          client.println("</html>");
          delay(10);      
      
       client.stop();
      }
    }
}
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-3-20 14:51:58 | 显示全部楼层
理论上可行。从使用的角度,红外具有方向性,被控设备又不再一个方向范围内,即使发码正确,在使用时红外端需要对方向,是否还是不便?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-20 19:51:32 来自手机 | 显示全部楼层
本帖最后由 lqh 于 2016-3-20 22:06 编辑

    实践证明是可行。一个简单的验证方法,就是用你家的遥控板,指向房间的不同方向进行遥控,以测试红外信号在室内传播的规律,答案也就清楚了。其实红外光在室内传播时,存在各种形式的反射,遥控它不一定要对准它!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 06:02 , Processed in 0.037630 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表