一种基于STM32的智能柜控制器设计

时间:2022-08-07 01:56:10

一种基于STM32的智能柜控制器设计

引言

随着互联网技术,尤其是以第三代移动通信技术为基础的移动互联网的发展,电子商务已逐步取代传统的超市零售成为主流的商业和消费模式,其能够方便快捷地为顾客提供更为优质廉价的商品。现代物流产业也随之诞生,但是,在物流的最后环节,如今的物流公司,在为网上商铺送货时,都采用送货员将商品送往社区分发点,然后电话通或短信通知顾客现场亲自领取的方式。这样每个物流公司都需要聘请相当数量的送货员,而各物流公司的商品邮递之间没有交集,因而一方面造成了物运人力资源的浪费,另一方面,也导致一些小区顾客不集中的地方的商品不能及时地派发给顾客,影响电子商务向低人口密度的社区发展。

目前市场上所用的采用电子锁的智能柜,多数功能单一,只能进行简单的物品存取、个人密码修改等,每个智能柜控制器能够管理的锁柜数量有限,且只能供一个商家使用,利用效率极低。

针对现有智能柜控制器的缺点,本设计要解决的技术问题就是提供一种新型智能柜控制器,它能实现智能语音提示、锁柜安全高效分配及复用,在保证用户信息安全的同时,极大地提高了智能柜的利用率。

系统框图

如图1所示,本实设计包括有按键输入电路1、账户信息存储电路2、实时时钟电路3、液晶显示电路4、语音处理电路5、信号解码及电子锁驱动电路6和运算处理器7,按键输入电路1扫描键盘将用户输入转换为电平信号:账户信息存储电路2用于存取账户信息,包括账户名、密码、货物存取记录等:实时时钟电路用于提供实时时间,包括年月日时分秒;运算控制器7读取按键输入电路1的用户设置信息后,进行运算处理,存取或对比账户信息存储电路2中的账户信息,运算控制器7从实时时钟电路3读取当前实时时间送往液晶显示电路4显示,并控制语音处理电路5进行相应的语音提示,由按键输入电路1输入的密码控制信号解码及电子锁驱动电路6,完成对应的锁柜的开启与关闭。

技术原理

用户通过按键输入电路输入的账户信息和密码,经过运算处理器处理并与智能柜的一个锁柜进行数据关联,同时对这些信息进行加密处理后存入账户信息存储电路中。与此同时在液晶器电路显示相应的操作结果和数据,并通过语音处理电路进行智能语音提示:运算处理器将账户分为权限值大小不同的控制系统管理员、物流公司送货员及普通用户(即顾客)三个权限等级进行管理,当用户输入账号及密码正确,且输出命令符合当前账号权限时,运算处理器控制信号解码及电子锁驱动电路进行相应的操作,控制某一智能柜的某一锁柜的开启与关闭,完成货物的存取操作。

由于采用了上述技术方案,本设计具有如下的优点:1、实现一个智能柜多家商户使用且每个锁柜能够对应多个普通账户,极大地提高了智能柜的利用效率:2、采用先进的加密算法,对用户信息及密码进行安全高效管理,同时扩展液晶显示及智能语音功能,使整个智能柜的使用更加人性化。

加密算法与账户权限等级管理

为了保证智能柜中每个账户的信息及密码安全,本设计中采用基于随机数的RSA算法。它是1978年,MIT的三位学者Ronald L.Rivest,Adi Shamir和Leonard M.Adleman利用数论中大整数分解的困难性,构造了双密钥体制。它即可用于加密,又可用于数字签名,是被研究得最广泛,应用得最广泛的公钥算法之一。选择用户按键输入的实时时间作为加密的随机数种子源,采用c代码在运算处理器单元中快速实现,具体的算法理论参见文献,此处不再累述。

