基于STM32的超市指纹识别储物柜系统设计
2022-09-19张宝宁刘禧冬陈玉成
张 乐,张宝宁,杨 红,刘禧冬,陈玉成
(沈阳大学,辽宁 沈阳 110044)
0 引 言
超市是消费者的重要购物场所之一,超市放置储物柜为消费者提供寄存物品服务,以保障顾客的财产安全。目前,多数超市仍使用传统条形码储物柜,这种储物柜通过打印和扫描条形码打印纸实现存取功能。条形码储物柜技术成熟且应用广泛,但仍存在一些不足:打印纸属于一次性耗材,浪费资源;条形码易遗失、破损或失效,存在财产安全隐患问题;扫描枪、打印机设备成本较高。指纹是独一无二的人体特征,具有安全性和稳定性。超市储物柜使用指纹识别技术代替条形码识别,可以减少环境污染、避免纸张资源浪费,指纹的安全性也为顾客财产安全提供保障。为此,本文设计了一种基于STM32的指纹识别储物柜。系统使用AS608指纹识别模块,采集和识别顾客指纹信息,存储指纹信息后驱动门禁电路完成开关柜工作;通过ESP8266WiFi模块,将储物柜存储信息上传到管理中心。指纹识别储物柜与传统储物柜相比,具有可靠性高、识别速度快、成本低、维护方便等特点。本系统应用在超市等场所,能够满足顾客安全便捷的寄存需要。
1 系统总体结构
指纹储物柜系统由控制中心、采集识别、数据传输、人机交互和门禁驱动五部分组成。本设计使用STM32F103C8T6单片机作为主控芯片,采用AS608指纹识别模块采集和识别用户指纹信息,利用OLED液晶显示屏和矩阵键盘供用户查看信息和操作,通过门禁驱动电路控制柜门的开关。整体系统结构如图1所示。单片机与指纹识别模块通过串口进行通信,发送指令驱动模块完成指纹录入、指纹识别、指纹删除等操作,并通过WiFi模块将储物柜存储信息上传。用户能够通过OLED液晶显示屏查看当前储物柜空柜数量和分配柜号,并通过按键键盘输入存入和取出指令。
图1 系统结构
系统在空柜状态下,当接收到存入指令后,用户将手指放置在指纹识别模块上,等待录入指纹;录入指纹成功后,系统为用户分配当前空柜柜号,同时打开对应门禁,等待用户存放物品后关闭柜门。当系统接收到取出指令,用户放置手指后,在指纹存储库中识别并匹配用户指纹信息,打开指纹对应柜号的柜门,等待用户取出物品;在用户关闭柜门后,删除当前用户指纹信息并刷新储物柜空柜数量。系统在满柜状态下,禁止用户使用存放功能,等待用户完成取出操作时,恢复存放功能。当出现用户误操作或紧急情况时,按下管理员按键,系统通过WiFi将通知上报到管理中心。
2 硬件电路设计
2.1 单片机的选择
系统采用STM32F103C8T6单片机作为主控芯片,STM32F103C8T6是基于Cortex-M3内核的32位高性能控制器;与传统8位的51系列单片机相比,具有功耗低、处理速度快和硬件资源丰富等优点。系统使用了STM32的串口1与指纹模块进行通信,与OLED液晶显示屏之间采用IC通信方式进行数据传输。单片机采用3.3 V电压供电,主频高达72 MHz,拥有64 KB的FLASH和37个GPIO,完全满足储物柜系统低功耗、处理能力快的设计需求。
2.2 指纹识别模块设计
AS608光学指纹传感器的工作原理是通过内置光源照射,用棱镜将指纹投射在电荷耦合器件上,形成可被算法处理的多灰度指纹图像。指纹识别模块采用高性能的AS608指纹识别芯片,内置DSP运算单元,集成了指纹识别算法,可以高效准确采集和识别指纹信息,处理指纹图像时间小于0.4 s。模块配有串行通信接口,接收单片机下发控制指令完成指纹识别操作。AS608指纹识别模块自带指纹存储功能,可容纳300枚指纹。指纹识别模块录入指纹过程如下:首先,通过模块内置手指检测电路,判断有无手指放置;待手指放置后,发送读取图像指令读取指纹图像并生成特征指令,成功后发送存储模板及ID指令,否则重新发送读取图像指令;最后录入指纹结束。指纹识别模块采用典型值3.3 V供电,与单片机使用串口进行通信,模块的TX数据发送引脚与STM32单片机的USART1_RX连接;RX数据接收引脚与STM32单片机的USART1_TX连接。指纹识别模块电路原理如图2所示。
图2 指纹识别模块电路原理
2.3 ESP8266WiFi模块
系统使用ESP8266WiFi模块进行数据传输,模块集成了32位Tensilica内核处理器,支持三种WiFi工作模式,支持标准的IEEE802.11b/g/n协议和完整的TCP/IP协议栈。单片机通过串口与模块传输数据,WiFi模块再将数据通过无线网上传至管理中心。ESP8266模块工作性能稳定并且具有省电模式,适用于低功耗场景。
2.4 显示模块
本设计使用OLED液晶显示屏作为储物柜显示界面,分辨率为128×64。OLED液晶显示屏具有对比度高、反应速度快等特点,性能优于传统LCD屏幕,功耗低于TFT显示屏,广泛应用于数码家电、仪器仪表等方面。单片机与OLED之间采用IC接口进行通信,这种通信方式简单高效,两线式接口节省硬件引脚资源。
3 软件设计
系统软件设计使用Keil5开发工具完成,采用C语言编写单片机程序。系统主程序包括指纹识别子程序、OLED显示屏驱动程序、按键子程序和门禁驱动子程序。指纹识别储物柜系统操作流程包括存柜、取柜和管理员三种模式。存柜流程如图3所示,用户在存柜时,按下存柜键,系统进入存柜模式,读取当前储物柜是否已装满。若所有柜门已装满,则显示屏提示用户此储物柜已装满;若有柜门未装满,则显示屏提示用户“请按手指”,待采集用户指纹信息后,存入指纹信息库中并为用户分配空柜柜号。取柜流程如图4所示,用户在取柜时,按下取柜键,系统进入取柜模式,此时显示屏提示用户“请按手指”,待采集用户指纹信息后,与指纹信息库中指纹进行匹配,指纹相似度大于80%,认定指纹匹配成功,读取当前指纹对应柜号并打开柜门,若指纹相似度小于80%,认定指纹匹配失败,显示屏提示用户请重试或联系管理员。按下管理员键,系统通过WiFi发送管理员请求,管理员可在上位机中进行紧急开柜和删除指纹等操作。
图3 存柜流程
图4 取柜流程
指纹识别子程序实现录指纹、刷指纹、删除指纹等指纹识别功能,单片机通过串口读取指纹识别结果后再做相应处理。单片机接收到录指纹指令后,指纹模块获取指纹信息并生成特征图像,此时用户再次放置手指获取指纹,指纹模块生成第二次特征图像,将两次指纹特征进行对比,对比成功则生成指纹模板并储存指纹,失败则重新录入指纹。
4 系统测试及结果分析
为测试本系统中指纹识别的速度以及准确性,对系统进行了多次测试,测试结果见表1所列。
表1 系统测试记录
从测试结果可以看出,指纹录入时间平均,指纹识别时间短,指纹匹配结果均成功,表明系统响应速度灵敏,具有一定的可靠性。
5 结 语
本文设计了一款基于指纹识别技术的智能超市储物柜,通过STM32单片机结合AS608指纹识别模块实现储物柜智能控制。与传统条形码储物柜相比,指纹的唯一性提高了储物柜的安全性;使用指纹代替条形码,避免了纸张资源的浪费。指纹识别储物柜可被广泛应用在超市、大型商场、展览馆等公共场所,具有较大的市场潜力。
除此之外,对于零工经济的法律监管也较为混乱。现有法律并没有明确规定企业平台所需承担的责任和义务,也没有对于劳动服务供给者的资质提出明确要求。由于监管政策不够明确,导致相关行业乱象重生,甚至出现了严重的刑事案件,例如郑州空姐遇害事件、温州乐清女大学生遇害事件。