智能寄存柜设计与实现

2021-05-04 06:45党婷婷王雪纯程忠忠孙慧萍
关键词:柜子使用者指纹

党婷婷,王雪纯,程忠忠,孙慧萍

(1.山西大同大学物理与电子科学学院,山西大同 037009;2.天津工业大学电子与信息工程学院,天津 300387;3.北京孩思乐商业有限公司,北京 100020)

文章设计了一种基于单片机的智能寄存柜控制系统。采用STC89C52作为核心器件,使用者可以通过LCD12864液晶显示屏得到操作步骤的提示,利用FPM10A指纹模块对使用者的指纹进行采集、保存和比对,柜门锁使用电磁锁。

1 硬件设计

1.1 单片机最小系统

采用STC89C52作为核心器件。最小系统的复位电路为混合型的复位电路,也可以借助按键来进行手动的复位。时钟电路所使用的是内部时钟,指纹模块需要和时钟电路进行串口通讯,为了产生标准波特率,应选择11.0592 MHz晶振[1]。

1.2 液晶显示电路

设计采用的显示模块为LCD12864。VDD与VSS分别为电源的正极和负极,VO为对比度的调整(对比度会随着电压的升高而升高),一般接+5 V,并且将一个10 k的电位器接在该引脚处。LCD12864引脚与单片机各引脚连接方式为:RW引脚与单片机P03口相连,从而实现单片机对电平的控制;RS引脚与单片机的P02口连接;E引脚与单片机P04口连接;DB0~DB7的8位数据端与P2口连接;PSB引脚与P07口连接;BST端口与P05连接;BLA与BLK则分别与VCC和VSS直接相连[2]。

1.3 继电器驱动电路

设计开关器件的驱动电磁锁为型号T73 SRD−5VDC−SL−C的5 V驱动的电磁继电器。继电器驱动电路如图1所示。

图1 继电器驱动电路

此继电器的引脚一共有5个,其中不区分正负的线圈引脚总共两个。触电引脚共三个,分别为COM−公共引脚;NO−常开触电引脚;NC−常闭触电引脚。T73 SRD−5VDC−SL−C的驱动电压为正5 V,开关电压250VAC/30VDC,开关电流为AC 10A/DC 10A。

1.4 按键电路

系统使用有“存”、“取”与“返回”三个功能的独立按键。按下按键时,则对应的单片机I/O口由之前的高电平转变为低电平,进而输入信号。

1.5 指纹模块电路

设计所使用的单片机是5 V供电,指纹采集部分选择FPM10A指纹模块。指纹采集模块与单片机通讯使用UART,存储的指纹数量可达300个,而且拥有断电存储的功能。指纹模块利用UART和单片机通讯,电路中要留出指纹模块所使用的串行接口,此外指纹模块还需要两个电源接口,并且所需要的电压为5 V。

2 软件设计

设计使用KeilC51为单片机的编译软件,C语言为编程语言,整体程序分为主程序设计与子程序设计两部分。其中子程序又分为:指纹录入、指纹的对比、LCD液晶显示、柜子的储物情况等等。

2.1 主程序设计

图2为主程序流程图。要先进行开机系统初始化过程才能进入系统主页面。当“存”的按键被按下时,系统将会对寄存柜的储物情况进行分析,当寄存柜已满时系统将会提示“物品已满”,若仍有空的柜子可以使用则液晶显示屏将会提示“请输入指纹”,指纹输入成功后,会有一个空柜子被打开并提示给使用者“柜门已开”。当“取”的按键被按下时,系统会有“请输入指纹”的提示并且等待指纹的输入,若指纹成功被比对则该指纹对应的柜子会被打开,否则将会提示“指纹不存在”。

图2 主程序流程框图

2.2 指纹模块程序设计

2.2.1 指纹录入子程序

子程序启动后提示使用者录入指纹,指纹输入成功后系统会将数据保存,并提示使用者再次输入相同指纹,输入完成后会将此指纹信息保存,当两次指纹录入结束后,系统会将两次输入的指纹数据信息进行合并,并将其转换成指纹特征码在指纹模块寄存器中进行存储,并且指定与柜子编号相同的指纹ID进行保存[3]。

2.2.2 指纹对比子程序

图3为指纹对比程序流程框图。子程序启动提示使用者录入指纹,指纹录入成功后系统将其转换为特征码并保存其图像数据,随后系统会将所有的指纹特征码与该特征码对比,若没有读取到相同的指纹模块将回到未能搜索到指纹确认码,若成功读取到相同指纹,系统将会读取2字节数据的指纹ID[4]。

图3 指纹对比程序流程框图

2.3 液晶显示子程序设计

LCD 12864是一种图形点阵,它主要是由行/列驱动器和128×64全点阵液晶屏组成,它可以显示出16×16点阵汉字,也可以显示图形。并且这类显示模块有着七种指令系统。LCD显示模块要先进行初始化设置才能进行显示,若需要显示,要先将液晶显示屏清屏,再写入想要显示的数据,在显示程序中的编程按照时序即可。

2.4 寄存柜储物情况子程序设计

系统在收到“存”的指令后,要对柜子的基本情况进行分析。对于8个寄存柜的存放状态设置了一个8字节组,将寄存柜编号设置为0~7并且相同于数组编号。若编号对应变量为0则说明此柜子是空的可以使用。若寄存柜编号和对应变量相同则柜子不为空。若所扫描的8个变量都不为0,说明所有寄存柜已满,没有可以提供使用空柜子。若不都为0,则从第0号的变量进行逐个扫描,直到扫描到为0的变量,并打开编号相对应的寄存柜,并将柜子的编号设置为次变量。当使用者取走物品时,则对应的编号变量将会变成0。

3 仿真、PCB设计、安装调试

3.1 系统的仿真

在仿真时使用USB转TTL来连接指纹模块,使用串口配置波特率为9600、1位停止位、8位数据位的串口工具与指纹模块在仿真系统中进行通讯。

3.2 PCB设计

利用电路原理图来绘制所需要的电路板,采用驱动板为一个电路板,控制板为一个电路板。这种驱动板与控制板分离的方法能有效地防止控制部分被施加因驱动板损坏产生的大电压[5]。PCB图见图4。

图4 PCB图

3.3 系统的调试

PCB设计好之后,按照电路图进行焊接,焊接完之后进行调试。在调试之前首先要对电路板是否可以正常工作进行检测。在电路板可以正常工作的前提下进行静态调试,可以使用万用表测量各点的电位,使电路直流工作状态能够符合本设计的要求。静态调试无误后可进行动态调试,通过将符合要求的信号加入输入端,检测各点的输出信号是否正常。如若在调试中出现故障可采用直接观察法、部件替代法、对比法等来找出故障点,进而解决故障。实物图如图5所示。

图5 实物图

4 总结

设计的硬件软件设计合理,能够在实现用户安全自由地存放物品的同时,无纸化操作克服了传统寄存服务中的条形码易丢失、资源浪费等缺陷,满足人民的需求。

猜你喜欢
柜子使用者指纹
设计让您在喜爱的虚拟世界中自由奔跑
像侦探一样提取指纹
为什么每个人的指纹都不一样
老农帮马未都劈柴
蝴蝶结藏哪里啦
新型拼插休闲椅,让人与人的距离更近
柜子不再孤单
抓拍神器
唯一的指纹
旧柜子