智能家居无线组网遥控电子智能锁

智能家居无线组网遥控电子智能锁


文章目录


前言

为了响应智能家居潮流,提倡简洁方便生活,通过DIY让家庭生活设施更加智能化。


一、需求分析

  由于老式房子、出租房和农村房子等在建房之初大多未安装楼层与一楼大门的控制,对于送煤气、送桶装水和外卖等需要下楼开门极不方便的生活服务,所以对这现存问题有必要研究解决下。

二、实现功能

1.无线开锁

  实现无线一键开启电子智能锁,打开大门

2.无线开报警灯闪烁

  实现无线一键开启报警灯闪烁,夜间指示

三、解决方案

1.方案考虑

(1).锁具问题

  很多老式房子大门还采用机械式锁具,这是相当不方便的;有些采用电子锁,可刷 ID 和 IC 卡开门,但市面上的电子锁都未提供楼层控制大门,最多提供短距离遥控控制且只有一个,不足以解决该问题;在物联网的加持下,有些电子智能锁提供以物联卡上网的方式远程控制,但长期会产生流量费用问题,且楼道建筑体的复杂性会影响信号传递,尤其在国内传统老式住宅区房屋的密度大,同时一但加入互联网安全性也会受到影响。   所有,上述现成的电子锁都不能解决该问题,由于制造电子智能锁是极麻烦的一件事,故采用市面上现成的电子智能锁,带 ID 或 IC 刷卡并有有线或无线信号可控制开锁功能,再经自已改装和新增设备解决。

(2).信号传输问题

  在确定电子智能锁后,我们要考虑信号是如何方便稳定传输至一楼或楼层,有线传输具有信号稳定和延时性低等优势,但在楼道之间布线是极其麻烦的一件事,不仅安装复杂、耗时长、成本高和不利于维护等劣势,可见在这种改装或新增设备的场所是一种很糟糕的方案。因此,无线传输很好解决有线传输存在的这些问题,虽然信号容易受墙体影响,覆盖范围小,延时性比有线长,但在低速场合延时性根本不太重要,非重要场合对信号的稳定性要求也没那么严格并不会产生严重后果,信号覆盖范围小可用多个设备间桥接。

(3).通信方式

  无线传输的多种多样,有 WIFI、zigbee、蓝牙、红外、2G/3G/4G 和 LoRa 等,根据我们现实的条件,凡是需要插卡才能通信的一律不考虑;而蓝牙通信距离短一般在10米内,在与手机通信中应用得多,也不适合我们的要求;红外不单距离短且是单工通信更不适合;WIFI 则需要有路由器才能工作,非常不经济;根据以上列出的问题,只有 zigbee 和LoRa 适合做为本方案的应用。   zigbee工作免费频段在2.4G,也是近些年智能家居无线控制应用的很好的一种方案,其具有低功耗、低成本、近距离(节点间距离)、短时延、高容量和高安全等优点,是一种不错的选择。   LoRa专为低带宽、低功耗、远距离、大量连接的物联网应用而设计的,其工作免费频段在433、868和915MHz等中,根据波长与频率成反比的关系,频率越低穿墙效果越好,可见在穿透能力方面比zigbee强。LoRa具有低功耗、传输距离远、易于建设和部署等优点;但相互之间会出现一定频谱干扰,技术过于集中在semtech公司等劣势。

(4).操作与安装

  我们要实现的是在每户家里安装一个无线发射器来控制一楼大门的电子智能锁,要求操作简单,安装方便,安装在墙面上不影响美观。一般家里的插座和开关都是86型外壳,市面上是否有类似的外壳呢?经过我们的寻找,市面上存在这种外壳且带有按键开关,非常方便操作,跟原先家用的开关外壳外形基本一致不影响美观。

2.方案确定

  经过上面的无线方案对比考虑,最后只剩下zigbee和LoRa符合我们无线信号传输要求,为此我们就要对比市面上zigbee和LoRo模块,进一步确定最终方案。经过对比,发现zigbee模块比LoRa便宜且zigbee模块带自组网软件,非常利于编程,而LoRa需要自己编写相应的程序,费时长且稳定性还要受时间考验。   因此,本无线方案最终选择zigbee方案,通过在每户安装一个带按键的86型机壳,操作按键后通过zigbee无线传输信号给一楼控制器,控制器再控制电子智能锁的遥控器,遥控器最后控制电子智能锁,使能打开一楼大门。

四、整体设计规划

1.示意图

在这里插入图片描述

2.规划框图

在这里插入图片描述

五、硬件设计

