APP下载

嵌入式智能云签到系统的设计与实现

2018-12-20郑中华柳煌达林章达熊建辉

软件 2018年11期
关键词:校园卡显示屏上位

郑中华,柳煌达,项 凯,林章达,熊建辉



嵌入式智能云签到系统的设计与实现

郑中华,柳煌达,项 凯,林章达,熊建辉

(福建师范大学协和学院,福建 福州 350117)

根据课堂签到无纸化、智能化的要求,设计了一款嵌入式云签到系统,介绍了系统整体结构以及软硬件设计方案。系统终端由51单片机硬件平台和嵌入式软件构成,使用RC522射频模块完成用户信息的采集,经由TCP通信协议上传到上位机,上位机接收完成后,在Java 平台下对数据进行解码,获得人员信息,最后将其记录于数据库中,完成一次签到。同时,我们还基于阿里云服务器搭建了签到系统云平台,管理者可通过以太网终端,对签到系统进行远程访问。经过测试表明,云签到系统运行正常,能够顺利完成签到功能。

嵌入式系统;云平台;签到系统

0 引言

课堂教学是学校教学中的重要部分,是学生获取知识的主要途径。然而,现在高校中学生逃课的现象却非常普遍[1]。逃课不仅严重影响了学校教学工作的正常开展,也阻碍了大学生专业知识技能和综合素质能力的提高。目前,高校课堂签到方式呈现出多样化,但是大多数教师仍采用原始纸质名单点名的方式来签到,部分教师采用了电子化的签到方式,如蓝牙[2]、二维码[3]、RFID[4,5]等,这些方式各有优缺点。蓝牙技术可完成主动签到,速度快,但是对手机有要求,且需要在教室内布置信标设备作为参考节点,成本较高;二维码技术虽然成本低,使用方便,但是存在技术漏洞,难以保证签到数据的真实性;RFID技术可直接使用学生的校园卡进行签到,成本较低,但是目前大多数的RFID签到系统无法对学生签到信息进行可视化管理。基于以上分析,我们设计了一款基于51单片机的低成本嵌入式智能云签到系统,学生只需在读卡器刷卡,系统就会记录此卡的信息与刷卡时间,与数据库对比即可实现课堂签到功能。同时,我们还基于阿里云服务器搭建了签到系统云平台,管理者可通过以太网终端,对签到系统进行远程访问,便于对学生的签到信息进行管理。

1 系统整体结构

系统由嵌入式签到系统终端、上位机PC机以及应用软件和云平台三部分组成。签到系统终端由51单片机和嵌入式软件构成,使用RC522模块采集用户数据。采集完成后经过ESP8266模块采用TCP通信的方式传送至上位机PC机。上位机接收完成后,在Java 平台下对数据进行解码,获得人员信息,最后将其记录于数据库中,完成一次签到。同时,我们还基于阿里云服务器搭建了签到系统云平台,管理者可通过以太网终端,对签到系统进行远程访问。系统整体结构如图1所示。

图1 系统整体结构

2 硬件平台设计

硬件平台由主控芯片51单片机、RFID读写模块RC522、无线模块ESP8266、OLED液晶显示屏构成。其中,主控芯片是硬件的核心模块,采用的是低成本的STC12C5A60S2单片机。RFID读写模块采用的是MF RC522模块,主频为13.56MHz,和校园卡的频段一致[6]。系统采用51单片机的模拟SPI接口和RC522通讯。无线模块采用的是ESP8266,单片机采用自带的UART接口和ESP8266通讯。显示屏采用OLED,单片机采用模拟IIC接口和OLED通讯。

3 嵌入式软件设计

3.1 RC522模块软件设计

STC12C5A60S2单片机通过SPI总线通讯协议与RC522模块进行传输数据。SPI总线是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线NSS。我们使用单片机的P23引脚作为NSS功能、P22引脚作为SCK功能、P21的MOSI功能、P20功能作为MISO引脚分别与RC522的NSS、SCK、MOSI、MISO相连,然后使用软件模拟SPI的方式与RC522模块进行通信[7]。

当单片机可以与RC522模块进行正常的数据传输时,我们就可以利用单片机去控制RCC522与校园卡交换数据。单片机与M1卡交换数据的过程:

