999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于二維碼的會議簽到系統設計

2014-09-06 10:50:37翔,胡彧,韓
電子器件 2014年5期

劉 翔,胡 彧,韓 書

(太原理工大學測控技術研究所,太原 030024)

?

基于二維碼的會議簽到系統設計

劉翔,胡彧*,韓書

(太原理工大學測控技術研究所,太原 030024)

摘要:針對會議簽到快速化、節約化要求,提出了一種基于二維碼的簽到系統,介紹了系統整體結構以及軟硬件設計方案。系統終端由ARM11硬件平臺和嵌入式Linux系統構成,使用USB攝像頭完成二維碼掃描,經由以太網上傳至服務器,最后在java平臺實現二維圖像解碼并記錄。經過測試表明,系統運行正常,能夠順利完成簽到功能。

關鍵詞:嵌入式Linux;會議簽到系統;二維碼;MySQL

近些年,我國改革開放不斷深化,經濟、科技、文化的交流變得越來越密切,各種大型會議相繼召開,與會人數屢創新高。會議入口排隊人數眾多,容易造成擁擠、踩踏等惡性事故。會議簽到的快速化、節約化要求越來越得到會議組織者的重視。

目前的會議簽到系統大多使用RFID卡、人臉、指紋作為人員信息的載體。對于大型會議,使用RFID卡將會產生巨大的制作成本,而使用人臉、指紋的系統又必須提前采集相關信息,不易實施。

本文介紹了一種會議簽到系統。與會人員只需自行下載會議核發的二維碼通行證到自己的手機上或者打印紙質版本,將其放置于信息采集處,系統便可獲人員信息,完成簽到。

1 系統整體結構

系統由嵌入式圖像采集終端和上位機PC機兩部分組成。圖像采集終端由ARM11處理器S3C6410芯片和嵌入式linux系統構成,使用USB攝像頭捕捉二維碼圖像。采集完成后經過以太網傳送至上位機PC機。上位機接收完成后,在Java平臺下對圖像進行解碼,獲得人員信息,最后將其記錄于數據庫中,完成一次簽到。同時,上位機的圖形界面可以對簽到信息進行查詢、打印等。系統整體結構如圖1所示。

圖1 系統整體結構圖

2 圖像采集終端硬件設計

系統終端選用友善之臂公司的TINY6410開發板,它的CPU為三星公司的S3C6410芯片,它是基于ARM1176JZF-S核設計的,主頻為533 MHz,最高可達到667 MHz。配有256 M的RAM和1G的NAND FLASH。接口資源包括DM9000網卡、USB接口等[1]。

USB攝像頭選用中星微公司生產的ZC301攝像頭。該款攝像頭輸出圖像格式為JPEG,并且linux-2.6.36等高版本的內核已經包含了該款攝像頭驅動,所以可以直接使用,無須自己編寫驅動程序,大大縮短了開發周期。

3 圖像采集終端軟件設計

3.1軟件平臺搭建

Linux是一種開源操作系統,具有內核小、效率高、可裁剪等特點[2]。在嵌入式Linux下進行軟件開發,首先要在開發板上移植Linux系統。目前有關Linux系統移植方面的資料已經很多,本文不再贅述,只簡要介紹其基本步驟:(1)在宿主機建立交叉編譯環境。(2)下載linux內核源代碼,本系統選取的內核版本為2.6.38。(3)配置并編譯內核。(4)利用busybox制作根文件系統。(5)利用uboot下載內核和根文件系統進入開發板中[3]。

3.2圖像采集模塊設計

linux系統在2.1內核版本之后,視頻采集的主流方法是使用V4L(Video for Linux)應用程序通用接口實現的[4]。經過不斷地發展和改進,V4L的第2代API:V4L2誕生了,并且在2.5版本之后得到了廣泛應用[5]。V4L2采用流水線的方式,使用ioctl()函數完成對攝像頭的各種操作,編程簡單,應用廣泛,流程圖如圖2所示。

圖2 圖像采集流程圖

3.2.1打開視頻設備

在linux系統中,對設備的訪問是以文件的形式進行的。在/dev目錄下包含了系統所有的外部設備文件。所以對設備訪問的第1步就是需要使用open()函數打開其對應的設備文件。在本系統中,USB攝像頭對應的設備文件為/dev/video2。

