鄭中華,柳煌達,項 凱,林章達,熊建輝
?
嵌入式智能云簽到系統(tǒng)的設計與實現(xiàn)
鄭中華,柳煌達,項 凱,林章達,熊建輝
(福建師范大學協(xié)和學院,福建 福州 350117)
根據(jù)課堂簽到無紙化、智能化的要求,設計了一款嵌入式云簽到系統(tǒng),介紹了系統(tǒng)整體結構以及軟硬件設計方案。系統(tǒng)終端由51單片機硬件平臺和嵌入式軟件構成,使用RC522射頻模塊完成用戶信息的采集,經(jīng)由TCP通信協(xié)議上傳到上位機,上位機接收完成后,在Java 平臺下對數(shù)據(jù)進行解碼,獲得人員信息,最后將其記錄于數(shù)據(jù)庫中,完成一次簽到。同時,我們還基于阿里云服務器搭建了簽到系統(tǒng)云平臺,管理者可通過以太網(wǎng)終端,對簽到系統(tǒng)進行遠程訪問。經(jīng)過測試表明,云簽到系統(tǒng)運行正常,能夠順利完成簽到功能。
嵌入式系統(tǒng);云平臺;簽到系統(tǒng)
課堂教學是學校教學中的重要部分,是學生獲取知識的主要途徑。然而,現(xiàn)在高校中學生逃課的現(xiàn)象卻非常普遍[1]。逃課不僅嚴重影響了學校教學工作的正常開展,也阻礙了大學生專業(yè)知識技能和綜合素質(zhì)能力的提高。目前,高校課堂簽到方式呈現(xiàn)出多樣化,但是大多數(shù)教師仍采用原始紙質(zhì)名單點名的方式來簽到,部分教師采用了電子化的簽到方式,如藍牙[2]、二維碼[3]、RFID[4,5]等,這些方式各有優(yōu)缺點。藍牙技術可完成主動簽到,速度快,但是對手機有要求,且需要在教室內(nèi)布置信標設備作為參考節(jié)點,成本較高;二維碼技術雖然成本低,使用方便,但是存在技術漏洞,難以保證簽到數(shù)據(jù)的真實性;RFID技術可直接使用學生的校園卡進行簽到,成本較低,但是目前大多數(shù)的RFID簽到系統(tǒng)無法對學生簽到信息進行可視化管理?;谝陨戏治?,我們設計了一款基于51單片機的低成本嵌入式智能云簽到系統(tǒng),學生只需在讀卡器刷卡,系統(tǒng)就會記錄此卡的信息與刷卡時間,與數(shù)據(jù)庫對比即可實現(xiàn)課堂簽到功能。同時,我們還基于阿里云服務器搭建了簽到系統(tǒng)云平臺,管理者可通過以太網(wǎng)終端,對簽到系統(tǒng)進行遠程訪問,便于對學生的簽到信息進行管理。
系統(tǒng)由嵌入式簽到系統(tǒng)終端、上位機PC機以及應用軟件和云平臺三部分組成。簽到系統(tǒng)終端由51單片機和嵌入式軟件構成,使用RC522模塊采集用戶數(shù)據(jù)。采集完成后經(jīng)過ESP8266模塊采用TCP通信的方式傳送至上位機PC機。上位機接收完成后,在Java 平臺下對數(shù)據(jù)進行解碼,獲得人員信息,最后將其記錄于數(shù)據(jù)庫中,完成一次簽到。同時,我們還基于阿里云服務器搭建了簽到系統(tǒng)云平臺,管理者可通過以太網(wǎng)終端,對簽到系統(tǒng)進行遠程訪問。系統(tǒng)整體結構如圖1所示。
圖1 系統(tǒng)整體結構
硬件平臺由主控芯片51單片機、RFID讀寫模塊RC522、無線模塊ESP8266、OLED液晶顯示屏構成。其中,主控芯片是硬件的核心模塊,采用的是低成本的STC12C5A60S2單片機。RFID讀寫模塊采用的是MF RC522模塊,主頻為13.56MHz,和校園卡的頻段一致[6]。系統(tǒng)采用51單片機的模擬SPI接口和RC522通訊。無線模塊采用的是ESP8266,單片機采用自帶的UART接口和ESP8266通訊。顯示屏采用OLED,單片機采用模擬IIC接口和OLED通訊。
STC12C5A60S2單片機通過SPI總線通訊協(xié)議與RC522模塊進行傳輸數(shù)據(jù)。SPI總線是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息。該接口一般使用4條線:串行時鐘線(SCLK)、主機輸入/從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇線NSS。我們使用單片機的P23引腳作為NSS功能、P22引腳作為SCK功能、P21的MOSI功能、P20功能作為MISO引腳分別與RC522的NSS、SCK、MOSI、MISO相連,然后使用軟件模擬SPI的方式與RC522模塊進行通信[7]。
當單片機可以與RC522模塊進行正常的數(shù)據(jù)傳輸時,我們就可以利用單片機去控制RCC522與校園卡交換數(shù)據(jù)。單片機與M1卡交換數(shù)據(jù)的過程:
(1)首先,由單片機發(fā)送指令給RC522模塊;
(2)RC522模塊執(zhí)行指令并將其轉換為射頻信號發(fā)送給校園卡;
(3)校園卡接收到來自RC522模塊的指令后,按指令完成其內(nèi)部的各種處理,并回送應答信號/數(shù)據(jù)給RC522模塊;
(4)RC522模塊接收卡回送的射頻信號并將其轉換為數(shù)字信號輸出給單片機,單片機讀取RC522模塊接收到的應答/數(shù)據(jù),即可完成與校園卡的數(shù)據(jù)交換。
整個過程使用到的函數(shù)如下:
RC522_init();
PcdRequest(Find_14443A,Card_Info_Buf);
Read_Card_Code();
PcdAnticoll();
PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen)
ESP8266模塊是通過接收AT指令來開啟本身所具有的各種功能,AT指令是應用于終端設備與PC應用之間的連接與通信的指令。AT即Attention。每個AT命令行中只能包含一條AT指令;對于AT指令的發(fā)送,除AT兩個字符外,最多可以接收1056個字符的長度(包括最后的空字符)。該模塊的通訊方式為UART串口協(xié)議,STC12C5A60S2單片機本身具有兩個串口功能,我們使用串口1用于下載與調(diào)試,串口2用于與ESP8266模塊數(shù)據(jù)交互[8]。ESP8266模塊是通過TCP/IP與我們的上位機進行數(shù)據(jù)傳輸,其傳輸流程使用到的函數(shù)如下:
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)
STC12C5A60S2單片機是通過IIC總線通訊協(xié)議與OLED液晶顯示屏進行傳輸數(shù)據(jù)。I2C需要兩條總線線路,一條是串行數(shù)據(jù)線SDA,一條是串行時鐘線SCL。由于STC12C5A60S2單片機本身沒有集成IIC的硬件功能,需要用兩個引腳通過編程的方式去模擬IIC通訊時序協(xié)議。本項目用單片機的P2.3模擬串行數(shù)據(jù)線SDA,P2.4模擬串行時鐘線SCL,程序代碼需要根據(jù)IIC協(xié)議控制引腳與顯示屏進行數(shù)據(jù)傳輸[9]。
用取模軟件PCtolLCD2002對顯示屏要顯示的內(nèi)容進行取模,如圖2所示,將取模得到的數(shù)據(jù)再寫在程序里,通過IIC協(xié)議發(fā)送給OLED顯示屏,顯示屏就會顯示我們所取模的內(nèi)容。
OLED液晶顯示屏所用到的函數(shù)如下:
OLED_Init();
OLED_P14x16Ch(x,y,F16x16[i]);
OLED_CLS()
圖2 取模軟件對顯示屏顯示的內(nèi)容取模
簽到系統(tǒng)支持TCP協(xié)議,可采用透傳的方式與PC進行通信,由于TCP需要同時在線才能通信,因此對數(shù)據(jù)的完整性比較嚴格。系統(tǒng)將電腦端上位機設置為服務端,簽到系統(tǒng)設置為客戶端。客戶端向服務端發(fā)送校園卡的ID信息給服務端,服務端發(fā)送實時時間和合法非法信息給客戶端。TCP通信軟件設計需要使用bind()接口實現(xiàn)套接字綁定,以及accept()等待連接,具體函數(shù)內(nèi)容如下:
struct sockaddr_in sockaddr;//創(chuàng)建套接字
bind(sock, (struct sockaddr *)&sockaddr, sizeof (struct sockaddr));// 套接字綁定
accept(sock, (struct sockaddr *)&clientaddr, &addr_ len);//等待連接
課堂簽到系統(tǒng)的上位機采用QT設計界面,Qt是一個基于C++的跨平臺應用程序和UI開發(fā)框架[10]。首先采用QT設計一個簡單界面,用到了按鈕類,標簽類,編輯框類。上位機界面如圖6所示。
SQLite3是一款輕型的數(shù)據(jù)庫,它包含在一個相對小的C庫中。它的設計目標是嵌入式的,目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設備中,只需要幾百K的內(nèi)存就夠了[11,12]。
當有校園卡刷卡時,系統(tǒng)會讀出UID顯示在顯示屏上,同時將UID發(fā)送至上位機,然后上位機將UID與數(shù)據(jù)庫中的用戶數(shù)據(jù)進行比對,根據(jù)比對結果,來執(zhí)行不同的動作,主要用到的數(shù)據(jù)庫函數(shù)如下所示:
QString("select * from tbl_user where user_cardID=' %1' ;").arg(user_cardID); //數(shù)據(jù)庫查詢語句
QString("insertbl_uservalues('%1','%2','%3','%4');").arg(line_cardID->text(),line_Name->text(),line_stuID->text(),line_prof->text()); //數(shù)據(jù)庫注冊語句
QString("update tbl_user_stuID='%1';").arg(tableWidget->item(row,column)->text());//數(shù)據(jù)更新語句
QString("delete from tbl_user where user_stuID= '%1';").arg(tableWidget->item(rowIndex,1)->text());//數(shù)據(jù)庫刪除語句
圖4是用戶注冊功能流程圖,首先用戶刷卡,系統(tǒng)讀取卡的序列號與數(shù)據(jù)庫中對比,如果注冊記錄刷卡時間,否則出現(xiàn)提示框詢問是否注冊,點擊注冊輸入卡信息,比如用戶姓名,學號,專業(yè)。判斷學號是否重復,然后存入數(shù)據(jù)庫。
圖5是銷戶功能流程圖,點擊管理按鈕會出現(xiàn)用戶信息,用戶點擊需要刪除的用戶會彈出提示框,點擊確認后系統(tǒng)根據(jù)學號查詢數(shù)據(jù)庫的用戶并刪除。
圖5 銷戶功能
圖6是修改用戶信息功能流程圖,點擊修改按鈕進入修改界面,點擊需要修改的用戶信息,雙擊輸入修改后的信息,并且修改后的學號不能與數(shù)據(jù)庫中學號沖突,修改成功更新數(shù)據(jù)庫信息并刷新界面。
圖6 修改功能
網(wǎng)頁采用sqlite3為數(shù)據(jù)庫并與上位機交互,web前端采用html、css、js,后臺采用mvc架構,使用servlet,jsp技術,服務器采用阿里云服務器。后臺與數(shù)據(jù)庫交互使用jdbc[11,12]。
設計思路:每次訪問頁面將跳轉到后臺jdbc提取數(shù)據(jù)庫內(nèi)容,再傳入jsp中并遍歷顯示在頁面中。頁面中提供顯示功能,而對頁面的增刪改查則需要賬戶密碼跳轉到另外一個頁面。本增刪改查功能實現(xiàn)了登錄保護,有效保護了后臺數(shù)據(jù)安全。
開發(fā)工具主要包括Eclipse、JDK1.8、Tomcat8.5、mysql、navicate、瀏覽器。
關于實現(xiàn)功能主要用到以下函數(shù)、事件以及sql語句:
(1)點擊事件訪問頁面
(2)查找頁面數(shù)據(jù)
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);//跳轉函數(shù)
ArrayList
本網(wǎng)頁使用阿里云服務器,并提供了個域名,方便用戶進行遠程訪問。
設計思路:在云服務器上面部署javaweb環(huán)境變量,并且將web轉換為war包,放在tomcat的webapp文件下,并且修改service.xml文件,使main.jsp為默認主頁。再將域名解析到此ip上,開放80端口使客戶可直接域名訪問。
阿里云服務器配置,服務器環(huán)境變量信息如下[13]:
(1) tomcat 8.5
(2) jdk1.8.0_111
(3) Mysql 5.6
(4) Windons操作系統(tǒng)
其中,當終端設備上線后,可通過38.108.82.79 ip地址,或cuc.it.com訪問本網(wǎng)站,其訪問詳情如圖7所示。
圖7 網(wǎng)站訪問詳情
本文設計了一種基于51單片機低成本方案的嵌入式智能云簽到系統(tǒng),硬件平臺由51單片機、RFID讀寫模塊、無線模塊、OLED液晶顯示屏組成,系統(tǒng)通過RFID讀寫模塊獲取用戶的校園卡信息,經(jīng)由TCP通信協(xié)議上傳到上位機,上位機接收完成后,在Java 平臺下對數(shù)據(jù)進行解碼,獲得人員信息,最后將其記錄于數(shù)據(jù)庫中,完成一次簽到。同時,我們還基于阿里云服務器搭建了簽到系統(tǒng)云平臺,管理者可通過以太網(wǎng)終端,對簽到系統(tǒng)進行遠程訪問。此設備操作簡單,價格低廉,可基于云平臺進行簽到信息管理,具有廣泛的應用前景。
[1] 邱熙. 大學生逃課的自我歸因[J]. 綿陽師范學院學報, 2005(04): 76-81.
[2] 戴志誠, 周家瑤. 基于藍牙4.0的課堂簽到系統(tǒng)設計與開發(fā)[J]. 計算機應用與軟件, 2018, 35(02): 273-278.
[3] 劉翔, 胡彧, 韓書. 基于二維碼的會議簽到系統(tǒng)設計[J]. 電子器件, 2014, 37(05): 1013-1016.
[4] 張晨亮, 凌云峰, 王文, 畢濤. 基于RFID的實驗簽到系統(tǒng)設計與實現(xiàn)[J]. 現(xiàn)代電子技術, 2015, 38(01): 106-108.
[5] 楊士卿. 基于B/S的一卡通會議簽到系統(tǒng)設計與實現(xiàn)[J]. 軟件, 2018, 39(05): 66-69.
[6] 許毅, 陳建軍. RFID原理與應用[M]. 北京: 清華大學出版社, 2013: 170-176.
[7] 陳中, 丁圣均. 基于單片機的門禁控制系統(tǒng)設計[J]. 江蘇工程職業(yè)技術學院學報, 2015, 15(04): 24-28.
[8] 王小娟. 基于ESP8266無線傳輸?shù)臏貪穸葯z測儀設計[J]. 九江職業(yè)技術學院學報, 2017(04): 22-24+32.
[9] 劉勇. 基于MSP430F149的OLED顯示系統(tǒng)的設計[J]. 電子技術與軟件工程, 2013(21): 177-179.
[10] 陸文周. Qt5開發(fā)及實例[M]. 電子工業(yè)出版社, 2015: 162-168.
[11] 王志剛, 江友華. MySQL 高效編程[M]. 北京: 人民郵電出版社, 2012. 1: 89-95.
[12] 唐敏, 宋杰. 嵌入式數(shù)據(jù)庫SQLite的原理與應用[J]. 電腦知識與技術, 2008(04): 600-603.
[13] 高世皓, 王立華, 朱吉芳, 周松江. 基于CC3200及微信公眾號的云家居交互系統(tǒng)[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
福建師范大學協(xié)和學院教育教學改革項目(JG20180108)、福建省本科高校教育教學改革研究項目(FBJG20170289)、福建省中青年教師教育科研項目(JAT170868)、福建省中青年教師教育科研項目(軟件和信息技術專項) (JZ170367)
鄭中華(1985-),男,中級工程師,主要研究方向:RFID技術及智能傳感器;柳煌達(1997-),男,本科生,主要研究方向:嵌入式軟件;項凱(1997-),男,本科生,主要研究方向:嵌入式軟件;林章達(1997-),男,本科生,主要研究方向:嵌入式軟件;熊建輝(1982-),男,系統(tǒng)分析師、講師,主要研究方向:物聯(lián)網(wǎng)技術。
鄭中華,柳煌達,項凱,等. 嵌入式智能云簽到系統(tǒng)的設計與實現(xiàn)[J]. 軟件,2018,39(11):21-25