智能无线开关控制器:Arduino + 433MHz 远程操控墙壁开关
元件与材料
| Arduino UNO | ×2(发射端/接收端各一) |
| MG996R 舵机 | ×1 |
| 433 MHz 无线收发模块 | ×1 套 |
所需工具
3D 打印机(打印舵机固定座)
软件与在线服务
Arduino IDE
项目简介
创意背景
睡前阅读不想下床关灯?儿童够不着开关?行动不便者需要远程控制?这个无线开关操纵器完美解决:按键发射端发送 433 MHz 信号,接收端驱动舵机物理拨动墙壁开关。
系统架构
Master_Remote.ino:发射端 Arduino + 发射模块 + 按键Slave_Servo.ino:接收端 Arduino + 接收模块 + 舵机
若通讯不稳定,可调整 Slave_Servo.ino 中的阈值:
upperThreshold = 70、lowerThreshold = 50。
接线说明
按下图连接:按键与发射模块共用一个 Arduino,舵机与接收模块共用另一个。

墙面安装座
需 3D 打印舵机固定座(OpenSCAD 源文件可调整安装孔位),首选打印 mhacks_lightswitchv4.stl。用魔术贴或命令贴固定在开关面板上,不建议强力胶以免拆卸困难。

最终效果与展望
项目曾参加 Mhacks 黑客马拉松。后续可优化:
• 改用 ESP8266 单板替代双 Arduino,接入 Wi-Fi
• 设计一体化开关面板嵌入舵机
• 接入 Alexa 实现语音控制
核心代码
Slave_Servo.ino(接收端)
#define rfReceivePin A0
#define ledPin 13
#include <Servo.h>
Servo servo;
unsigned int data = 0;
const unsigned int upperThreshold = 70;
const unsigned int lowerThreshold = 50;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
servo.attach(9);
}
void loop() {
data = analogRead(rfReceivePin);
if (data < upperThreshold) {
digitalWrite(ledPin, LOW);
Serial.println(data);
servo.write(0); // 拨至 OFF
}
if (data > lowerThreshold) {
digitalWrite(ledPin, HIGH);
Serial.println(data);
servo.write(90); // 拨至 ON
}
}
Master_Remote.ino(发射端)
#define rfTransmitPin 4
#define buttonPin 2
#define led 13
void setup() {
pinMode(rfTransmitPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
int buttonState = 0;
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(rfTransmitPin, HIGH);
digitalWrite(led, HIGH);
Serial.println("transmit");
delay(10);
} else {
digitalWrite(rfTransmitPin, LOW);
digitalWrite(led, LOW);
Serial.println("no");
}
}
3D 打印文件
OpenSCAD 源文件:mhacks_lightswitch_hpXQkie6X4.scad
Arduino 外壳可参考 Thingiverse 现成模型。
原理图
制造工艺
- 用 Arduino 打造绚丽显示器 Ambilight 系统
- 基于 Infineon 3D 磁传感器的 Arduino 无线磁通讯实验
- 用 Arduino UNO 和 OLED 显示屏制作经典 Pong 游戏:分步教程
- Arduino 音频频率检测:基于 FFT 测量最响亮声音峰值
- 自制 Arduino 电子宠物「Tamaguino」:复刻经典 Tamagotchi 全攻略
- USB-BLE 无线 MIDI 适配器三种方案:让乐器无线连接 iOS 设备
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 基于 Arduino Nano 的智能运动感应水枪
- 使用 SparkFun 7 段数码管构建可靠的 Arduino 倒计时器
- Arduino 向日葵:制作电子向日葵追踪阳光
- 自制 Arduino 遥控保时捷赛车:从改装底盘到手机 App 控制全攻略
- 无线Arduino编程盾:HC-05蓝牙模块实现免USB线烧录