一板网电子技术论坛

风筝
发表于: 2018-1-15 15:02:04 | 显示全部楼层

本文主要介绍了如何使用一个Arduino开发板解码RF遥控器的433 MHz信号,并使用Arduino和433 MHz发射器发送信号,以远程控制电源开关插座。

featured-image-decoding-rf-signals.jpg


为什么解码RF信号?

我已经尝试了控制电源电压的不同方法,但是其中一些方法需要:

■    处理交流电压的经验

■    在您的墙壁/天花板/开关打开孔

■    修改电气面板

■    知道每个国家的电气规则


想出一个安全的解决方案并且为每个人工作是很困难的。远程控制连接到电源电压的设备的最简单和最安全的方法之一是使用射频(RF)控制的插座。为什么?使用遥控网点有5个好处:

1.  相当便宜

2.  容易获取

3.  适用于ESP8266和Arduino

4.  安全使用

5.  适用于任何国家


所需部件

对于本教程,您需要以下部件:

■    Arduino UNO入门套件

■    433 MHz射频遥控插座

■    433 MHz发射机/接收机

■    面包板

■    跳线

注意:您需要购买以433MHz射频工作的遥控插座。他们应该在产品页面或标签中说明操作RF。


示例

以下是他们的样子:

remote-controlled-sockets-img.jpg


设置RF信道

我把遥控器设置在了位置i。

remote-control-rf-controlled-sockets-img.jpg

网点必须在位置i上。我选择了通道3和通道4(您可以使用任何通道)。

control-rf-controlled-sockets-img.jpg

如果您将它们插入插座,您应该可以使用遥控器控制遥控插座。


安装RC开关库

RC Switch库提供了使用ESP8266,ESP32或Arduino操作远程无线电控制设备的简单方法。这很可能适用于所有流行的低成本电源插座。

1.  点击这里下载RC Switch库。您的Downloads文件夹中应该有一个.zip文件夹

2.  解压缩.zip文件夹,您应该得到rc-switch-master文件夹

3.  将您的文件夹从rc-switch-master重命名为rc_switch

4.  将rc_switch文件夹移动到您的Arduino IDE安装库文件夹

5.  然后,重新打开你的Arduino IDE


打开解码器示例

您需要解码遥控器发送的信号,以便Arduino或ESP8266可以复制这些信号并最终控制插座。

软件库中有几个例子。在Arduino IDE软件中,您需要进入File > Examples > RC_Switch > ReceiveDemo_Advanced。下一个示例打开:

将Arduino板连接到您的计算机上,按照以下说明操作:

1.  转到Tools选项卡

2.  选择Arduino UNO开发板

3.  选择COM端口

4.  按Upload按钮。


解码器 - 原理图

上传示例代码后,将433MHz射频接收器连接到Arduino UNO板的数字引脚2上:

arduino-receiver-circuit-img.jpg


解码RF信号

打开Arduino IDE串口监视器并开始按下按钮。按下每个按钮一次后,您可以看到每个按钮的二进制代码(以红色突出显示):

arduino-ide-serial-port-receive-commands-img.jpg

保存每个按钮按下的二进制代码(您也可以使用十进制或三态代码):

■    按钮3 ON =(24Bit)二进制:000101010101000101010101

■    按钮3 OFF =(24Bit)二进制:000101010101000101010100

■    按钮4 ON =(24Bit)二进制:000101010101010001010101

■    按钮4 OFF =(24Bit)二进制:000101010101010001010100

保存你的脉冲长度:416微秒和协议:1。


发送RF信号

您需要使用二进制代码,脉冲长度和协议自定义下一个示例:

我的情况下,脉冲长度和协议如下所示:

  1. // Optional set pulse length.
  2. mySwitch.setPulseLength(416);

  3. // Optional set protocol (default is 1, will work for most outlets)
  4. mySwitch.setProtocol(1);
复制代码

这是一个二进制发送器的例子(你必须用你自己的二进制代码替换):

  1. mySwitch.send("000101010101000101010101");
复制代码

发件器原理图

将示例代码上传到Arduino开发板后,组装此电路:

Arduino_transmitter_433mhz.jpg

你的两个网点都应该可以连续打开和关闭。


希望本文能对您有用。谢谢阅读。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 551 | 回复: 1061



手机版|

GMT+8, 2021-1-18 08:14 , Processed in 0.082034 second(s), 33 queries . Powered by Discuz! X3.4

YiBoard一板网 © 2015-2020 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表