李玉 楊永剛
摘? ?要:為解決傳統(tǒng)的條碼識(shí)別器便攜性差,且不支持QR二維碼識(shí)別等問(wèn)題,文章設(shè)計(jì)了基于Linux的無(wú)線物聯(lián)QR二維碼物品清點(diǎn)器?;贚inux內(nèi)核制作嵌入式操作系統(tǒng),移植開(kāi)源的ZBar二維碼識(shí)別庫(kù)作為清點(diǎn)器下的二維碼識(shí)別庫(kù),并采用SSH安全傳輸協(xié)議,以實(shí)現(xiàn)清點(diǎn)器與服務(wù)器之間數(shù)據(jù)能夠安全、穩(wěn)定地同步傳輸。結(jié)果表明,清點(diǎn)器可以實(shí)時(shí)、高效地識(shí)別二維碼,識(shí)別結(jié)果可以清楚地展示在軟件界面上。該清點(diǎn)器掃碼效果好,實(shí)用性強(qiáng),可廣泛應(yīng)用于物資清點(diǎn)等諸多物聯(lián)網(wǎng)場(chǎng)合。
關(guān)鍵詞:二維碼;Linux內(nèi)核;嵌入式;安全傳輸
市面上常見(jiàn)的條形碼分為UPC條形碼(一維條形碼)和QR碼(二維條形碼),一維條形碼可嵌入的信息量較少,與之相比,二維碼在橫向與縱向兩維度上均可嵌入信息[1],使信息容量大幅提升。此外,二維碼的編碼范圍更寬廣、信息傳輸?shù)目煽啃愿摺⑿畔⒈C苄暂^好[2],而普通的條形碼不具備這些特性。
市面上常見(jiàn)的條形碼識(shí)別器對(duì)二維碼的識(shí)別還存在諸多問(wèn)題,比如不兼容二維碼的識(shí)別程序,使得其不支持二維碼識(shí)別;需要借助主機(jī)端才可以完成掃碼識(shí)別及結(jié)果顯示等功能,其本身只是一個(gè)具有掃描功能的終端;識(shí)別系統(tǒng)整體較為龐大,便攜性及移動(dòng)性較差等。二維碼技術(shù)發(fā)展所帶來(lái)的多樣化需求亟需新的清點(diǎn)器設(shè)備來(lái)滿足。
1? ? 總體設(shè)計(jì)
1.1? 總體論述
本文針對(duì)目前使用廣泛且性能穩(wěn)定的QR二維碼,提出基于Linux的無(wú)線物聯(lián)QR二維碼物品清點(diǎn)器,并開(kāi)發(fā)了一套支持QR二維碼數(shù)據(jù)識(shí)別,數(shù)據(jù)同步及數(shù)據(jù)顯示的嵌入式二維碼掃描系統(tǒng)。本文重點(diǎn)研究了該無(wú)線物聯(lián)QR二維碼物品清點(diǎn)器的設(shè)計(jì)及實(shí)現(xiàn)。
1.2? 系統(tǒng)整體架構(gòu)
該系統(tǒng)以Cubieboard2作為硬件開(kāi)發(fā)平臺(tái),并在其基礎(chǔ)上擴(kuò)展了500萬(wàn)像素高清攝像頭模塊來(lái)保證掃描二維碼時(shí)的精確定位與準(zhǔn)確識(shí)別。同時(shí),擴(kuò)展3.5寸電容屏來(lái)顯示掃描結(jié)果,在Cubieboard硬件平臺(tái)上增加了無(wú)線WiFi模塊以實(shí)現(xiàn)數(shù)據(jù)的穩(wěn)定、便利傳輸,進(jìn)而使本文所設(shè)計(jì)的嵌入式二維碼識(shí)別器成為便攜式的手持設(shè)備。系統(tǒng)整體架構(gòu)如圖1所示。
2? ? 關(guān)鍵技術(shù)
2.1? 嵌入式Linux系統(tǒng)制作
本文中嵌入式Linux系統(tǒng)的制作是在gcc編譯環(huán)境下,采用GNU編譯器套件,編譯過(guò)程中采用依賴于Makefile的make命令來(lái)編譯多個(gè)源文件,從而簡(jiǎn)化編譯過(guò)程。
2.2? QR二維碼編解碼
二維碼的編碼指的是將原始數(shù)據(jù)通過(guò)一定的技術(shù)處理,轉(zhuǎn)換為QR二維碼[3]的過(guò)程。經(jīng)過(guò)數(shù)據(jù)分析、數(shù)據(jù)編碼、糾錯(cuò)編碼、布置模塊等一系列流程處理,才能最終編碼成功。
二維碼的識(shí)別方式有多種,本文采用的是圖像式識(shí)別,它將圖像識(shí)別技術(shù)與二維碼技術(shù)相結(jié)合,通用性較好,圖像式二維碼解碼[4]經(jīng)過(guò)信息譯碼、掩模消除、糾錯(cuò)及數(shù)據(jù)碼字譯碼等流程后,可得到譯碼結(jié)果。
2.3? 數(shù)據(jù)傳輸
本文在清點(diǎn)器設(shè)計(jì)過(guò)程中采用了安全外殼(Secure Shell,SSH)協(xié)議傳輸數(shù)據(jù),SSH協(xié)議可以對(duì)傳輸過(guò)程中的數(shù)據(jù)進(jìn)行加密處理,提升了數(shù)據(jù)傳輸過(guò)程中的安全性。在本設(shè)計(jì)中SSH將為清點(diǎn)器的解析數(shù)據(jù)提供安全且保密的傳輸通道,保證數(shù)據(jù)安全傳輸。清點(diǎn)器與PC端服務(wù)器之間采用多對(duì)一的網(wǎng)絡(luò)傳輸模型,使數(shù)據(jù)的通信更加便利,方便清點(diǎn)器與服務(wù)器端數(shù)據(jù)庫(kù)的管理。SSH傳輸線路如圖2所示。
3? ? QR二維碼物品清點(diǎn)器的設(shè)計(jì)實(shí)現(xiàn)
3.1? QR二維碼識(shí)別實(shí)現(xiàn)
QR二維碼識(shí)別主要分為圖像采集和QR識(shí)別譯碼兩部分,在該清點(diǎn)器中二維碼的識(shí)別采用開(kāi)源ZBar二維碼識(shí)別庫(kù),可以較完整地支持Linux,同時(shí),可實(shí)現(xiàn)對(duì)條碼實(shí)時(shí)掃描,識(shí)別速度較快。本文中為保證開(kāi)源ZBar二維碼識(shí)別庫(kù)的穩(wěn)定使用,需要對(duì)ZBar庫(kù)下載并移植到嵌入式設(shè)備下,配置好軟連接,便可穩(wěn)定使用。
3.2? 數(shù)據(jù)同步及安全傳輸?shù)膶?shí)現(xiàn)
為了提高數(shù)據(jù)傳輸?shù)谋憷约皥?zhí)行效率,本文中對(duì)SSH傳輸方式進(jìn)行了傳輸過(guò)程的優(yōu)化處理。利用SSH公鑰[5]的生成與配對(duì)機(jī)制,將PC端服務(wù)器與清點(diǎn)器掃描設(shè)備下的SSH公鑰進(jìn)行配對(duì),建立永久的傳輸鏈接,配置過(guò)程為在服務(wù)器下生成SSH公鑰與密鑰對(duì),并將該公鑰添加到嵌入式系統(tǒng)的文件中。此時(shí),在嵌入式設(shè)備中,使用SSH與scp命令時(shí),再無(wú)需主機(jī)管理密碼,可直接遠(yuǎn)程控制或傳輸。
4? ? 應(yīng)用效果
為測(cè)試二維碼物品清點(diǎn)器的識(shí)別效果,本文在測(cè)試中共用了36張QR二維碼圖像,并將這些二維碼圖像按包含漢字、英文及數(shù)字3種二維碼信息分組,每組12張二維碼測(cè)試數(shù)據(jù)。針對(duì)測(cè)試環(huán)境的光線與二維碼顯示載體兩種變量分別對(duì)這3組二維碼圖形進(jìn)行測(cè)試,測(cè)試結(jié)果顯示,該清點(diǎn)器在不同光線下識(shí)別精度差別較小,且在紙質(zhì)載體與電子顯示屏兩種二維碼載體下物品清點(diǎn)器的識(shí)別性能表現(xiàn)無(wú)較大差異。
5? ? 結(jié)語(yǔ)
基于Linux的無(wú)線物聯(lián)QR二維碼物品清點(diǎn)器具有以下優(yōu)點(diǎn)。
(1)采用QT開(kāi)發(fā)人性化界面,擴(kuò)展性與穩(wěn)定性好,操作簡(jiǎn)單,用戶可以方便使用,體驗(yàn)較好。
(2)實(shí)現(xiàn)了QR二維碼的機(jī)器快速識(shí)別代替純?nèi)斯ぷR(shí)別,使物品清點(diǎn)的準(zhǔn)確率及效率得到提升,符合物聯(lián)網(wǎng)下對(duì)二維碼識(shí)別高效性、準(zhǔn)確性的需求。
(3)實(shí)現(xiàn)掃描數(shù)據(jù)向數(shù)據(jù)庫(kù)管理系統(tǒng)的同步上傳,進(jìn)而實(shí)現(xiàn)對(duì)物品的追溯及智能管理。
[參考文獻(xiàn)]
[1]雷方杰.基于android嵌入式平臺(tái)的QR碼識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].廣州:廣東工業(yè)大學(xué),2012.
[2]RUSS A.Two dimensional bar codes[J].Adams Cemmunieafion,2002(4):15-18.
[3]黃鑫.基于QR二維碼的醫(yī)學(xué)裝備信息化管理[J].中國(guó)醫(yī)療設(shè)備,2019(1):98-100,105.
[4]侯亞楠.彩色QR碼編碼解碼算法的研究與實(shí)現(xiàn)[D].西安:西安理工大學(xué),2017.
[5]劉韜.SSH協(xié)議公鑰登錄的配置與應(yīng)用[J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2016(18):98-100.
Development of wireless IoT QR code item inventor? based on Linux
Li Yu1, Yang Yonggang2
(1.College of Information Science and Engineering, Lanzhou University, Lanzhou 730107, China;
2.College of Electronic Information and Automation, Tianjin University of Science and Technology, Tianjin 300222, China)
Abstract:To solve the problem of poor portability of traditional barcode recognizer and not supporting QR two-dimensional code recognition, a wireless couplet QR two-dimensional code item counter based on Linux was designed. Embedded operating system was built based on Linux kernel. Open source ZBar two-dimensional code recognition library was transplanted as two-dimensional code recognition library under the counter, and SSH secure transmission protocol was adopted to
realize data transmission between the counter and the server safely and steadily. The counter can recognize two-dimensional codes in real time and efficiently, the recognition results can be clearly displayed on the software interface. The counter has good scanner effect and practicability, and can be widely used in material inventory, and many other Internet of Things occasions.
Key words:QR code; Linux kernel; embedded system; secure transmission