1. 硬件设计规划框图

  硬件设计共分成三个设备,分别是CZ201E、CZ201R和CZ201C。其中CZ201E与CZ201R硬件设计一样的,只是程序不同。

(1).CZ201E硬件设计规划框图

在这里插入图片描述

(2).CZ201R硬件设计规划框图

在这里插入图片描述

(3).CZ201C硬件设计规划框图

在这里插入图片描述

2. 硬件原理图

(1).CZ201E硬件原理图

在这里插入图片描述

(2).CZ201R硬件原理图

  与CZ201E一致。

(3).CZ201C硬件原理图

在这里插入图片描述

3. 硬件电路原理

(1). 整体概述

1).CZ201E电路整体概述
  市电从P1和P2端子输入,经过以LP3667B为核心的反激式开关电源输出5VDC电压,5V电压输入到单节锂电池管理芯片TP4054,TP4054一方面给锂电池充电,另一面提供比后续LDO电路,当市电断电时由锂电池放电供应LDO。LDO输出系统需要的3.3V电压为整个MCU和其它模块供电。当按键S1或S2按下时,MCU检测到按键按下变化,会驱动LED灯和蜂鸣器做为指示,然后通过zigbee模块E18-MS1PA2-IPX把命令发送出去。

2).CZ201R电路整体概述
  CZ201R与CZ201E电路是一样,CZ201R系统初始化后只做为一个数据转换,扩大信号传输距离,该功能由zigbee模块E18-MS1PA2-IPX完成,MCU基本不参与。

2).CZ201C电路整体概述
  适配器12V输出到P1端子,经过BUCK降压输出5VDC电压,5V电压输入到单节锂电池管理芯片TP4054,TP4054一方面给锂电池充电,另一面提供比后续LDO电路,当市电断电时由锂电池放电供应LDO。LDO输出系统需要的3.3V电压为整个MCU和其它模块供电。由光耦U5等器件组成对外置门禁复位开关输入,由Q4和Q5等器件组成对外报警灯闪烁控制,由Q6、Q7和K1等组成对电子智能锁遥控模块控制。当有外置门禁复位开关按下时,MCU检测到便通过控制电子智能锁遥控模块,遥控模块再发射信号给电子智能锁后开启大门。zigbee模块E18-MS1PA2-IPX时时等待CZ201E设备的发送命令。

注意: 电子智能锁遥控模块是用12V一次性电池供电的,并未接到电路系统中,要定期检测或更换。

(2). 其它部分电路解析

  该电路很简单,不再赘述。

4.MCU管脚分配

(1).CZ201E的MCU管脚分配

在这里插入图片描述

(2).CZ201R的MCU管脚分配

  与CZ201E一致。

(3).CZ201C的MCU管脚分配

在这里插入图片描述

5.电路最新版本

(1).CZ201E 最新硬件版本: CZ201E_V2.0

(2).CZ201R 最新硬件版本: CZ201R_V2.0

(3).CZ201C 最新硬件版本: CZ201C_V2.0

6.PCB Layout

(1). 布局

1).CZ201E布局

在这里插入图片描述
在这里插入图片描述

2).CZ201R布局
  与CZ201E一致。

3).CZ201C布局

在这里插入图片描述

(2). 印制板图

1).CZ201E印制板图

在这里插入图片描述

2).CZ201R印制板图
  与CZ201E一致。

3).CZ201C印制板图

在这里插入图片描述

7. 成品图

在这里插入图片描述
在这里插入图片描述

六、BOM表

1.单板材料清单

(1).CZ201E单板材料清单

在这里插入图片描述

(2).CZ201R单板材料清单

  与CZ201E一致。

(3).CZ201C单板材料清单

在这里插入图片描述

2.单板预估成本

(1).CZ201E单板预估成本

在这里插入图片描述

(2).CZ201R单板预估成本

  与CZ201E一致。

(3).CZ201C单板预估成本

在这里插入图片描述

七、软件设计

1. 程序流程图设计

(1).CZ201E程序流程图设计

在这里插入图片描述

(2).CZ201R程序流程图设计

在这里插入图片描述

(3).CZ201C程序流程图设计

在这里插入图片描述

2. 自定义通信协议

(1).通信设备

  CZ201E、CZ201R 和 CZ201C 都通过 zigbees 模块通信,分别是终端、路由和协调器。CZ201E 做为终端向 CZ201C 协调器发送命令,CZ201C 响应应答,CZ201R路由做为 CZ201E 和 CZ201C 的信号桥接,扩大信号传输范围。

(2).通信方式和格式

1).通信方式
  通信方式是MCU通过串口跟zigbee模块通信
2).串口通信格式
  串口通信格式是115200,N,8,1