3.2.2視頻設備初始化

打開視頻設備之后,需要首先對其進行初始化。包括查詢攝像頭驅動功能、設置圖像參數等。同時,為了加快圖像數據的傳輸,還需要進行內存映射。

(1)查詢攝像頭驅動功能

使用帶VIDIOC_QUERYCAP參數的ioctl()函數可以獲取驅動程序名稱、總線類型、設備能力等信息。

(2)設置圖像參數

使用帶VIDIOC_S_FMT參數的ioctl()函數設置攝像頭輸出數據格式,圖像長度、寬度、亮度、對比度等,在實際應用中,可以根據實際環境進行相應設置,同時也可以設置為默認格式。

(3)內存映射

V4L2完成圖像采集之后,圖像數據所在的緩沖區位于內核空間,用戶無法直接訪問,使用內存映射的方法可以使應用程序快速獲取圖像信息,加快圖像采集效率。首先應用程序向驅動申請分配緩沖區。分配完成之后,應用程序要對緩沖區所在位置以及大小進行查詢。最后,使用mmap()函數將這塊內存映射到用戶空間。使用到的函數如下所示:

ioctl(fd,VIDIOC_REQBUFS,&req)

ioctl(fd,VIDIOC_QUERYBUF,&buf)

mmap(void *start,size_t length,int prot,int flags,int fd,off_t offset)

3.2.3圖像采集

開始圖像采集,需要使用帶VIDOIOC_QBUF參數的ioctl()函數,將上一步申請的緩沖區加入視頻采集隊列,然后使用帶VIDIOC_STREAMON參數的ioctl()函數開啟攝像頭,這樣攝像頭驅動程序就會把一幀圖像數據放入緩沖區中,之后再使用帶參數VIDIOC_DQBUF的ioct()l函數將緩沖區出列,便可獲得圖像數據。

3.2.4關閉攝像頭

圖像采集完畢,需要使用munmap()函數解除內存映射,之后使用帶VIDIOC_STREAMOFF參數的ioctl()函數關閉攝像頭。

3.3圖像數據發送模塊設計

本系統的網絡模型為C/S結構,即客戶端/服務器結構。圖像采集終端作為客戶端,上位機作為服務器。終端完成圖像采集之后,向上位機提出上傳圖像申請并準備發送數據,上位機接受請求之后開始接受數據,最終保存為.jpg文件。

套接字API起源于1983年發行的4.2BSD操作系統[6]。套接字(Socket)是網絡通信的基本操作單元,又被稱為操作端口,用于描述IP地址和端口,是一個通信鏈的句柄。應用程序可以通過套接字向網絡發出請求或者應答網絡請求[7]。

套接字一共有3種類型,分別為:流式套接字、數據報式套接字、原始式套接字。其中流式套接字是一種面向連接的、可靠的、基于字節流的運輸層通信協議。為了保證圖像傳輸的可靠性,本系統采用流式套接字來傳輸圖像數據。流程圖如圖3所示。

(1)創建套接字:使用帶SOCK_STREAM參數的socket()函數創建一個基于TCP/IP協議的流式套接字。

(2)根據上位機的IP地址和端口號,為結構體(struct sockaddr_in)賦值。

(3)使用connect()函數向上位機請求連接。

(4)連接成功后,使用send()函數上傳圖像數據。

(5)發送完畢,使用close()函數關閉套接字。傳輸完成。

圖3 圖像發送流程圖

4 上位機軟件設計

4.1軟件平臺

java是一種面向對象的編程語言,可移植性比較高,一次編寫處處執行。在本系統中,java對于socket編程已經封裝了socket類,可以直接使用,編程十分方便。在二維碼解碼方面,使用google公司推出的ZXing工具可以很方便的對二維碼進行解碼。在訪問數據庫方面,使用JAVA提供的JDBC可以很容易的向各種關系數據庫發送SQL語句,使訪問數據庫變得十分簡便。所以上位機選用java平臺進行開發。

4.2圖像數據接收模塊設計

java基于對象的編程思想使得java平臺下的socket編程已經變得十分容易。服務器端程序流程圖如圖4所示。

(1)創建套接字并綁定至相關端口。java的java.net包已經提供了ServerSocket類表示服務器端套接字。使用構造函數即可創建套接字,并完成綁定。

