基于 Arduino、1Sheeld 与红外控制的万能安卓遥控器
组件与材料
- Arduino UNO × 1
- 1Sheeld × 1
- 红外接收模块 × 1
- LED(指示灯)× 1
项目简介
本项目实现用安卓手机控制电视、机顶盒、音响等红外设备,原理可扩展至任意红外遥控设备。一部手机、一个 App 即可替代家中所有遥控器。
第一步:安装手机 App
从 Google Play 下载 1Sheeld App。
第二步:解码遥控器
遥控器按键发射特定红外脉冲模式。需用 Arduino 录制各按键对应的十六进制代码。
- 安装 Arduino IRremote 库。
- 运行库自带
IRrecvDump示例(见图3)。 - 红外接收模块接线:GND、5V、Pin 11(OUT)。
- 上传代码,打开串口监视器,按遥控器按键,记录十六进制码(如
0x20DFC03F, 32对应电源键)。见图4、图5。 - 若显示 "unknown encoding",重按该键。





第三步:上传发射代码
将录得的十六进制码替换进发射代码(见代码部分)。因 1Sheeld App 无遥控界面,改用小键盘盾(Keypad Shield)作遥控面板,亦可用键盘盾支持更多设备。


测试验证
红外发射 LED 接 Arduino Pin 3,对准设备。打开 1Sheeld App 连接,选择小键盘盾,按手机屏幕按键即可控制对应设备开关、音量、换台等。


发射代码
#include <OneSheeld.h>
#include <IRremote.h>
IRsend irsend;
void setup() {
OneSheeld.begin();
}
void loop() {
if (Keypad.isRowPressed(0) && Keypad.isColumnPressed(0)) {
irsend.sendNEC(0x20DF10EF, 32);
} else if (Keypad.isRowPressed(0) && Keypad.isColumnPressed(1)) {
irsend.sendNEC(0x20DFC03F, 32);
} else if (Keypad.isRowPressed(0) && Keypad.isColumnPressed(2)) {
irsend.sendNEC(0x20DF40BF, 32);
} else if (Keypad.isRowPressed(1) && Keypad.isColumnPressed(1)) {
irsend.sendNEC(0x41048B7, 32);
} else if (Keypad.isRowPressed(1) && Keypad.isColumnPressed(0)) {
irsend.sendNEC(0x410C837, 32);
} else if (Keypad.isRowPressed(2) && Keypad.isColumnPressed(0)) {
for (int i = 0; i < 3; i++) {
irsend.sendSony(0xa81, 12);
delay(40);
}
}
}
代码中 0x20DF10EF 等需替换为你录制的实际遥控码。
制造工艺
- Arduino 与智能手机打造智能电压表——简单易做的 DIY 项目
- 基于 Arduino MKR1000 与 ThingSpeak 的远程 IoT 机械臂控制系统
- Android 手势遥控车:Raspberry Pi + Arduino 101 + 电机扩展板,I2T 协同控制
- 基于Arduino UNO的精准频率与占空比测量
- Firmata + Xbox 手柄无线遥控 Arduino 小车:UWP 应用桥接方案
- Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
- DIY 智能 Arduino 机械臂:主从控制与动作记忆教程
- 通过 Arduino IoT Cloud 用 Alexa 控制电视:分步指南
- 使用 Arduino Nano 和 RDA8057M 制作紧凑型 FM 收音机
- 手机APP无线控制Arduino LED:WiFi/Ethernet + Evothings Studio跨平台开发
- 1Sheeld + Arduino 手机无线控制家庭灯光系统
- 智能水泄漏检测与电磁阀控制系统