共享智能指纹储物柜的研究

2021-04-12 01:44西北民族大学电气工程学院李文闯杨荣兴李超凡
电子世界 2021年5期
关键词:储物柜串口北斗

西北民族大学电气工程学院 李文闯 杨荣兴 李超凡

在共享概念的渗透下,越来越多的“共享+”开始涌现。与此同时,随着嵌入式电子技术的飞速发展,电子技术的相关产品在日常中的应用也日益增多,其中,储物柜由于自身的方便性得到了广泛的应用。但现在储物柜的使用有诸多不足:(1)现在储物柜大多设置在超市等固定场合,由于自身的局限性无法满足共享的要求,而且每个柜容量是固定的,如果所存物品较大就会无法存入,使用不便;(2)现在储物柜大多为打印条形码等存储方法,这种存储方法存在丢失的可能性,丢失之后较为麻烦;(3)每次存储所生产的条形码纸等存在浪费,不符合当今的节能趋势;(4)在类似游乐场的一些场合经常面临需要短时间存储手机等贵重物品的情形,由于当下储物柜的存储方式不符合其情形并未广泛投入使用。基于以上问题,本项目就是研究基于指纹识别的共享智能储物柜,通过扩展储物柜功能实现储物柜在火车站等各个场所的共享,同时在一些功能上实现智能化,使其更加方便实用。

1 控制系统总体设计方案

使用Cortex-M4内核STM32F1系列芯片控制器作为控制单元,该MCU处理速度更快、硬件资源更丰富,通过实现储物柜在需要时刻可由管理者进行GPS定位(在这里进行说明二点,一是GPS定位是方便储物柜管理者找到其位置,方便管理、防止丢失;二是由于共享储物柜投入数量足够并不需要定位寻找,故未开发储物柜的用户定位功能)使得储物柜可在火车站等场合投放使用实现共享,采用指纹识别进行存储,同时还具备语音提醒、触摸按键备份(按键密码开启)等智能功能。

各项功能的具体解释:本研究是基于指纹识别为基础的共享智能储物柜,之所以要实现可被管理者进行定位,是为了防止丢失、方便管理;此外,设计通过指纹识别进行存取为使用者的所存物品提供更大的安全保障,同时避免条形码IC卡等的生产,实现节能的目的;设计具有按键解锁功能为防止因出现出现系统卡死(遇到此情况时使用者可向管理者申请打开);设计在存储时会有语音提醒(提醒存储物品),同时,储物柜占用情况也会在液晶屏上显示(储物柜已用还是未用)等。

系统框图如图1所示。

图1 系统框图

2 硬件设计与实现

2.1 各个模块功能的实现

为了实现项目功能,必须做到能够使主要模块达到相应的功能。

AS608光学指纹模块,使其能够做到指纹采集、存储以及匹配。当检测到有指纹录入时,在指纹库里进行指纹匹配。若有相同指纹则证明为开锁,调用I/O口通过继电器控制电磁锁打开柜门;否则,证明为使用柜子存储东西,存下该指纹同时打开未使用的柜子。

GPS北斗双定位模块以及GSM/GPRS模块:GPS北斗双定位模块能够进行定位,GSM/GPRS模块能够进行信息的收发,两模块联合使用。当管理者需要获取该储物柜的地理位置时向GSM/GPRS模块发送信息,两模块开始通信,GPS北斗双定位模块将定位得到的信息给GSM/GPRS模块,然后GSM/GPRS模块将地理信息发给管理者从而定位成功。

SYN6288语音合成模块,使其能够发出一定的声音如“请锁好柜门”、“谢谢使用”等语句。

TFTLCD,使其能够实现触摸按键的功能,同时能够实时显示储物柜的占用情况等。

2.2 系统电路设计

本项目使用14.8V的锂电池作为电源,整个系统还需要使用到5V电源为MCU以及部分模块(GPS北斗双定位模块等)供电、3.3V电源为部分模块(AS608光学指纹模块)供电、12V电源控制电磁锁从而控制柜门的开关。因此,需要使用到三个可调降压模块使锂电池电源供来的电压分为三种不同大小的电压以满足系统需要,保证能够为MCU及所用到的模块提供其所需要的电压是使它们正常工作完成项目需求的前提。