(2)初始化完成之后,服務器程序開始偵聽綁定的端口,等待客戶端連接請求。

(3)服務器接受客戶端的連接以后,打開輸入流,程序從輸入流中讀取數據。

(4)打開文件的輸出流,將數據寫入文件中。

(5)操作完成之后,關閉連接。

圖4 圖像接收流程圖

4.3二維碼解碼模塊的實現

ZXing是google公司基于java平臺開發的一款開源一維/二維碼圖像編碼解碼庫。支持的條碼格式有:39碼、93碼、128碼、QR碼等。

ZXing源代碼可以很方便的從其官網下載,其中包含了核心包/core和對于不同平臺的接口,如/cpp、/csharp、/android、/symbian、/iphone等。

只需要將其中的核心包導入Eclipse工程中,使用MultiFormatReader類中的decode方法即可完成對二維碼圖像的解碼,獲得對應的字符串信息即人員信息。

4.4數據庫訪問模塊程序設計

MySQL數據庫是由瑞典MySQL AB公司開發的一款關系型數據庫。MySQL具有體積小、性能高、支持多種平臺的特點,是最流行的開放源碼的關系數據庫軟件[8]。

JDBC是java系統提供給用戶在java程序中操作數據庫的java API。它由一組用Java語言編寫的類和接口組成,并為數據庫廠商和第3方中間件廠商實現與數據庫連接提供了一套標準方法[9]。使用JDBC可以提高程序的通用性,針對不同種類的關系型數據庫可以使用一套API,大大減少了編程工作量。

JDBC訪問數據庫的流程圖如圖5所示。

(1)連接數據庫

訪問數據庫之前,需要下載MySQL提供的JDBC驅動包,并將其導入eclipse工程中,注冊該驅動程序之后就可以對上位機上的MySQL數據庫進行訪問。代碼如下所示:

Class.forName("com.mysql.jdbc.Driver");

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");

stmt=con.createStatement();

圖5 JDBC訪問數據庫流程圖

(2)發送SQL語句,執行添加命令

使用Statement中的executeUpdate(str)方法執行str代表的SQL語句。添加信息進入數據庫。

(3)處理返回結果。

上面語句執行完成,將會返回添加結果。如果為1則添加成功,為0則添加失敗。

4.5上位機界面設計

為了使工作人員更加方便的查詢數據庫中記錄信息,本系統使用Java Swing工具包設計了可視化圖形界面程序,方便工作人員查詢、打印。如圖6所示。

5 小結

本文設計了一種使用二維碼識別技術,基于嵌入式linux系統開發的會議簽到系統。使用V4L2應用程序編程接口完成圖像采集,經過網絡傳輸上傳至上位機,上位機使用ZXing開發工具完成圖像的解

碼之后記錄于數據庫。整個系統穩定可靠,價格低廉,圖形界面十分友好,具有廣泛的地應用前景。

圖6 上位機圖形界面

參考文獻:

[1]Samsung.User’s manual S3C6410X RISC Microprocessor[S].2008.

[2]李軍,張華春.U2Boot及Linux216在S3C2440A平臺上的移植方法[J].電子器件,2008,31(5):1667-1670.

[3]莊嚴,王光宇,楊海峰.嵌入式Linux系統工程師實訓教程[M].北京:清華大學出版社,2012:159-162.

[4]王建新,張凱,王秀.基于S3C2440的視頻采集及傳輸系統設計[J].電子器件,2013,36(3):367-370.

[5]白長清,陳沛.嵌入式終端基于Linux V4L2的圖像采集系統[J].科技資訊,2012(2):22-23.

[6]Richard Stevens W,Stephen A Rago.UNIX環境高級編程[M].尤晉元,張亞英,戚正偉,譯.北京:人民郵電出版社,2006:12-17.

[7]劉發久.java程序設計[M].大連:大連理工大學出版社,2009.8:234-236.

[8]王志剛,江友華.MySQL高效編程[M].北京:人民郵電出版社,2012.1:89-95.

[9]周怡.Java程序設計案例教程[M].北京:清華大學出版社,2010.7:212-214.

劉翔(1990-),男,漢族,山西長治人,碩士研究生,主要研究方向為嵌入式系統及應用,xiang310.90@qq.com;