(1)首先,由单片机发送指令给RC522模块;

(2)RC522模块执行指令并将其转换为射频信号发送给校园卡;

(3)校园卡接收到来自RC522模块的指令后,按指令完成其内部的各种处理,并回送应答信号/数据给RC522模块;

(4)RC522模块接收卡回送的射频信号并将其转换为数字信号输出给单片机,单片机读取RC522模块接收到的应答/数据,即可完成与校园卡的数据交换。

整个过程使用到的函数如下:

RC522_init();

PcdRequest(Find_14443A,Card_Info_Buf);

Read_Card_Code();

PcdAnticoll();

PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen)

3.2 ESP8266模块软件设计

ESP8266模块是通过接收AT指令来开启本身所具有的各种功能,AT指令是应用于终端设备与PC应用之间的连接与通信的指令。AT即Attention。每个AT命令行中只能包含一条AT指令;对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。该模块的通讯方式为UART串口协议,STC12C5A60S2单片机本身具有两个串口功能,我们使用串口1用于下载与调试,串口2用于与ESP8266模块数据交互[8]。ESP8266模块是通过TCP/IP与我们的上位机进行数据传输,其传输流程使用到的函数如下:

Second_2_AT_Command("AT+CWMODE=3","OK", 1000);

Second_2_AT_Command("AT+CWJAP="123", "12345678"","OK",1500);

Second_2_AT_Command("AT+CIPMUX=0","OK", 2000);

Second_2_AT_Command("AT+CIPSTART="TCP", "192.168.43.76",6800","OK",1500);

Second_2_AT_Command("AT+CIPMODE=1","OK", 1000);

Second_2_AT_Command("AT+CIPSEND","OK", 1000)

3.3 OLED液晶显示软件设计

STC12C5A60S2单片机是通过IIC总线通讯协议与OLED液晶显示屏进行传输数据。I2C需要两条总线线路,一条是串行数据线SDA,一条是串行时钟线SCL。由于STC12C5A60S2单片机本身没有集成IIC的硬件功能,需要用两个引脚通过编程的方式去模拟IIC通讯时序协议。本项目用单片机的P2.3模拟串行数据线SDA,P2.4模拟串行时钟线SCL,程序代码需要根据IIC协议控制引脚与显示屏进行数据传输[9]。

用取模软件PCtolLCD2002对显示屏要显示的内容进行取模,如图2所示,将取模得到的数据再写在程序里,通过IIC协议发送给OLED显示屏,显示屏就会显示我们所取模的内容。

OLED液晶显示屏所用到的函数如下:

OLED_Init();

OLED_P14x16Ch(x,y,F16x16[i]);

OLED_CLS()

图2 取模软件对显示屏显示的内容取模

3.4 TCP通信软件设计

签到系统支持TCP协议,可采用透传的方式与PC进行通信,由于TCP需要同时在线才能通信,因此对数据的完整性比较严格。系统将电脑端上位机设置为服务端,签到系统设置为客户端。客户端向服务端发送校园卡的ID信息给服务端,服务端发送实时时间和合法非法信息给客户端。TCP通信软件设计需要使用bind()接口实现套接字绑定,以及accept()等待连接,具体函数内容如下:

struct sockaddr_in sockaddr;//创建套接字

bind(sock, (struct sockaddr *)&sockaddr, sizeof (struct sockaddr));// 套接字绑定

accept(sock, (struct sockaddr *)&clientaddr, &addr_ len);//等待连接

4 应用软件设计

4.1 应用软件UI设计

课堂签到系统的上位机采用QT设计界面,Qt是一个基于C++的跨平台应用程序和UI开发框架[10]。首先采用QT设计一个简单界面,用到了按钮类,标签类,编辑框类。上位机界面如图6所示。

4.2 应用软件数据库设计

SQLite3是一款轻型的数据库,它包含在一个相对小的C库中。它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,只需要几百K的内存就够了[11,12]。

当有校园卡刷卡时,系统会读出UID显示在显示屏上,同时将UID发送至上位机,然后上位机将UID与数据库中的用户数据进行比对,根据比对结果,来执行不同的动作,主要用到的数据库函数如下所示:

