1Sheeld + Arduino 手机无线控制家庭灯光系统
项目简介
利用 1Sheeld 扩展板将智能手机变身为 40+ 种 Arduino 扩展板(GPIO、键盘、摇杆、语音识别、GPS 等),本项目演示通过手机键盘盾牌无线控制 3 路 LED(模拟家庭红/黄/绿三路灯光),零 WiFi/蓝牙模块开发,极速原型验证物联网交互概念。
硬件清单
- Arduino UNO R3 × 1
- 1Sheeld 扩展板 × 1(核心:蓝牙模块 + Arduino 适配层)
- LED × 3(红/黄/绿,共阴或分立)
- 220Ω 限流电阻 × 3
- 跳线若干
1Sheeld 核心原理
- 硬件:堆叠在 Arduino 顶部,通过蓝牙 2.0 (SPP) 与手机 App 通信
- 软件:Arduino 端引入
OneSheeld.h,调用各 Shield 类 API;手机端安装 1Sheeld App,配对后选择所需 Shield - 数据流:手机传感器/输入 → 蓝牙 → 1Sheeld → Arduino 串口 → 库解析 → 用户回调函数
电路连接
- 红 LED:D13 → 220Ω → LED+ → LED- → GND
- 黄 LED:D12 → 220Ω → LED+ → LED- → GND
- 绿 LED:D11 → 220Ω → LED+ → LED- → GND
- 1Sheeld 直接堆叠 UNO,无额外接线

手机端操作流程
- 安装 1Sheeld App(Google Play / App Store)
- 打开蓝牙,App 中搜索配对 1Sheeld 设备(默认 PIN: 1234)
- 在 Shield 列表中勾选 Keyboard(键盘盾牌)
- 点击键盘图标进入全屏虚拟键盘

按键映射逻辑
| 按键 | 动作 | 对应 LED |
|---|---|---|
| R / r | 开启 | 红 (D13) |
| Y / y | 开启 | 黄 (D12) |
| G / g | 开启 | 绿 (D11) |
| C / c | 全关 | 所有 LED 熄灭 |
| 其他 | 全关(兜底) | 所有 LED 熄灭 |



Arduino 完整固件
#define CUSTOM_SETTINGS
#define INCLUDE_KEYBOARD_SHIELD
#include <OneSheeld.h>
const uint8_t LED_RED = 13;
const uint8_t LED_YELLOW = 12;
const uint8_t LED_GREEN = 11;
void setup() {
OneSheeld.begin(); // 初始化蓝牙通信
pinMode(LED_RED, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
digitalWrite(LED_RED, LOW);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_GREEN, LOW);
// 注册键盘按键变化回调
AsciiKeyboard.setOnButtonChange(&keyboardFunction);
}
void loop() {
// OneSheeld 事件轮询在库内部处理,loop 可留空或做其他任务
}
void keyboardFunction(char data) {
// 统一转大写简化判断
char c = toupper(data);
switch (c) {
case 'R':
digitalWrite(LED_RED, HIGH);
break;
case 'Y':
digitalWrite(LED_YELLOW, HIGH);
break;
case 'G':
digitalWrite(LED_GREEN, HIGH);
break;
case 'C':
default:
digitalWrite(LED_RED, LOW);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_GREEN, LOW);
break;
}
}
进阶扩展方向
- 继电器模块:替换 LED 接 5V 继电器板,控制真实 220V 灯具/风扇/插座
- 多 Shield 融合:同时启用 Gamepad(游戏手柄) + Voice Recognition(语音识别) + Notification(通知推送)
- 状态反馈:Arduino 读取继电器触点/电流传感器 → 1Sheeld → 手机 App 显示实时状态
- 定时/场景:结合 Clock Shield 实现定时开关、回家模式、离家模式
- 迁移至 ESP32:移植逻辑到 ESP32 + BLE/WebServer,脱离 1Sheeld 硬件依赖
注意事项
- 1Sheeld 官方已停止维护,库兼容性仅限 Arduino AVR 核心(UNO/Mega/Leonardo),不支持 ESP32/SAMD
- 蓝牙 2.0 SPP 在 iOS 需 MFi 认证,1Sheeld 通过特殊封装实现,但连接稳定性不如 BLE 4.0+
- 供电:Arduino USB 供电驱动 1Sheeld + LED 无压力;接继电器模块建议外接 5V/2A 电源
- 户外/穿墙场景建议改用 WiFi (ESP8266/ESP32) 或 LoRa 方案
原理图文件
Fritzing 源文件:circuit.fzz(项目附件下载)
制造工艺
- 基于 AT89S52 单片机与 LM35 传感器的温控系统设计
- 用 Alexa 控制吊扇:分步指南
- 基于 Arduino 与 Python 的可靠 RFID 考勤系统
- 基于 Arduino Uno 的人体检测救援机器人:传感器集成分步指南
- 基于 Arduino、1Sheeld 与红外控制的万能安卓遥控器
- 基于 Arduino MKR1000 与 ThingSpeak 的远程 IoT 机械臂控制系统
- 基于 1Sheeld 的智能家居安防系统:语音/短信控制与入侵报警
- DIY 智能 Arduino 机械臂:主从控制与动作记忆教程
- 通过 Arduino IoT Cloud 用 Alexa 控制电视:分步指南
- ThimbleKrox:基于 Arduino Micro 与 MPU-6050 的指戴式鼠标控制器
- 基于 Arduino 与 ESP8266 的 WiFi 智能门锁:手机扫码解锁
- 工业控制系统防护:验证有效的策略与最佳实践