《 物 联 网 工 程 实 践 》 设 计 报 告
系统基本情况
界面
数据库
驱动程序
硬件使用
QT Web 其它
嵌入式
平台
单片机
平台
外接
模块
√
SQLite3
IMX6
RFID
组内成员工作量占比
1. 绪论
我在使用我们学校的图书馆座位预约系统时,注意到我们学校的图书馆座位预约
系统上虽然有续约的按钮,但是都不能使用。因此便想借着物联网工程实践的机会基
于 RFID 做一个可用的座位预约系统出来。
2. 系统整体设计
2.1. 系统整体构架
如图 2-1 所示,系统主要由现场的触摸屏、服务器,以及安卓手机和数据库组成。
实际上,触摸屏、服务器、数据库全都是运行在 IMX6 平台上。触摸屏给用户提供了
现场操作的入口,有点类似图书馆的现场预约机的功能;服务器则用于处理各种请求,
包括触摸屏发来的请求以及安卓手机客户端发来的请求;安卓手机通过连接 WiFi 与
服务器进行通信,进而实现数据的保存。
服务器
WiFi
安卓手机
数据库
触摸屏
图 2-1 系统整体构架
2.2. 软件主要功能模块
2.2.1. 主窗口
主窗口实际上并不实际存在,不同的操作状态下由不同的子界面充当主窗口。主
窗口由四个大的部分组成:管理员界面、首页、用户操作界面和 TcpServer。后续将一
一介绍这几个部分。主窗口同时也能访问数据库以便实现从首页切换到用户操作界面
时用户的合法性检验;呼出数字键盘和输入对话框以便实现从首页切换到管理员界面
时的管理员身份核验;获取 RFID 读取的信息,以便在从首页切换到用户操作界面时
获取用户的身份识别信息。
2.2.2. 管理员界面
图 2-2 管理员界面
如图 2-2 所示,管理员界面包含了系统标题、作者信息、以及五个操作按钮和日
志文本框。
图 2-3 录入学号
图 2-4 学号已存在错误提示
图 2-5 写入学号确认
如图 2-3 所示,管理员点击录入学号按钮后,会呼出输入对话框和数字键盘,实
现修改目标卡片内存储的学号并将学号存入数据库中的功能。
若数据库中已存在待写入的学号,则不会执行任何操作,包括修改卡片内的学号,
同时会提示用户学号已存在(如图 2-4 所示)。
若数据库中尚未保存待写入的学号,则会让用户确认写入(如图 2-5 所示)。
图 2-6 向 RFID 卡片内写入学号失败
在管理员确认要写入学号之后,将会尝试修改卡片内存储的学号,在写入卡片内
成功之后才会将学号写入数据库。如图 2-6 所示,如果在多次尝试写入卡片都失败之
后,则会提示用户刷卡重试。
图 2-7 修改学号时尝试写入数据库
管理员点击修改学号按钮之后,也会呼出输入对话框和数字键盘,与图 2-3 展示
的录入学号的效果一致,只不过修改学号不会检验学号是否已存储于数据库中,而只
会修改目标卡片内存储的学号。逻辑上来讲,也不应该尝试写入数据库,但是由于现
在的逻辑有点缺陷,所以还是会尝试写入数据库,不过得益于数据库的主键约束,如
果时数据库中已存在的学号,则不能正常写入(如图 2-7 所示),但是数据库中不存在
的还是能成功写入。
除去以上阐述的功能,管理员界面还有三个功能入口:退出程序、返回首页、保
存日志。退出程序用于主动正常结束程序,以便程序在运行过程中产生的动态内存能
被正常回收。返回首页则是在管理员操作完成之后返回到首页,让其他用户继续正常