QString("select * from tbl_user where user_cardID=' %1' ;").arg(user_cardID); //数据库查询语句

QString("insertbl_uservalues('%1','%2','%3','%4');").arg(line_cardID->text(),line_Name->text(),line_stuID->text(),line_prof->text()); //数据库注册语句

QString("update tbl_user_stuID='%1';").arg(tableWidget->item(row,column)->text());//数据更新语句

QString("delete from tbl_user where user_stuID= '%1';").arg(tableWidget->item(rowIndex,1)->text());//数据库删除语句

图4是用户注册功能流程图,首先用户刷卡,系统读取卡的序列号与数据库中对比,如果注册记录刷卡时间,否则出现提示框询问是否注册,点击注册输入卡信息,比如用户姓名,学号,专业。判断学号是否重复,然后存入数据库。

图5是销户功能流程图,点击管理按钮会出现用户信息,用户点击需要删除的用户会弹出提示框,点击确认后系统根据学号查询数据库的用户并删除。

图5 销户功能

图6是修改用户信息功能流程图,点击修改按钮进入修改界面,点击需要修改的用户信息,双击输入修改后的信息,并且修改后的学号不能与数据库中学号冲突,修改成功更新数据库信息并刷新界面。

图6 修改功能

5 云平台设计

5.1 云平台网页设计

网页采用sqlite3为数据库并与上位机交互,web前端采用html、css、js,后台采用mvc架构,使用servlet,jsp技术,服务器采用阿里云服务器。后台与数据库交互使用jdbc[11,12]。

设计思路:每次访问页面将跳转到后台jdbc提取数据库内容,再传入jsp中并遍历显示在页面中。页面中提供显示功能,而对页面的增删改查则需要账户密码跳转到另外一个页面。本增删改查功能实现了登录保护,有效保护了后台数据安全。

开发工具主要包括Eclipse、JDK1.8、Tomcat8.5、mysql、navicate、浏览器。

关于实现功能主要用到以下函数、事件以及sql语句:

