第112章 蛐蛐蠕虫接受真龙的怒火吧
2需求分析和相关技术
2.1系统构架
本系统采用物联网架构,选用ATK-ESP8266IFI模块、TFTLCD显示屏为模拟元件组成的智能课堂考勤系统。ATK-ESP8266IFI模块用于课堂考勤及网络连接控制,出现异常及时上报云平台,实时数据同步云平台等操作,TFTLCD显示屏将采集到的数据信息实时显示到本地中,供用户查看,分析。本系统通过科学的管理方法解决高校授课传统考勤的效率低、准确性差、争议多等问题,提高高校教学质量,提升学生学业成绩,更新数字化校园构建、改善教学提高校园治理方式、推进学生创新能力。系统具体框架如图2.1所示。
图2.1系统框架图
2.2系统主要功能
本设计通过集成ATK-ESP8266IFI模块对教室上课学生出勤状态进行实时检测,将各种逻辑判断加入其中,将采集数据通过ST32F103CRT6主控芯片进行数据处理,形成智能的课堂考勤系统,极大的提升教育质量,提高学生的学习质量。
ATK-ESP8266IFI模块的第一个功能用于连接网络和布置教室的局域网,在把模块初始化完成后,主控芯片会将所有功能模块采集到的数据通过处理在经过网络传输到云平台中,实现远程监控的功能。第二个功能也是本系统实施的关键所在,它用于教室学生出勤状态的检测,在本设计中学生出勤状态甄别的机制主要分为下面几种情况:在上课时间后开始进入检测状态,在上课五分钟后,连接到系统中的学生会被系统记为迟到,同时云平台上显示这个学生当前状态为正常,报警状态为迟到;在上课三十五分钟后,还有没连入系统的学生会被系统记为旷课,同时云平台上显示这个学生当前状态为异常,报警状态为旷课,如果该学生在三十五分钟过后又连接了网络,则网络平台上显示该学生当前状态为正常,报警状态依旧为旷课;当学生上课中途退出系统,系统会给出无分钟的预警时间,在预警时间结束之前重新连接的学生,系统不予警告,网络平台上该生的当前状态会显示正常,但如果已经过了预警时间还未重新连接系统的学生,系统会把该生记为早退,并上传到网络平台,将当前状态设为异常,报警状态设为早退;在学生状态发生变化时,本地的LCD屏上都会实时显示学生的出勤状态,同时网络平台都会给予老师相应的提醒,更加便于老师管理学生上课出勤状态,在备课阶段根据系统反馈的学生状态指定相应教学计划。
随着经济的飞速发展,能源紧张、环境恶化已然受到了全球的密切关注,能源是发展国民经济的重要基础,而节能降耗则是首要任务,在本系统中也针对节能降耗设计了相关的低功耗操作。在没有上课时,本地系统会处于休眠状态。在上课时,如果状态长时间无变化,会降低屏幕显示背光值,极大的节能降耗,完成低功耗系统的搭建。
3硬件设计
硬件设计是本项目的物理基础,也是本项目的核心。本系统硬件的功能模块主要为ATK-ESP8266IFI模块、TFTLCD液晶显示屏与OV5640AF摄像头模块,它们在系统中各司其职,构成了本项目实施的目的——智慧课堂考勤系统。
3.1中央处理器
主控芯片的选择取决于系统所需要实现的功能,本系统在上课期间必须保持不间断的运行,时刻面对一个班中近60多位学生,不仅需要随时对学生上课出勤的情况进行监测,还需要对所监测到的数据结果进行智能处理,并且要求具有智慧节能的能力。
考虑到本作品对运算速度、存储空间、端口支持、通信传输、多用户访问等方面的要求,作者选择了ST32F429IGT6作为主控芯片。
ST32F429IGT6是意法半导体公司的一种单片机芯片,它的内部数据总线为32位,主时钟频率为72Hz,芯片内置的sh程序存储器容量为256KB,内置RA容量是48K,对于本作品拟应用的场所来说,计算规模限制在64KB范围之内,对响应速度的要求通常在毫秒到秒之间,因而这样的芯片选择是足够的,而且还为系统软件的进一步扩展提供了足够的余量,便于后期维护与更新。
该芯片有内置的多种片内外设,有5个串行通信接口,其中USART三个,UART两个,可以通过外部的USB转串口连接IFI部件,实现无线数据传输。芯片内置的I2C总线接口,能够工作与多主模式或从机模式,支持标准模式和快速模式,对系统中数据的采集与传输提供了极高的优势。但是,作者在实际开发应用程序时听取了其他资深工程师的意见,使用自行编写的I2C总线软件仿真程序实现了接口通信。该主控制器具体实物如图3.1所示。
图3.1搭载ST32F429IGT6芯片的阿波罗开发板实物图
本系统使用5V稳压电源适配器供电,满足USB转串口芯片、外接存储芯片、传感器等部件的供电需求。5V电压经过开发板上的电压变换模块输出3.3V电压,为单片机芯片提供稳定的电压支持。
ST32F429IGT6内置的USART接口与ATK-ESP8266模块连接,实现连网的无线数据传输。由于进入课堂的每位学生均有手机随身携带,而手机总是试图与本地基站BTS保持联系,使移动网络交换中心(SC)将手机用户信息保存在当地访问位置寄存器(VLR)中,在手机通信时,手机用户在通信帧中向SC传送自己的AC地址,而这个AC地址是全球唯一的,能准确代表手机用户的身份。本作品正是利用了手机的这一特色,利用连接到单片机的ATK-ESP8266模块获取手机用户AC地址,并与系统中预存的学生数据进行比对。如果在运行期间系统能够定时匹配每位同学的固定AC地址,则视为正常。当出现学生上课状态异常时,系统会及时地将报警或预警信息实时反馈,提醒用户。采集到的学生信息通过逻辑处理,将数据进行分析处理,把分析后的信息显示到本地的TFTLCD液晶显示屏上,以直观的格式显示出来,还可以通过ATK-ESP8266模块实时上传云端保存,供老师查看历史数据。
3.2信息数据采集
本智慧课堂考勤系统中信息数据采集主要通过ATK-ESP8266IFI模块来实现,下面我会具体介绍ATK-ESP8266IFI模块代表的硬件的功能、性能以及具体实物图。
本设计中最大的特色便是实现了学生考勤数据的自动采集,可以对进入课堂的每个学生进行无感知的数据采集。
根据移动通信的协议,学生手机总是不断地获取本地基站(BTS)发射的导频信号,以感知自己所处的小区位置,并且通过BTS向SC发送自己的AC地址,以表明身份,SC会将表示手机用户身份的编码保存到VLR中。由于手机向SC发送信息是全方向的,因而信号覆盖区内的所有设备都可以接收到,因而可以利用ATK-ESP8266IFI模块来主动截取手机发射的AC地址,以判断手机用户所在的位置。由于IFI模块的覆盖区域有效半径仅在10米以内,恰好可以覆盖一个教室,但不会使相邻教室造成错误识别。
ATK-ESP8266IFI模块的具体实物图如图3.2所示,它支持LVTTL串口,工作电源电压3.3V,但工作端口可以承受5V的信号电压,与本系统所采用的主控芯片供电范围相符合,可以直接从单片机开发板供电。如果错接了5V电源,工作电流超过额定值,ESP8266模块很快就会发热,发热时间超过5分钟,芯片就有可能造成不可逆的损坏。
ESP8266模块支持串口转IFISTA、串口转AP和IFISTAIFIAP等三种模式,即可以在网络连接中承担热点的功能,也可以作为普通用户的工作站,还可以同时实现访问点与工作的功能。从用户角度出发,该模块配备了完善的AT指令及使用手册,供用户参考使用;在性能方面ATK-ESP8266模块非常小巧,不会占用教室过多空间,工作式多样化,供用户选择适用的工作模式,在本系统的应用中,我们选择了STAAP的工作模式,它能自主创建一个局域网以及连接上一个网络路由器,从而充当一个网络中转站,再结合它特有的AT指令来校验学生的出勤状态,达到一物两用;其次它的功耗较低:持续发送平均只需70,正常工作则只需12,更加符合我们设计节能的要求。
图3.2ATK-ESP8266IFI模块实物图
3.3信息传输
本系统采集到的课堂考勤信息选择传输到中移物联网免费发布的云平台OneNET上。这个平台有很多优点:
(1)海量连接,由于采用了分布式集群机制,支持海量设备的并发量接入,长时间保持在线的用户超过200万;
(2)数据存储量大且安全,OneNET服务器采用分布式结构,提供多点冗余备份,使数据安全得到充分保证;
(3)应用孵化,即使是入门级用户,都可以按照页面上的提示,快速创建设备管理的前端页面,并以直观的折线图、饼图、表盘、二维表等形式表示前端提供的数据,并通过界面上的按钮等操作,实现对前端设备的远程管控。
(4)信息分发,OneNET能将采集的数据通过消息转发、APP信息推送等方式快速告知业务平台、手机、APP客户端,建立双向通信的有效通道;
(5)可控触发,云端支持事件触发引擎,允许自定义触发条件,当接收到的前端数据超出预定义范围时,能自动推送响应信息到指定地点,帮助用户快速实现业务逻辑;
(6)数据分析,OneNET基于Hadoop等提供了对大量数据进行分布式处理的框架,它能维护多个数据流的副本,确保能够对失败的节点重新进行。它能够在节点之间动态地转移数据,使多个业务点的负载保持动态均衡。
本系统通过本地实时监控的数据信息通过局域网传输到OneNET平台上进行数据分析处理,让用户通过OneNET网络平台了解该教室学生上课出勤率、上课的实时状态,从而实现远程监控的目的,方便用户管理。此外,上传的数据能在网络平台上进行存储,达到数据可追溯性。所以,一款适用的信息传输元件对本设计的实现来说非常重要。智慧课堂考勤系统选用的是正点原子的ATK-ESP8266IFI模块来进行数据传输。在无障碍的空旷地带,ESP8266IFI模块的有效覆盖半径大约为100米,而在室内的覆盖范围会锐减到20米,遇到墙壁等障碍衰减更快。根据本系统需求ATK-ESP8266IFI模块选择STAAP的工作模式,既作为服务器也作为客户端;既可以为其他用户承担作为连接到网络的中转站,自身也可以作为访问网络的一个用户。在连接教室局域网后,用户便可以通过手机或电脑实现对学生出勤状态、上课的实时状态进行远程控制。教室内连接到局域网的无线路由器作为热点,使IFI模块与用户手机都能就近接入有线网络,不仅能节约网络资源,还能利用光纤网络的宽带优势更有效的传输数据。
3.4信息显示
在本系统中,本地数据显示使用10英寸TFTLCD液晶显示屏完成,显示内容主要由两部分组成,第一部分主要显示同学的上课异常状态,如学生迟到、早退、旷课等状态,第二部分主要显示同学的预警信息,系统运行的相关信息。这两部分显示相辅相成,更好的体现了系统的完整性,让用户更加方便的了解学生上课状态相关信息。
液晶显示屏是在上下两层偏振玻璃板之间填充液态晶体,在玻璃上涂镀金属电极,并在成对电极之间施加电压,产生电场,使液态晶体在电场作用下改变方向,从而影响液晶层的透光性。由于上下两层偏振板的偏振特性是呈90°交叉的,如果液晶分子在电场作用下同向排列,光线穿越两层偏振板之后衰减几乎为0,液晶屏不透光。如果设计液晶分子逐层偏转,在两个偏振板之间恰好将光线偏转90°,液晶板具有透光特性。外加电场控制每个像素之下液晶分子的排列,即可以在屏上显现出黑白或彩色像素。
TFT-LCD在显示屏的每个像素的每个基色单元下面都设置了一个薄膜晶体管,由于每个晶体管的通断都可以单独控制,因而在像素未选通时不会对屏幕显示产生干扰,使画面显示更加清晰。
液晶屏模块是由屏面液晶板与屏后的驱动芯片构成的,不同驱动芯片的参数各不相同,选择任一款液晶屏时都要向厂商索取相关的数据表(datasheet),而销售厂家都是非常乐意提供的。本作品选用的是以ILI9341为控制芯片的TFT液晶显示器模块,它可以采用RGB565格式存储颜色数据,每个像素用16位二进制数据表示颜色,其中最后5位数代表蓝色,中间6位数代表绿色,最高5位数代表红色。
虽然ILI9341的数据操作都是16位的,但它用于设置工作模式等操作的所有指令都是8位的(高8位无效)。
接下来介绍几个ILI9341的重要命令。
(1)读取ID命令0XD3,用于读取LCD控制器的ID,以判断实际连接的LCD模块型号是否正确。该命令的返回值有4个字节,如果最后2个字节是0X93,0X41,则说明当前连接的液晶显示模块是ILI9341;
(2)存储访问控制指令0X36,用于控制ILI9341执行将待显示数据写入图形缓冲存储器GRA的操作,也可以执行从GRA中读出数据的操作。为了满足不同类型图像显示所要求的特殊格式,该指令还可以设置扫描方向。
(3)列地址设置指令0X2A,该指令有4个参数,用于设置横坐标。
ILI9341支持多种显示分辨率,在本作品中,分辨率设置为240*320,显示格式为GRB565。