基于双通道传输的智能快件箱系统的研究与设计

2023-05-22 06:33游张华
物联网技术 2023年5期
关键词:取件投递快件

游张华

(深圳市华海联能科技有限公司,广东 深圳 518101)

0 引言

基于物联网的智能快件箱[1],能够识别、暂存、监控和管理快件[2],与云服务器结合构成智能快件投递系统。在城市里基站信号较好,快件箱可以通过4G/5G 信号与云服务器传输数据;而在农村地区基站信号较差,快件箱与云服务器通信经常不稳定,甚至断网,导致快件无法投递。为此,本文设计一种双通道传输的系统,当信号不好时使用蓝牙将投递数据传输到手机,再通过手机将数据传输到服务器,以解决快件箱在农村地区的使用问题[3]。本文从硬件和软件两方面讨论了双通道传输系统的设计。

1 系统总体设计

系统总体设计如图1所示,由智能一体机、多块锁控板、投递手机、云服务器组成。锁控板的主控芯片为STM32,控制电子锁开关门,检测门锁打开和关闭状态。一体机使用ARM9 内核的主控芯片,并运行Linux 和QT 程序,用于与投递员交互、扫描快件条码、控制锁控板、记录快件投取信息并通过4G/5G 网络上传服务器。一体机实时检测4G/5G网络信号,当信号不好时,会强制投递员使用手机进行投递。投递手机为安卓或苹果手机,并装有投递APP。手机投递时先用手机蓝牙连接一体机的蓝牙模块,身份验证通过后,再用手机扫描快件条码投递。投递APP 会自动检测网络信号,将信息传输到服务器。服务器运行管理后台[4],记录投取件信息。当有新快件时,会将取件密码发送短信或公众号推送给取件人[5]。

图1 系统总体设计

2 智能快件箱一体机的硬件设计

考虑到成本和运行人机交互界面需要消耗大量的CPU资源,故本方案中选择主频为454 MHz 的ARM9 核心微处理器IMX287 作为主控CPU。IMX287 一方面需要接液晶屏和触摸屏,进行人机交互;另一方面需要通过RS 485 总线接多块锁控板,用于控制每个箱门的电子锁。为了实现双通道数据传输,还需要外接4G/5G 模块、与手机通信的蓝牙模块。智能快件箱一体机的硬件组成如图2所示。

图2 一体机硬件基本结构

为了实现人机交互,对于界面的显示,选择群创AT070TN83(16:9,800×480)7 寸TFT 液晶屏。该液晶屏支持18 位数字RGB 接口,格式位RGB666,每个像素由6 bit 红、6 bit 绿、6 bit 蓝构成18 bit 数据。该液晶屏与IMX287 的LCD 控制器通过18 根数据线、帧同步(VSYNC)、行同步(HSYSNC)、时钟(LSCLK)连接。对于触摸输入,选择奕力科技的ILI2511 芯片的USB 电容触摸屏。

采用256 MB 的三星K9F2G08R0A NANDFLASH 芯片存放软件系统,包括uboot、Linux 内核、文件系统和SQLite数据库。使用两片HYB18M512160AF 芯片组成128 MB 的DDR 内存,用于加载Linux 操作系统和运行应用程序。

设计一个JTAG 接口,用来调试和烧写uboot、Linux 内核和文件系统。因为处理器内核需要1.8 V、1.5 V 电压,存储器需要3.3 V 电压,所以将系统的输入电压设置为5 V。经过DC-DC 转换器可完成到3.3 V、1.8 V、1.5 V 电压的转换。采用26 MHz 的有源晶振驱动CPU。

设计一个RS 485 接口用于与多块锁控板通信,进而控制箱门电子锁的开关。一个RS 232 接口用于接红外扫码枪来扫描快件单上的条码。一个GPIO 接口用于控制快件箱上的照明灯,方便取件人晚上操作。

4G 通信模块使用移远的EC20 模块。EC20 为4G 全网通模块,将EC20 的USB 接口连接一体机的USB Host 接口。一体机的快件数据便可通过4G 网络传输到云服务器。蓝牙通信模块使用基于TI 芯片CC2540 的串口蓝牙模块。该模块支持蓝牙4.0,将模块的串口连接一体机的串口。通过认证后,一体机的快件数据便可以通过蓝牙传输到投递员的手机中,进而再通过手机将数据传输到云服务器。

3 智能快件箱一体机的软件设计

3.1 交互界面显示

LCDC 是IMX287 中的液晶显示控制器[6]。可以通过LCDC 接口来控制交互界面的显示输出,需要加载LCDC 底层驱动mxcfb_modedb.ko和mxcfb.ko及Linux帧缓冲驱动。使用帧缓冲设备时,可将显示缓冲区直接映射到Linux 用户空间。这样在Linux 用户空间,应用程序可以按照预先设置好的R、G、B 位数和偏移量,将界面数据直接写到经过mmap()映射后的显示缓冲区,进而实现交互界面的显示。