(1)点击事件访问页面

  • (2)查找页面数据

    Public void searchsign(HttpServletRequest request, HttpServletResponse response)

    public boolean updatesign(Sign sign)

    String sql="select * from t_sign where tch_id=?"; //查找语句

    request.setAttribute("signlist", signlist);//获取实体

    (3)跳转到访问页面

    request.getRequestDispatcher("/sign/edit_sign.jsp"). forward(request, response);//跳转函数

    ArrayListsignlist=(ArrayList)request. getAttribute(signlist");//遍历列表数据并输出

    5.2 云平台网页服务器搭建

    本网页使用阿里云服务器,并提供了个域名,方便用户进行远程访问。

    设计思路:在云服务器上面部署javaweb环境变量,并且将web转换为war包,放在tomcat的webapp文件下,并且修改service.xml文件,使main.jsp为默认主页。再将域名解析到此ip上,开放80端口使客户可直接域名访问。

    阿里云服务器配置,服务器环境变量信息如下[13]:

    (1) tomcat 8.5

    (2) jdk1.8.0_111

    (3) Mysql 5.6

    (4) Windons操作系统

    其中,当终端设备上线后,可通过38.108.82.79 ip地址,或cuc.it.com访问本网站,其访问详情如图7所示。

    图7 网站访问详情

    6 结论

    本文设计了一种基于51单片机低成本方案的嵌入式智能云签到系统,硬件平台由51单片机、RFID读写模块、无线模块、OLED液晶显示屏组成,系统通过RFID读写模块获取用户的校园卡信息,经由TCP通信协议上传到上位机,上位机接收完成后,在Java 平台下对数据进行解码,获得人员信息,最后将其记录于数据库中,完成一次签到。同时,我们还基于阿里云服务器搭建了签到系统云平台,管理者可通过以太网终端,对签到系统进行远程访问。此设备操作简单,价格低廉,可基于云平台进行签到信息管理,具有广泛的应用前景。

    [1] 邱熙. 大学生逃课的自我归因[J]. 绵阳师范学院学报, 2005(04): 76-81.

    [2] 戴志诚, 周家瑶. 基于蓝牙4.0的课堂签到系统设计与开发[J]. 计算机应用与软件, 2018, 35(02): 273-278.

    [3] 刘翔, 胡彧, 韩书. 基于二维码的会议签到系统设计[J]. 电子器件, 2014, 37(05): 1013-1016.

    [4] 张晨亮, 凌云峰, 王文, 毕涛. 基于RFID的实验签到系统设计与实现[J]. 现代电子技术, 2015, 38(01): 106-108.

    [5] 杨士卿. 基于B/S的一卡通会议签到系统设计与实现[J]. 软件, 2018, 39(05): 66-69.

    [6] 许毅, 陈建军. RFID原理与应用[M]. 北京: 清华大学出版社, 2013: 170-176.

    [7] 陈中, 丁圣均. 基于单片机的门禁控制系统设计[J]. 江苏工程职业技术学院学报, 2015, 15(04): 24-28.

    [8] 王小娟. 基于ESP8266无线传输的温湿度检测仪设计[J]. 九江职业技术学院学报, 2017(04): 22-24+32.

    [9] 刘勇. 基于MSP430F149的OLED显示系统的设计[J]. 电子技术与软件工程, 2013(21): 177-179.

    [10] 陆文周. Qt5开发及实例[M]. 电子工业出版社, 2015: 162-168.

    [11] 王志刚, 江友华. MySQL 高效编程[M]. 北京: 人民邮电出版社, 2012. 1: 89-95.

    [12] 唐敏, 宋杰. 嵌入式数据库SQLite的原理与应用[J]. 电脑知识与技术, 2008(04): 600-603.

    [13] 高世皓, 王立华, 朱吉芳, 周松江. 基于CC3200及微信公众号的云家居交互系统[J]. 电子技术应用, 2018, 44(03): 52-55.

    Design and Implementation of Embedded Intelligent Cloud Sign-in System

    ZHENG Zhong-hua, LIU Huang-da, XIANG Kai, LIN Zhang-da, XIONG Jian-hui

    (Concord University College Fujian Normal University, Fuzhou 350117, China)

    According to the requirements of paperless and intelligent classroom sign-in, an embedded cloud sign-in system was designed, and the overall structure of the system and the software and hardware design scheme were introduced. The system terminal is composed of 51 single-chip hardware platform and embedded software. The RC522 RF module is used to complete the collection of user information, and the information is uploaded to the host computer via the TCP communication protocol. After the host computer receives the data, the data is decoded in the Java platform to obtain the personnel information. Finally, record it in the database and complete a sign-in. At the same time, we also built a sign-in system cloud platform based on Alibaba Cloud Server, and the administrator can remotely access the sign-in system through the Ethernet terminal. After testing, the cloud sign-in system is running normally and can successfully complete the sign-in function.

    Embedded systems; Cloud platform; Sign-in system

    TP311

    A

    10.3969/j.issn.1003-6970.2018.11.005

    福建师范大学协和学院教育教学改革项目(JG20180108)、福建省本科高校教育教学改革研究项目(FBJG20170289)、福建省中青年教师教育科研项目(JAT170868)、福建省中青年教师教育科研项目(软件和信息技术专项) (JZ170367)

    郑中华(1985-),男,中级工程师,主要研究方向:RFID技术及智能传感器;柳煌达(1997-),男,本科生,主要研究方向:嵌入式软件;项凯(1997-),男,本科生,主要研究方向:嵌入式软件;林章达(1997-),男,本科生,主要研究方向:嵌入式软件;熊建辉(1982-),男,系统分析师、讲师,主要研究方向:物联网技术。

    郑中华,柳煌达,项凯,等. 嵌入式智能云签到系统的设计与实现[J]. 软件,2018,39(11):21-25

    猜你喜欢

    校园卡显示屏上位
    一块布就是一个显示屏?
    移动支付在校园卡自助补换卡业务中的实现——以潍坊学院为例
    苍蝇迷恋显示屏
    特斯拉 风云之老阿姨上位
    “三扶”齐上位 决战必打赢
    基于ZigBee和VC上位机的教室智能监测管理系统
    未来五年LED显示屏出货将保持16%增长
    以新思路促推现代农业上位
    基于AT89S52的手势可控LED滚动显示屏设计
    浅谈高校校园卡财务管理存在的问题与对策