Arduino 红外启动关闭电脑

2013-05-161.5万
AI 快速预览详细 收起
本文介绍了如何使用Arduino Nano和红外传感器,通过继电器实现电脑的红外启动和关闭。硬件包括Arduino Nano 3.0 328、Nano传感器扩展板、红外套装和继电器。通过特定的红外编码(如0xFD08F7和0xFD8877),可以实现电脑的冷启动和强制关机。这个项目适用于家庭自动化和DIY项目,让您的生活更智能。
第一次做,发上来,大家交流下.
//参考
继电器                (SKU:_DFR0017)
Arduino Nano 3.0 328  
Nano传感器扩展板      
---------------------------
//硬件
Arduino Nano 3.0 328+Nano传感器扩展板 2件套含usb线
红外套装 含线         
继电器   含线           
---------------------------
//测试代码 获得红外代码

[mw_shl_code=applescript,true]
#include <IRremote.h>
const int irReceiverPin = 11; //红外接口
IRrecv irrecv(irReceiverPin);
decode_results results;
void setup()
{
pinMode(Relay, OUTPUT); //将接口5,改为输出模式
Serial.begin(9600);     // 开启串口,波特率为9600,测试时使用,可以在串口监视器中接收到红外编码
irrecv.enableIRIn();    // 启动红外解码
}
void loop()
{
if (irrecv.decode(&results))// 解码成功,把数据放入results变量中  
{   
    Serial.println(results.value, HEX);//以16进制换行输出接收代码,显示在串口监视器
    irrecv.resume();    // 继续等待接收下一组信号
}
delay(600); //延时600毫秒,做一个简单的消抖
}
---------------------------
//测试代码 红外控制继电器开关LED灯  连接方式 参考继电器网页
#include <IRremote.h>
const int irReceiverPin = 11; //红外接口
const int Relay = 5;          //继电器接口
IRrecv irrecv(irReceiverPin);
decode_results results;  
void setup()
{
pinMode(Relay, OUTPUT); //将接口5,改为输出模式
pinMode(13, OUTPUT);    //将接口13,改为输出模式,接LED灯
digitalWrite(13,HIGH);  //将接口13,关闭
irrecv.enableIRIn();    // 启动红外解码
}
void loop()
{
if (irrecv.decode(&results))// 解码成功,把数据放入results变量中  
{   
   if(results.value==0xFD08F7){ //按键1
   digitalWrite(Relay,LOW);//继电器 开
   delay(1000); //等待1秒
   digitalWrite(Relay,HIGH);//继电器 关
   }
   if(results.value==0xFD8877){ //按键2
   digitalWrite(Relay,LOW);//继电器 开
   delay(5000); //等待5秒
   digitalWrite(Relay,HIGH);//继电器 关
   }
   irrecv.resume();    // 继续等待接收下一组信号
}
}
---------------------------------------
//正式代码 红外控制继电器开关电脑 连接图在附件
#include <IRremote.h>
const int irReceiverPin = 11;   // 红外接口
const int Relay = 5;            // 继电器接口
IRrecv irrecv(irReceiverPin);
decode_results results;  
void setup()
{
pinMode(Relay, OUTPUT);       // 将接口5,改为输出模式
irrecv.enableIRIn();          // 启动红外解码
}
void loop()
{
if (irrecv.decode(&results))  // 解码成功,把数据放入results变量中  
{   
   if(results.value==0xFD08F7) // 按键1 冷启动 以及 在系统中关机
   {
     digitalWrite(Relay,LOW);  // 继电器 开
     delay(1000);              // 等待1秒
     digitalWrite(Relay,HIGH); // 继电器 关
   }
   if(results.value==0xFD8877) // 按键2
   {
     digitalWrite(Relay,LOW);  // 继电器 开
     delay(5000);              // 等待5秒 强制关机
     digitalWrite(Relay,HIGH); // 继电器 关
   }
   irrecv.resume();            // 继续等待接收下一组信号
}
}[/mw_shl_code]


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(2)
噈媞じ☆ve寳
噈媞じ☆ve寳
几个月前我也研究过这个。。我的设计是把蓝牙开关笔记本。。。因为继电器太大了。。没有办法安装到笔记本内部,最后放弃。。。。
微笑的rockets
微笑的rockets
不错,不过如果能够配上图片或者视频就更好了,当然如果有步骤那就完美了。
- 没有更多了 -