本教程介绍如何使用Arduino解码来自RF遥控器的433 MHz信号,并使用Arduino和433 MHz发射器发送信号以远程控制电源开关插座。

为什么要解码射频信号?
我尝试了不同的方法来控制电源电压,但有些方法需要:
- 处理交流电压的经验
- 在墙壁/天花板/开关上开孔
- 修改电气面板
- 了解每个国家/地区的电气规则
很难想出一个安全且适合所有人的解决方案。远程控制连接到电源电压的电器的最简单、最安全的方法之一是使用射频 (RF) 控制的插座。为什么?使用遥控插座有 5 个好处:
- 相当便宜
- 容易获得
- 适用于 ESP8266 和 Arduino
- 使用安全
- 适用于任何国家/地区
所需零件
在本教程中,需要以下部分:
- Arduino UNO
- 433 MHz 射频遥控插座
- 433 MHz 发射器/接收器
- 面包板
- 跳线
例
以下是它们的外观:

设置 RF 通道
我已将遥控器设置到 I 位置。

插座必须都在 I 位置上。我为网点选择了频道 3 和 4(您可以使用任何您想要的频道)。

如果您将它们插入插座,您应该能够使用遥控器控制遥控器插座。
安装 RC 交换机库
RC Switch 库提供了一种使用 ESP8266、ESP32 或 Arduino 操作远程无线电控制设备的简单方法。这很可能适用于所有流行的低成本电源插座。
打开解码器程序
您需要解码遥控器发送的信号,以便Arduino或ESP8266可以再现这些信号并最终控制插座。
该库附带了几个程序示例。在Arduino IDE软件中,您需要转到文件>示例> RC_Switch > ReceiveDemo_Advanced。下一个程序打开:
/*
Example for receiving
https://github.com/sui77/rc-switch/
If you want to visualize a telegram copy the raw data and
paste it into http://test.sui.li/oszi/
*/
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
}
void loop() {
if (mySwitch.available()) {
output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
mySwitch.resetAvailable();
}
}
您必须使用“文件”>“示例”> RC_Switch > ReceiveDemo_Advanced打开示例,以便它也会自动加载输出文件。

将Arduino板连接到计算机,请按照以下说明操作:
- 转到“工具”选项卡
- 选择Arduino UNO板
- 选择 COM 端口
- 按上传按钮。
解码器 – 原理图
上传程序后,将 433MHz 射频接收器连接到 Arduino UNO 板的数字引脚 2:

解码射频信号(代码)
打开 Arduino IDE 串行监视器并开始按下按钮。如下面的视频演示所示:
按下每个按钮一次后,您可以看到每个按钮的二进制代码(以红色突出显示):

保存每次按下按钮的二进制代码(您也可以使用十进制或三态代码):
- 按钮 3 ON = (24 位) 二进制:000101010101000101010101
- 按钮 3 OFF =(24 位)二进制:000101010101000101010100
- 按钮 4 ON = (24 位) 二进制:000101010101010001010101
- 按钮 4 OFF =(24 位)二进制:000101010101010001010100
保存您的脉冲长度:416 微秒和协议:1。
发送射频信号(代码)
您需要使用二进制代码、脉冲长度和协议自定义下一个程序:
就我而言,脉冲长度和协议如下所示:
// Optional set pulse length.
mySwitch.setPulseLength(416);
// Optional set protocol (default is 1, will work for most outlets)
mySwitch.setProtocol(1);
下面是一个二进制发送者示例(您必须替换为自己的二进制代码):
mySwitch.send("000101010101000101010101");
发送方原理图
将程序上传到Arduino板后,组装以下电路:

您的两个插座都应该连续打开和关闭。
总结
本教程介绍le 如何使用Arduino解码来自RF遥控器的433 MHz信号,并通过Arduino和433 MHz发射器发送信号以远程控制电源开关插座。通过解码射频信号,可以避免处理交流电压和修改电气面板,使远程控制电器的连接更为简便和安全。使用RC Switch库和Arduino,您可以轻松实现这一目标,同时确保设备适用于任何国家/地区。


















This project beautifully illustrates the foundational principles of low-power IoT automation. Moving from simple RF decoding to practical, safe electrical control highlights the complexity of integrating physical infrastructure with digital logic. The future of smart homes relies on making these systems accessible, much like accessing premium platforms through a dedicated arion vip account. Excellent deep dive into practical embedded systems!