2.3 MCU硬件资源的分配

根据MCU不同I/O口所具有的硬件资源将不同模块接在合适的I/O口上,以实现硬件资源的合理使用。此外,大多数模块采用串口通信,为了满足模块能够实现其功能并能够进行相互间的通信从而满足项目需要,需要合理分配MCU的串口资源使其不存在冲突以便顺利完成项目所需要的功能。其中,AS608光学指纹模块使用USART4,GPS北斗双定位模块使用USART3,GSM/GPRS模块使用USART2,SYN6288语音合成模块使用USART1,剩余一个串口5备用。此外,MCU的定时器资源也需要分配给各个模块,以防止因为发生定时器的冲突而影响模块功能的实现,由于篇幅有限在这里就不做叙述了。

2.4 整体硬件的构造

本项目的整体构造采用椴木层板进行搭建,首先在稿纸上设计出来利于项目完成的柜子的整体构造,然后使用AutoCAD软件根据设计纸画出来对木板需要切割的形状及长度,再使用激光雕刻机进行切割,最后通过钉子热熔胶等进行搭建从而得到符合要求的自制柜。在柜门打开锁死上,我采用的是SY-L60S电磁铁进行实现(因为该项目是基于对储物柜模型的研究)。

图2 程序执行流程图

3 软件设计与实现

本项目中使用的编程语言是C语言,使用的编译器为MDK。MDK编译器支持使用C语言对STM32系列芯片的驱动,该编译器功能非常强大,支持在线仿真功能,可以更加直观的看到程序设计时出现的错误并及时改正,对于程序的调试非常有帮助。程序编写时使用模块化编程,把不同模块的初始化及驱动过程封装在不同的.c文件中,在main.c文件中只实现调用的过程,不同文件中函数的调用通过对相应.h文件的文件调用来实现。模块化编程最大的好处就是程序的可阅读力比较强,编程思路体现的更加清晰,对于程序的分模块调试、程序修改也非常方便。通过代码编写控制各个模块相互协调以实现项目所需功能。此外,本项目中使用到IO口复用、IIC通讯、SPI通讯、串口通讯、定时器、定时器中断等,这些功能的正确使用也是项目功能完成的前提,其中特别是串口资源的分配与使用,因为大多数模块都要用到串口通信,解决好这一问题是模块功能能够顺利实现的基础。程序执行流程图如图2所示。

4 项目研究中遇到的部分问题及应对措施

在项目研究过程中,部分成员对于STM32的开发经验不足,在程序编写以及模块学习上存在一定的困难。例如:代码移植整合过程中出现较多问题,针对这一问题,我们在调试过程中查看主控芯片STM32F1对应官方数据手册并结合正点原子出版的对外设配置讲解的书籍,从而达到对调试过程更深入的了解。此外,对于一些配置过程复杂的模块或外设,观看正点原子团队录制的视频教程进行进一步的了解,以便项目学习过程中遇到问题时可以得到较快的解决。

总结与展望:本项目研究的是“共享智能指纹储物柜模型”,主要是要解决指纹解锁以及实时定位两个方面的问题。在指纹解锁方面需要实现指纹采集、存储以及匹配的功能,实时定位就是要解决GPS北斗双定位模块和GSM/GPRS模块相互间的通信从而能够在手机端对其完成定位。当然,还需通过对其它部分模块的使用从而完成项目所需的附加智能功能。在项目实现过程中,软件方面的一大问题就是MCU串口资源的分配与调试,因为大部分功能模块都采用串口通信,解决这一点是项目任务完成的一大前提。

本项目设计的“共享智能指纹储物柜模型”具有较强的环境适应力和稳定性,具有一定的使用价值,但部分功能还不太完备;同时,其并没有进行大范围投入使用以观看项目使用效果,因此还需要进行进一步研究和实践。该项目符合当下“共享+”的热潮,正应当下社会潮流,可以说具有不小的潜在价值。

猜你喜欢
储物柜串口北斗
北斗时钟盘
浅谈AB PLC串口跟RFID传感器的通讯应用
“北斗”离我们有多远
井井有型
关于在操场边建立储物柜的可行性研究
——以上海市高校为例
首个北斗全球“厘米级”定位系统开建
中国的北斗 世界的北斗
高效储物柜
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索