网站首页 > 开源技术 正文
智能家居的发展正如雨后春笋般,有幸在这方面有所研究。有线弱电开关搭配智能控制主机的方式是一种可靠的控制方式,适当插入无线开关和无线控制模块可以方便功能的扩展。如布线不便或者临时增加开关等。下面是我的智能家居加入无线开关和扩展方案。调试已成功运行。
硬件材料:智能家居控制主机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脚驱动发射,这里略。
猜你喜欢
- 2025-08-02 编写汇编语言常见错误分析
- 2025-08-02 HC89S003P 20引脚8位ADC型FLASH单片机
- 2025-08-02 基于51单片机的万年历
- 2025-08-02 基于AT89S51单片机接口电路的时序仿真研究
- 2025-08-02 MON-51单片机仿真器使用手册
- 2025-08-02 重要提醒,单片机发展史,它到底是一个什么东西
- 2025-08-02 keil软件是干嘛的?keil软件怎么用?
- 2025-08-02 51单片机多机通信系统实现方法
- 2025-08-02 红外遥控发射程序,stc红外遥控c51程序,智能家居控制
- 2025-08-02 三相异步电机点动控制改造成西门子PLC程序
你 发表评论:
欢迎- 08-032025年Linux可视化面板深度评测:从新手到企业级维的全能工具
- 08-03自学学习网络安全,渗透测试的环境搭建总结
- 08-03夏日“打卡”:一场集体“情绪漂移”的实验?
- 08-03PHP 8.3 JIT 深度优化:让图像处理性能超越C++(附压测数据)
- 08-03「推荐」收藏过千,给新手的7个入门php实战项目
- 08-03PHP内存池分析
- 08-03PHP 性能分析与实验——性能的宏观分析
- 08-03空开上的DZ47是什么意思?6000A是什么电流?
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)