3.2 交互界面触摸

由于使用的是USB 电容触摸屏,需要先加载IMX287 的USB Host驱动mxc_usbhost.ko。触摸芯片使用的是ILI2511,需要加载对应的芯片驱动mxc_ili2511.ko,同时需要加载Linux[7]的触摸层驱动touchscreen.ko。因为使用的是QT 交互界面,在Linux 下需要通过触摸驱动适配层将电容触摸屏的触摸坐标传递到QT 交互界面。适配层使用开源的TSLib库来实现,该库对采样得到的触摸数据进行滤波、去抖、校准等。为上层的QT 应用程序提供了一个统一的坐标接口,从而实现触摸操作。

3.3 锁控板控制

一体机的RS 485 连接多块锁控板的RS 485,每块锁控板都有地址拨码。通信采用主从收发协议[8],一体机为主机,锁控板为从机。主机先向从机发送数据帧,从机返回响应数据帧。控制需要执行以下步骤:(1)一体机向锁控板发送开锁命令;(2)因为开锁时间需要500 ms,所以500 ms 后一体机向锁控板发送查询锁状态命令;(3)如果锁状态为打开,则开锁成功;如果锁状态为关闭,则重复执行步骤(1)和(2);当重复执行3 次,锁状态仍为关闭,则说明该电子锁故障,设置对应的箱门为故障箱门。锁控板控制的执行流程如图3所示。

图3 锁控板控制的执行流程

3.4 4G 通道传输

4G 模块使用的是EC20,首先要添加模块驱动mxc_ec20.ko;然后使用Linux 的PPP 软件自动拨号,将一体机接入4G 网络。这样QT 应用程序才能与服务器进行通信和数据交互。交互需要执行以下步骤:(1)将快件箱的唯一编号发送到服务器进行注册验证,只有注册的快件箱才能使用,否则禁用;(2)查询QT 的SQLite 数据库是否有新投递的快件,如果有则生成对应的取件密码并保存到SQLite 数据库[9],并将快件信息和取件密码都传输到云服务器,服务器通过短信或公众号推送方式将密码发送给取件人;(3)查询QT 的SQLite 数据库是否有被取走的快件,如果有则在SQLite 数据库中删除对应的快件信息,并将取件信息传输到云服务器,完成一个快件的投取业务。4G 通道传输的执行流程如图4所示。

图4 4G 通道传输的执行流程

3.5 蓝牙通道传输

蓝牙模块使用CC2540 芯片的串口蓝牙,需要加载串口驱动mxc_uart.ko。蓝牙模块作为从设备,等待手机蓝牙的连接[10]。交互需要执行以下步骤:(1)手机投递APP 软件使用登录的用户名和密码在云服务器验证,验证通过才能搜索指定蓝牙名称去连接蓝牙模块;(2)手机APP 使用蓝牙模块的MAC 地址在云服务器验证,验证通过才能进行蓝牙数据的传输;(3)一体机查询QT 的SQLite 数据库是否有新投递的快件,如果有则生成对应的取件密码并保存到SQLite 数据库,再将快件信息和取件密码都传输到手机APP;(4)一体机查询QT 的SQLite 数据库是否有被取走的快件,如果有则在SQLite 数据库中删除对应的快件信息,并将取件信息传输到手机APP;(5)手机APP 将投件信息发送到云服务器,服务器通过短信或公众号推送方式将密码发送给取件人,将取件信息传输到云服务器,完成一个快件的投取业务。蓝牙通道传输的执行流程如图5所示。

图5 蓝牙通道传输的执行流程

4 系统测试

在基站4G 信号强度不同的情况下,对快件信息到达服务器的耗时进行了测试。测试结果见表1 所列。

表1 双通道传输时间比较

由表1 可见:测试1,基站信号较好,信息通过4G 通道1.2 s 后到达服务器;测试2,基站信号较差,信息通过蓝牙很快到达手机,手机移动了一定距离,信息25 s 后到达服务器;测试3,基站信号很差,手机移动了较长距离,才找到基站信号相对好的位置,信息400 s 后到达服务器。

5 结语

本文详细介绍了基于双通道传输的智能快件箱系统的设计,该方案不仅能应用于基站信号较好的城市,也能应用于基站信号较差的农村地区,很好地解决了偏远地区对快件箱的使用需求。

猜你喜欢
取件投递快件
快件丢失该如何保价理赔?
神奇魔法树
手工线模具中常用的取件方式
帮爸爸取快件
外卖与快递
跨区取件的困扰
你有快件
派发广告分工做得好 人人努力效率高