编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

RF无线开关应用介绍

wxchong 2025-08-02 22:23:14 开源技术 4 ℃ 0 评论

智能家居的发展正如雨后春笋般,有幸在这方面有所研究。有线弱电开关搭配智能控制主机的方式是一种可靠的控制方式,适当插入无线开关和无线控制模块可以方便功能的扩展。如布线不便或者临时增加开关等。下面是我的智能家居加入无线开关和扩展方案。调试已成功运行。

硬件材料:智能家居控制主机1台(以下称主机),随意贴开关模组一套,无线发射模块RF433 蜂鸟H34T一块,无线接收模块RF433 蜂鸟LR45B一块,示波器1台,实物如下图示:

随意贴的强电开关(接收控制部分):







实现功能:主机通过无线模块LR45B接收随意贴开关发射的RF433无线码,并存入主机。

①主机可定时或随时调用存入的无线代码通过无线发射模块再发射控制随意贴的强电开关(随意贴的强电开关可控制220V灯或电器)。②随意贴开关控制主机绑定当前代码的功能,如开关主机控制的电器,灯光灯。

方案:主机用C51单片机编程,接收i/o口用中断的接收方式,采集用高电平定时器门控计数器。随意贴开关是V1527编码。下图为按下随意贴开关时发码时LR45B接收到的解调波形(见下图),调试时由于接收的LR45B灵敏度太高一直有无规则的杂波,示波器是很难捕捉完整的信号波形的,后面发现长按发射开关时一直发射,这个获取波形的问题就解决了。


我用的是STC11F32XE单片机处理接收:

void Timer1Init(void) //@11.0592MHz-----用作433无线接收用

{

AUXR &= 0xBF; //定时器时钟12T模式

TMOD &= 0x0F; //设置定时器模式

TMOD |= 0x10; //设置定时器模式

TMOD |= 0x80; //设置定时器模式---为门控定时器,INT1 P33高时启动

TL1 = 0x00; //设置定时初值

TH1 = 0x00; //设置定时初值

TF1 = 0; //清除TF1标志

TR1 = 1; //定时器1开始计时


}


I/O口中断处理:

定时器计数值A =TH1*256+TL1;

TH1=0;

TL1=0;

9.2ms(8478)<A < 9.5ms(8755)-----------头标志 STAR1_433

220us(203-46 ) < A < 350us(323+46)----------1527---置1 H1_433

900us(829-46) < A < 950us(876+46)-------1527--置0 L1_433


921.58(计数器值) 约1ms(时间长度)


46(计数器值) 约50us

由于各个厂家的参数不一样,脉冲的宽度,会不一样。上面的判定范围是按获取波形并抛有一定的余量的。余量大通用性好,抗干扰差,余量小通用性不好抗干扰强,可能换个同样型号的开关都识别不了。

1527 脉宽判断倒相后,因V1527的发码规则已获知,只要截取高电位的脉宽就可以判定当前的码值是0还是1。相关程序代码网上有很多,这里略。需要注意的一点是接收模块的信号要作反相处理,这样才能识别V1527的开始中码(引导码、头标识)方法是加一个NPN三极管9014倒相,倒相后的接收波形如下图:


发射部分就是用单片机用软件模拟上图的波形(注意是上图的倒相)从I/O口输出 上图的倒相波形输出重复4次即可。直接接到H34T的DAT脚驱动发射,这里略。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表