在保证了信息安全的基础上,为了提高智能柜的利用效率,设计中我们采用账户等级管理机制,即按用户输入的账号对应的权限大小分为管理员、送货员和普通用户三级账户进行管理。每一个智能柜中仅有一个管理员账号,由智能柜管理公司使用,它具有最大的权限,能够增加/删除送货员及普通用户的账户信息和修改相应的密码,查看智能柜的使用情况;每个智能柜最多可以有20个送货员账户,由每个快递公司使用,用于网上商户将商品/货物存入智能柜锁柜:每个智能柜中按所安放的小区地点居民的楼栋、门牌号预设了最大500个普通用户账号,供普通用户取货;送货员和普通用户在正确输入密码的情况下可以修改自己的存货和取货密码。送货员每次存货的锁柜是运算处理器按当前智能柜中空闲锁柜号大小依次自动分配的,从而智能柜中的每一个锁柜都可以对应多个普通用户账号,极大地提高了智能柜的使用效率。

系统软硬件设计

硬件电路设计

如图2所示,整个智能柜控制器电路采用+3.3V,+5V和+9V供电,运算处理器7芯片选用基于ARMCortexM3内核的半导体微控制器STM32F103RBT6,按键输入电路1的输入输出端连接至STM32F103RBT6的GPIoA的0到8号管脚,其中PA0—PA4输出列扫描信号,PA5—PA9输入行扫描结果:账户信息存储电路2采用EEPROM芯片AT24C64,AT24C64芯片的3个控制管脚连接至STM32F103RBT6的GPIOB的5至7号管脚,其中PB5用于AT24C64的读写保护控制,当为高电平时,禁止写入信息,PB6和PB7存取ATM24C64的通信总线:实时时钟电路3由12pF的3C13和C14以及谐振频率为32.768kHz的晶振Y1组成.由STM32F103RBT6内部的实时时钟(RTC)外设控制;液晶显示电路4采用LCDl2864点阵液晶,将其串行控制端与STM32F103RBT6的GPIOC的6至9号管脚相连,即可编程控制其显示:语音处理电路5采用ISDl760芯片,在其只需要少量的电容电阻及麦克风和喇叭,并将其串行外设接口(SPI)接口与STM32F103RBT6的通过GPIOB的12至15号管脚相连,便可以编程控制其录音、放音:信号解码及电子锁驱动电路6由4-16译码器74HCl54、反相器(74HC04)以及NPN三极管(S9014或S8050)组成,STM32F103RBT6输入的控制信号先经过74HC154译码输出,再由反相器取反,经NPN三极管基极200欧姆限流电阻,最后由NPN三极管构成的开关电路输出控制相应锁柜的电子锁。图2中还包括有STM32F103RBT6的晶振电路和电源滤波电路以及在线固件程序下载电路。

软件设计

STM32F103RBT6运算处理和控制流程如下:

在步骤301,系统初始化。完成对STM32F103RBT6输入/输出控制管脚、账户信息存储电路的存储芯片AT2C64通信接口、实时时钟电路、液晶显示器电路的LCDl602和语音处理器电路的ISD1760的初始化以及对智能欢迎界面的显示和语音提示:

在步骤302,读取按键输入电路的扫描输入、实时时钟电路的时间值以及账户信息存储电路的账户信息,对密码进行加密或者解密,对比账户信息并在液晶显示器上显示操作结果:

在步骤303,比较判断当前用户输入账号是否为管理员,若是,则执行步骤304,否则转至步骤305;

在步骤304,执行管理员任务,此时查看其它账户信息、智能柜每个锁柜使用情况、重置密码、增加送货员账号;执行完后转至步骤308;

在步骤305,比较判断当前用户输入账号是否为送货员,若是则转至步骤306,否则执行步骤307;

在步骤306,执行送货员任务,查找空闲锁柜并输出打开锁柜的控制信号:

在步骤307,普通账户用户取货及修改密码:

在步骤308,电子锁控制输出,打开相应智能柜的锁柜,完成货物存取及语音输出,完成相应的语音提示,然后返回步骤302继续循环。

整个智能柜控制器的软件设计流程图如图3所示。

总结

本设计充分利用STM32单片机丰富的片上外设和接口,在采用先进的RSA加密算法保证信息安全的基础上,设计并实现了基于账户权限大小分级管理的智能柜控制器,极大地提高了智能柜的使用效率,使得一个智能柜可以被多个公司使用,而且其中的每一个锁柜也可以多个用户共用:同时扩展的液晶显示器和语音提示,也使得整个智能柜控制器的使用更加人性化。在电子商务和网上购物的物流终端市场具有广阔的市场前景。

上一篇:建筑工程管理创新策略研究 下一篇:城市规划设计在高层建筑中的应用