3).zigbee工作模式
  zigbee工作模式是点播模式

(3).通信协议(以下命令是十六进制)

1).请求方和响应方
  请求方是 CZ201E,响应方是 CZ201C
2).请求方帧格式
帧头帧长帧命令信息段帧尾
1Byte1Byte1Byte4Byte1Byte
帧头: AF 帧长: 固定为6个Byte。 帧命令:长度为1个Byte,表示此帧数据的操作含义。 信息段:长度固定4Byte的信息段。 帧尾: AD


信息段内容:

序号字节数对应命令描述参数参数意义备注
1401开电子智能锁00 00 00 00
2402控制报警灯闪烁0000~FFFF时间(ms)

3).响应方帧格式
帧头帧命令错误码
1Byte1Byte1Byte
帧头: BF 帧命令:长度为1个Byte,表示此帧数据的操作含义。 错误码:返回结果状态。


错误码状态:

序号字节数错误码结果备注
1100成功
2101失败

4).开电子智能锁
帧头帧长帧命令信息段帧尾
AF0601AD
例如发送: AF 06 01 00 00 00 00 AD

成功返回: BF 01 00
帧头帧命令错误码
BF0100
失败返回: BF 01 01

5).控制报警灯闪烁
帧头帧长帧命令信息段帧尾
AF0602闪烁时间AD
例如发送: AF 06 02 00 00 3A 98 AD 解析: 控制报警灯闪烁15秒

成功返回: BF 02 00
帧头帧命令错误码
BF0100
失败返回: BF 02 01 解析: 当市电断电后会响应失败

3. 程序开发工具

  本程序基本框架是采用ST官方的STM32CubeMX生成的,编译编程也是官方的Atollic TrueSTUDIO for STM32 9.3.0。

(1).STM32CubeMX

  STM32CubeMX功能强大,可视化配置GPIO,直接代码生成,为开发节省了很多时间,是开发者的必备品。

在这里插入图片描述

(2).Atollic TrueSTUDIO for STM32 9.3.0

  TrueSTUDIO是一款功能强悍的免费编译编程环境器,秉承gcc和eclipse风格,界面优美舒适、文件管理方便和强大插件功能。TrueSTUDIO自带git bash工具,非常利于开发时项目的管理、合作和保存。

在这里插入图片描述

4. 代码解析

(1).CZ201E代码

int main(void)
{
	HAL_Init();
	SystemClock_Config();
	MX_GPIO_Init();
//	flash_init();
	init_queue(&usart1_queue);
	timer_init();
	timer_arm(&usart1_timer, 5, on_tick, _False);
	usart1_init(115200);
//	rtc_init();
//	led_init();
//	beep_init();
	led_blink(0, 100, 1000);
	beep_oscillation(50, 1000);
	key_init();
	e18_ms1_ipx_init();
	power_init();
	MX_IWDG_Init();
	while (1)
	{
		iwdg_feed();
		key_handler();
		e18_ms1_ipx_overtime_alarm();
		HAL_Delay(10);
	}
}
  系统初始化串口、定时器、LED和按键等后,while不断进行喂狗,一直检测按键是否有按下。串口接收本来打算用DMA+IDEL模式,奈何MCU的RAM有限,就此作罢。

(2).CZ201R代码

int main(void)
{
	HAL_Init();
	SystemClock_Config();
	MX_GPIO_Init();
	//	省略各模块初始化书写...
	while (1)
	{
		iwdg_feed();
//		key_handler();
		HAL_Delay(10);
	}
}```

```c
if(pdata[0] == 0xFF && pdata[1] == 0x00)	//无网络或失去网络
{
	e18_ms1_ipx.nwk_state = 0;
	led_blink_clear(0);
	led_blink(0, 500, 0);
	if(++nonetwork_cnt > 4)
	{
		//重启模块
		buffer[0] = 0xFD;
		buffer[1] = 0x01;
		buffer[2] = 0x12;
		buffer[3] = 0xFF;
		usart1_send_data(buffer, 4);
		nonetwork_cnt = 0;
	}
}
  系统初始化后什么都不用做,只在串口接收处理函数中若收到zigbee断网指令便不停重启,直到连接到网络。

(3).CZ201C代码