胡彧(1968-),女,漢族,山東歷城,博士,碩士生導師,研究方向為智能化信息檢測與處理、無線傳感器網絡、物聯網技術。學術兼職:中國計量測試學會理事、中國儀器儀表學會傳感器分會理事、中國水利學會水利量測技術專業委員會副主任委員、中國計算機學會高級會員、山西省青年科技工作者協會理事,huyutyut@163.com;

韓書1988-),男,漢族,湖北宜昌人,碩士研究生,主要研究方向為嵌入式系統及應用,188542054@qq.com。

DesignofMeetingSign-inSystemBasedonTwo-DimensionalBarCode

LIUXiang,HUYu*,HANShu

(Institute of Measuring and Controlling Technology,Taiyuan University of Technology,Taiyuan 030024,china)

Abstract:In order to reach the requirement of quick sign,the meeting sign-in system which is based on two-dimensional code is presented.The whole structure of system and design of hardware and software are shown.The terminal is constituted by ARM11 chip and Linux operating system controlling USB camera to scan the two-dimensional code.Then it uploads the image to server through Ethernet.At last,the image is decoded and record at the platform of Java.The tests show that the whole system runs very well and can reach the requirement of quick sign.

Key words:embedded linux;meeting sign-in system;two-dimensional bar code;MySQL

doi:EEACC:6120B10.3969/j.issn.1005-9490.2014.05.046

中圖分類號:TP274

文獻標識碼:A

文章編號:1005-9490(2014)05-1013-04

收稿日期:2013-09-17修改日期:2013-10-10

主站蜘蛛池模板: 国产尤物视频网址导航| 国产91导航| 久久香蕉国产线看精品| 极品av一区二区| 99久久精品国产综合婷婷| 欧洲日本亚洲中文字幕| 亚洲人成成无码网WWW| 国产裸舞福利在线视频合集| 国产精品护士| 草草线在成年免费视频2| 日本伊人色综合网| 天天综合网色中文字幕| 露脸一二三区国语对白| 香蕉国产精品视频| 青青草91视频| 激情无码字幕综合| 国产精品lululu在线观看| 免费在线a视频| 欧美成人一区午夜福利在线| 91po国产在线精品免费观看| 国产日韩丝袜一二三区| 国产精品视频导航| 人人爱天天做夜夜爽| 亚洲无码视频一区二区三区| 亚洲综合色婷婷中文字幕| 亚洲精品波多野结衣| 熟女成人国产精品视频| 亚洲性影院| 免费一级毛片在线观看| 亚洲第一黄片大全| 日本午夜三级| 在线亚洲小视频| 视频二区中文无码| 久久福利片| 九九久久精品国产av片囯产区| 露脸真实国语乱在线观看| 亚洲欧美在线看片AI| 67194在线午夜亚洲| 久久免费精品琪琪| 国产特级毛片aaaaaaa高清| 亚洲第一区在线| 日本不卡在线播放| 波多野结衣在线一区二区| 亚洲成A人V欧美综合天堂| 99热亚洲精品6码| 专干老肥熟女视频网站| 亚洲国产在一区二区三区| 亚洲天堂网在线观看视频| 在线精品视频成人网| 超薄丝袜足j国产在线视频| 91久久性奴调教国产免费| 欧美性猛交一区二区三区| 色播五月婷婷| 国产激爽大片在线播放| 亚洲精品国产日韩无码AV永久免费网| 综合网天天| 第一区免费在线观看| 91免费观看视频| 日韩福利视频导航| 114级毛片免费观看| 97精品国产高清久久久久蜜芽| 亚洲国产91人成在线| 久久精品中文字幕免费| 激情五月婷婷综合网| 韩日午夜在线资源一区二区| 欧美日韩国产系列在线观看| 欧美另类第一页| 99热这里只有精品免费| 91无码人妻精品一区二区蜜桃| 亚洲第一区在线| 999精品在线视频| 国产精品刺激对白在线| 国产人妖视频一区在线观看| 色婷婷电影网| 亚洲一区免费看| 免费人成在线观看成人片| 天天视频在线91频| 国产精品分类视频分类一区| 国产欧美日韩在线在线不卡视频| 日本一区中文字幕最新在线| 毛片免费视频| 国产91精品最新在线播放|