int main(void)
{
	HAL_Init();
	SystemClock_Config();
	MX_GPIO_Init();
//	省略各模块初始化书写...
	while (1)
	{
		iwdg_feed();
		key_handler();
		HAL_Delay(10);
	}
}
void e18_ms1_ipx_protocol_handle(uint8_t *pdata, uint16_t size)
{
	//省略书写的代码...
	if(pdata[0] == 0xAF && pdata[1] == 6 && pdata[7] == 0xAD)
	{
		switch(pdata[2])
		{
			case 0x01:	//开锁
				lock_unlocking(500);
				//点播模式(短地址方式)
				buffer[0] = 0xFC;
				buffer[1] = 0x07;
				buffer[2] = 0x03;
				buffer[3] = 0x02;
				buffer[4] = pdata[8];
				buffer[5] = pdata[9];
				buffer[6] = 0xBF;
				buffer[7] = 0x01;
				buffer[8] = 0x00;
				usart1_send_data(buffer, 9);
			break;
			case 0x02:	//闪灯
				if(power_get_ac_state() == 1)	//有市电外置灯才点亮
				{
					time_ms = pdata[3] << 24 | pdata[4] << 16 | pdata[5] << 8 | pdata[6];
					led_blink_clear(1);
					led_blink(1, 0, time_ms);
				}
	
				//点播模式(短地址方式)
				buffer[0] = 0xFC;
				buffer[1] = 0x07;
				buffer[2] = 0x03;
				buffer[3] = 0x02;
				buffer[4] = pdata[8];
				buffer[5] = pdata[9];
				buffer[6] = 0xBF;
				buffer[7] = 0x02;
				buffer[8] = 0x00;
				if(power_get_ac_state() == 0)	//无市电返回失败
					buffer[8] = 0x01;
				usart1_send_data(buffer, 9);
			break;
		}
	}
}
  各设备之间的zigbee模块采用点播通信模式,根据自定义协议编写如上代码。

5.程序最新版本

(1).CZ201E 最新程序版本: CZ201E_HW_V2.00

(2).CZ201R 最新程序版本: CZ201R_HW_V2.00

(3).CZ201C 最新程序版本: CZ201C_HW_V2.00

八、操作说明

1.操作界面

在这里插入图片描述

CZ201E 操作界面

在这里插入图片描述

CZ201C 外置门禁复位开关操作界面

2.操作说明

  如果开锁按键处的红灯一直闪烁说明设备没有连接到网络,此时任何的按键都无效。当用户按下开锁按键后,指示灯会以5Hz闪烁并维持1秒后熄灭,同时蜂鸣会以5Hz鸣叫并维持0.5秒时间,如果2秒后没CZ201C没应答CZ201E,指示灯和蜂鸣器便会保持3秒响应,说明这次操作失败,反之不会。开报警灯也类似原理,按键下报警灯会闪烁15秒后熄灭。   CZ201C外置门禁复位开关是放置在离大门2米之内开关,按下即开门,下楼时免去刷ID/IC卡或拧把手。

九、技术参数

1. 工作电源电压

(1).CZ201E工作电源电压: 100~240VAC,50Hz

(2).CZ201R工作电源电压: 100~240VAC,50Hz

(3).CZ201C工作电源电压: 外接适配器 12VDC/1A

2. 无线通信频段: 2.4GHz

3.电源功耗: ≤ 1W

4. 工作环境温度: -25~+50℃,无冷凝水

十、装配说明

1.产品配件表

在这里插入图片描述

2.安装接线图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.安装说明表

在这里插入图片描述

4.实际效果图

在这里插入图片描述
在这里插入图片描述

十一、注意事项

1.勿带电安装

2.设备安装远程潮湿、暴晒和灰尘区

3.开关和设备应离地 1.3 米以上安装

4.导线需放置线槽最好

5.终端、路由和协调器控制设备的天线不乱混淆

十二、总结

  该方案到此讲述完毕,若要详细资料请下载查看。此方案尚有许多不足之处,如未做低功耗、通信距离过短、节点过多、通信数据未加密、成本过高等,还需要额外购买电子智能锁,需要一个控制器,没有做到一体化集成,对于可扩展性不好。CZ201E成本过高的原因是,一是使了现成的模块,二是采用了ST单片机,在全球缺芯的场面下从两元不到翻了将近十倍。该zigbee模块内部是采用IT公司的CC2530芯片,它本身就是款MCU,特殊之处就是它带无线功能,要想节省成本可考虑直接用它,免去ST的MCU。我们发现电子智能锁其实内部采用的是MFRC522射频IC,是NXP公司的,要想集成电子智能锁功能,就要进一步研究它。

十三、下载地址

git clone -b CZ201 https://github.com/chengzidun/blog.git
https://github.com/chengzidun/blog.git
https://download.csdn.net/download/chengzidun/19555666


免责申明: 作者难免技术水平有限,如有错误拒不承认,本文技术资料只适于学习和参考,不可商用,若要商用,不必告知我,跟我没一毛关系。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值