,
(上海師范大學(xué) 信息與機電工程學(xué)院,上海 200234)
基于LinuxQt智能衡器的研究和應(yīng)用
沈丹來, 趙梗明*,祁琴琴
(上海師范大學(xué) 信息與機電工程學(xué)院,上海200234)
通過對當(dāng)前衡器產(chǎn)品的調(diào)研,并以現(xiàn)代衡器行業(yè)發(fā)展的需求為依據(jù),提出了一種智能衡器的整體設(shè)計方案.以ARMllS3C6410為核心處理器,Linux嵌入式系統(tǒng)為智能衡器提供控制系統(tǒng),使用LinuxQt完成了控制程序及人機界面.采用WIFI通信技術(shù)達(dá)到系統(tǒng)遠(yuǎn)程通信及數(shù)據(jù)采集的目的,通過STM32芯片設(shè)計了USB鍵盤,并采用熱敏打印機來打印交易記錄.在傳統(tǒng)衡器的基礎(chǔ)上,加入了網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù),使得衡器更具智能化.測試結(jié)果表明,系統(tǒng)穩(wěn)定可靠、易于操作,達(dá)到了設(shè)計目標(biāo).
智能衡器;Qt; 嵌入式Linux;ARM; 人機交互
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展以及硬件處理數(shù)據(jù)能力的不斷提升,越來越多傳統(tǒng)行業(yè)的電子儀器儀表產(chǎn)品都被帶有平板顯示的智能終端逐步取代,這給數(shù)據(jù)的采集和處理帶來了更多的便捷.儀器儀表接入互聯(lián)網(wǎng)絡(luò)后,便捷的操作方式及友好的人機交互界面給現(xiàn)場的實際操作使用帶來了更多的操作體驗.
衡器是指計量物體質(zhì)量(重量)的器具和裝備,是應(yīng)用范圍最廣泛,品種數(shù)量最多的計量裝備.據(jù)統(tǒng)計,世界上有60%以上的產(chǎn)品都要經(jīng)過稱重計量[1].我國在衡器技術(shù)方面的發(fā)展取得了較大的技術(shù)進(jìn)步,主要表現(xiàn)在2000年以來,國內(nèi)電子衡器制造技術(shù)得到了較快發(fā)展.電子稱重技術(shù)從靜態(tài)稱重向動態(tài)稱重發(fā)展,計量方法從模擬測量向數(shù)字測量發(fā)展,測量特點從單參數(shù)測量向多參數(shù)測量發(fā)展,特別是對動態(tài)稱重的研究已經(jīng)達(dá)到一個較高的水平[2].但是國內(nèi)衡器企業(yè)技術(shù)缺乏技術(shù)保障能力和技術(shù)創(chuàng)新能力,是中國衡器前進(jìn)路上的兩大瓶頸[1].從每年國際衡器展覽的情況會發(fā)現(xiàn),歐美國家的電子衡器較國內(nèi)產(chǎn)品體積更小、精確度和可靠性更高、相對質(zhì)量也更好.智能化已經(jīng)成為衡器一個發(fā)展的方向,歐美國家的互聯(lián)網(wǎng)技術(shù)也比較發(fā)達(dá),多臺電子衡器終端配合云服務(wù)器協(xié)同運作,衡器終端負(fù)責(zé)采集稱量數(shù)據(jù),服務(wù)器負(fù)責(zé)數(shù)據(jù)處理并管理衡器終端.綜合比較國內(nèi)的衡器在智能化方面不占優(yōu)勢,且在高端衡器的市場份額非常低.
本文作者使用的WIFI技術(shù)屬于一種短距離的無線信息技術(shù),在辦公和家庭中都得到了廣泛地應(yīng)用.無線WIFI具有以下幾個特點:(1)架網(wǎng)方便,與傳統(tǒng)以太網(wǎng)相比無需布局大量網(wǎng)線,同時設(shè)備可以在WIFI覆蓋的區(qū)域任意移動;(2)WIFI無線電波覆蓋距離廣,藍(lán)牙的無線電波可以覆蓋的距離大概15m而WIFI的無線電波可以覆蓋100m左右[3];(3)傳輸速度快,相比其他無線網(wǎng)絡(luò),WIFI有比較高的傳輸速度,能夠滿足智能衡器的數(shù)據(jù)傳輸要求.此外隨著中國國力的不斷發(fā)展,互聯(lián)網(wǎng)絡(luò)用戶的不斷提升,中國已經(jīng)成為一個互聯(lián)網(wǎng)絡(luò)的大國,越來越多的電子產(chǎn)品接入互聯(lián)網(wǎng)絡(luò)已經(jīng)是一種趨勢.在外圍電路的設(shè)計中,為了方便用戶的輸入操作,設(shè)計了以STM32F103C8T6為MCU(Microcontroller Unit)的USB鍵盤,同時為了記錄衡器的交易記錄,采用了熱敏打印技術(shù),將交易的部分?jǐn)?shù)據(jù)打印出來,解決了智能衡器的網(wǎng)絡(luò)接入、USB通用鍵盤的設(shè)計、熱敏打印機的控制等相關(guān)技術(shù)難題,分析了各個模塊的基本特點和所要實現(xiàn)的基本功能,在此基礎(chǔ)上提出了基于Linux嵌入式系統(tǒng)的智能衡器整體設(shè)計方案.
智能衡器的概念是指在傳統(tǒng)衡器的計量功能的基礎(chǔ)上,添加網(wǎng)絡(luò)通信模塊、數(shù)據(jù)處理和保存模塊以及友好的人際交互模塊的新型衡器.智能衡器通過WIFI模塊進(jìn)行網(wǎng)絡(luò)通信,在數(shù)據(jù)保存方面選擇了小巧、靈活的Sqlite數(shù)據(jù)庫,它支持經(jīng)典的SQL語句,能夠非常便捷地完成數(shù)據(jù)的增刪改查,也滿足了數(shù)據(jù)備份和數(shù)據(jù)多樣化處理的要求.同時智能衡器配備了鍵盤交互和熱敏打印的功能模塊.Linux系統(tǒng)的內(nèi)核版本號為2.6.30.考慮到友好的人機交互能夠很大程度上提升整個系統(tǒng)的體驗度,圖形界面交互以其直觀、簡易、并且人性化的特性深受人們的青睞.Qt是一個跨平臺的C++圖形用戶界面應(yīng)用程序框架,它提供給應(yīng)用程序開發(fā)者建立圖形用戶界面所需的所用功能[4],本研究中Qt的版本為4.8.5.整個系統(tǒng)設(shè)計如圖1所示.
圖1 系統(tǒng)整體設(shè)計方案
2.1WIFI通信模塊
2.1.1 無線網(wǎng)絡(luò)通信
無線網(wǎng)絡(luò)的移動、動態(tài)和空間特性拓展了網(wǎng)絡(luò)的空間,給運營商也提供了更廣闊的應(yīng)用服務(wù)的空間[5],WIFI模塊選用的是杭州利爾達(dá)科技有限公司型號為LSD5WF-3015B,它符合IEEE802.11b/g/n無線局域網(wǎng)標(biāo)準(zhǔn),可以與其他符合該標(biāo)準(zhǔn)的無線設(shè)備互相聯(lián)通,支持最新的64/128位有線等效保密(WEP)數(shù)據(jù)加密,支持WPA-PSK/WPA2-PSK,WPA/WPA2安全機制,無線傳輸速率高達(dá)150 Mbps,工作頻段為2.4 GHz;該WIFI模塊在Station狀態(tài)下運行,通過無線訪問接入點(AP)連接到廣域網(wǎng)(WAN),這樣智能衡器就能訪問整個Internet,能夠和互聯(lián)網(wǎng)中服務(wù)器進(jìn)行通信;WIFI的配置使用了開源的wpa_supplicant網(wǎng)卡管理工具,編譯wpa_supplicant源碼后會得到wpa_supplicant和wpa_cli兩個工具,到其所在的目錄運行“./ wpa_supplicant”后就進(jìn)入了wpa_supplicant命令交互模式,其常用命令格式如表1所示.
表1 wpa_supplicant最常用基本命令
通過表1的命令就能夠配置好WIFI,當(dāng)使用scan_r查看掃描到的服務(wù)集標(biāo)識(SSID)的時候一定要使用scan命令先掃描一遍,在連接之前將掃描的結(jié)果放到與wpa_supplicant同一文件夾下的temp文件中,然后讀入temp文件中的SSID進(jìn)行連接,整體流程如圖2所示.
Qt中代碼如圖3所示.
圖2 WIFI連接過程
圖3 WIFI連接代碼
圖4 ping Tencent的實驗結(jié)果
連接上無線網(wǎng)絡(luò)后,telnet登錄到設(shè)備上,通過ping通Tencent網(wǎng)表明網(wǎng)絡(luò)連通,結(jié)果如圖4所示.
2.1.2 智能衡器連接服務(wù)器
智能衡器和服務(wù)器之間的通信是采用TCP協(xié)議,在Qt中,通過QtcpSocket類進(jìn)行連接,基本流程如下:首先新建一個QTCPSocket對象,然后通過服務(wù)器的IP和端口號進(jìn)行連接(此時服務(wù)器監(jiān)聽相應(yīng)的端口號),最后通信結(jié)束一定要將socket關(guān)閉,不然多次連接會出現(xiàn)內(nèi)存泄露.在TCP保活方面,采用的定時檢測,通過定時器不斷檢測連接是否斷開,如果斷開則會重新連接.
智能衡器和服務(wù)器連接在Qt中代碼如圖5所示.
圖5 智能衡器連接服務(wù)器代碼
圖6 WIFI和服務(wù)器設(shè)置界面
為了方便用戶對網(wǎng)絡(luò)和服務(wù)器連接的設(shè)置,設(shè)計了友好的人機交互界面如圖6所示.
2.2數(shù)據(jù)庫的設(shè)計
Sqlite是一款輕量級別的小型嵌入式數(shù)據(jù)庫,實現(xiàn)了完備的和可嵌入的SQL 數(shù)據(jù)庫引擎,目前已廣泛應(yīng)用于嵌入式產(chǎn)品中[6].同時,由于其小巧、便捷同時能很好支持Linux系統(tǒng),將商品的固定信息如商品名稱、商品編號、商品價格等保存到Sqlite數(shù)據(jù)庫中,這樣不僅方便數(shù)據(jù)的操作,同時還能夠減少智能衡器和服務(wù)器之間的數(shù)據(jù)通信.
2.2.1 創(chuàng)建新的數(shù)據(jù)庫
創(chuàng)建一個名為smartweight的數(shù)據(jù)庫并設(shè)置用戶名和密碼如圖7所示.
圖7 創(chuàng)建smartweight數(shù)據(jù)庫代碼
2.2.2 執(zhí)行SQL語句
表2 商品信息表
通過QsqlQuery::exec()函數(shù)執(zhí)行SQL語句,創(chuàng)建數(shù)據(jù)表、插入數(shù)據(jù)及其他查詢操作.
1) 創(chuàng)建商品表:商品表中記錄了商品的名稱、商品編號、商品單價、商品生產(chǎn)日期、商品保質(zhì)期如表2所示;
2) 插入數(shù)據(jù):使用標(biāo)準(zhǔn)SQL插入語句,將商品信息輸入插入;
3) 查詢數(shù)據(jù):使用標(biāo)準(zhǔn)SQL查詢語句,查詢特定條件的商品信息;
4) 刪除數(shù)據(jù):使用標(biāo)準(zhǔn)SQL刪除語句,刪除指定的數(shù)據(jù)記錄.
采用Qt實現(xiàn)的數(shù)據(jù)庫設(shè)計中,首先要能夠和數(shù)據(jù)庫取得連接,然后通過SQL語句對數(shù)據(jù)庫進(jìn)行操作,來完成對數(shù)據(jù)庫增刪改查.
2.3USB鍵盤的設(shè)計和實現(xiàn)
2.3.1 USB鍵盤系統(tǒng)設(shè)計
在智能衡器中,由于Qt提供了用于處理鼠標(biāo)、鍵盤等用戶輸入操作的事件模型[7],并且這些事件模型都是基于USB鍵盤來設(shè)計的,要設(shè)計一款鍵盤來滿足用戶不同事件的輸入操作.通常對鍵盤的設(shè)計,需要一款能適用于實時操作系統(tǒng)的控制器芯片,而控制器芯片的種類非常繁多,不同類型的芯片在結(jié)構(gòu)上性能上都存在一定程度的差異性[8].本文作者選擇的是功能、資源豐富的STM32F102RBT6芯片,鍵盤采用的是行列式掃描的方式,核心電路圖如圖8所示.
2.3.2 USB鍵盤在Qt中實現(xiàn)
在Qt中,系統(tǒng)會捕獲所有的鍵盤事件,然后根據(jù)鍵盤事件的不同鍵值處理不同的事件,F1鍵打印交易數(shù)據(jù),F2彈出設(shè)置網(wǎng)絡(luò)界面,F3根據(jù)設(shè)置界面連接網(wǎng)絡(luò),并退出網(wǎng)絡(luò),其他數(shù)字、字母鍵用于輸入字符,Table鍵依次切換鍵盤.
2.4熱敏打印模塊
2.4.1 打印系統(tǒng)的組成
選擇一款帶圖形打印的打印系統(tǒng),打印系統(tǒng)的中控和智能衡器的MCU通過串口方式通信,在打印之前首先要制作打印的圖形并以位圖的格式設(shè)計好,然后將位圖數(shù)據(jù)通過串口傳輸?shù)酱蛴∠到y(tǒng),調(diào)用特定的指令進(jìn)行圖形打印.
目前圖形化數(shù)據(jù)在人們的數(shù)字化生活中應(yīng)用越來越方便,在圖形打印中引入了應(yīng)用比較廣泛的EAN13條形碼和Qrcode二維碼.EAN 13條碼技術(shù)是一種廣泛應(yīng)用于圖書、期刊的條形碼,它集編碼、印刷、識別、數(shù)據(jù)采集于一體[8],用其來記錄交易數(shù)據(jù),前6位為商品編號,后6位為商品總價,最后1位為校驗位,具體打印圖形如圖9所示,為了以后方便對商品進(jìn)行溯源,圖10添加了數(shù)據(jù)容量較大的二維碼.
圖9 普通打印格式
圖10 帶溯源碼打印格式
2.4.2 位圖的設(shè)計及傳輸
在位圖數(shù)據(jù)傳輸之前,在Qt要先通過Qbitmap類創(chuàng)建位圖,然后再使用Qpainter類對位圖進(jìn)行繪制,關(guān)鍵代碼如下:
圖11 位圖繪制代碼
繪制結(jié)束后就可以通過串口將數(shù)據(jù)傳送到打印系統(tǒng)中進(jìn)行打印,由于位圖數(shù)據(jù)通常比較大,達(dá)到10~20 kB左右,所以將串口波特率設(shè)置為115 200 Baud.在Linux系統(tǒng)中串口的實現(xiàn)使用的是符合可移植操作系統(tǒng)接口(POSIX)規(guī)范的termios結(jié)構(gòu).通過對termiso結(jié)構(gòu)的配置,實現(xiàn)讀寫串口和讀寫文件相同函數(shù)處理方式,傳輸、接收數(shù)據(jù)時直接使用write()、read()函數(shù).
為了測試智能衡器終端,在阿里云服務(wù)器上租了一臺公網(wǎng)服務(wù)器,公網(wǎng)IP地址為121.42.13.176,在服務(wù)端的程序監(jiān)聽6666端口數(shù)據(jù),同時將衡器終端的IP地址和端口號設(shè)置成公網(wǎng)的服務(wù)器的IP地址和端口進(jìn)行連接如圖12(a)所示,當(dāng)銷售成功時在服務(wù)器終端接收到數(shù)據(jù)如圖12(b)所示.
圖12 網(wǎng)絡(luò)性能測試
為了測試終端和數(shù)據(jù)通信性能,使用測試腳本在智能終端上和服務(wù)器之間進(jìn)行通信,分別設(shè)置數(shù)據(jù)量Q為10、100、1 000、10 000條交易記錄,每條交易記錄的通信間隔時間T為5、4、2和1 s,測試記錄如表3所示.
表3 智能衡器網(wǎng)絡(luò)通信性能測試
測試表明在時間間隔為5 s左右的時候通信性能非常好,服務(wù)端收集的數(shù)據(jù)比較完整,符合一般交易數(shù)據(jù)采集的要求.
圖13 打印模塊
打印模塊測試,主要是按照3.4節(jié)中的方式,打印200條交易記錄,通過“我查查”軟件進(jìn)行一維碼和二維碼的解碼,測試通過率100%,打印模塊如圖13所示.
本文作者設(shè)計的智能衡器經(jīng)測試能夠便捷地接入網(wǎng)絡(luò),擁有良好的人機交互界面,操作人員能夠通過鍵盤和其交互,同時配備銷售記錄打印功能,達(dá)到預(yù)期設(shè)計目的.智能衡器主控如圖14(a)所示,系統(tǒng)初始化和稱重界面如圖14(b)和(c)所示.
智能衡器的設(shè)計和實現(xiàn)方便了傳統(tǒng)行業(yè)通往“互聯(lián)網(wǎng)+”的時代,與此同時還有很多亟待解決的任務(wù)和技術(shù)難題.首先,雖然智能衡器能夠很好地接入到互聯(lián)網(wǎng)中,能夠便捷地訪問網(wǎng)絡(luò)資訊,但是選擇什么樣網(wǎng)絡(luò)接入方式以及如何進(jìn)行網(wǎng)絡(luò)接口協(xié)議的定義是下一步研究和探討的一個方向;其次,目前在網(wǎng)絡(luò)安全方面擁有很多的解決方案,但是如何在嵌入式設(shè)備的處理性能和嵌入式設(shè)備網(wǎng)絡(luò)安全之間尋找一個平衡點也是下一步工作的一個方向;最后,智能衡器作為一個新興的嵌入式設(shè)備,如何降低其成本,使其能夠真正成為傳統(tǒng)行業(yè)和“互聯(lián)網(wǎng)+”時代的一個“橋梁”也是今后的研究方向.
[1] 劉愛平.基于嵌入式系統(tǒng)的網(wǎng)絡(luò)智能衡器控制平臺 [D].濟南:山東大學(xué),2007.
Liu A P.Network intelligent weighing control platform based on Embedded System [D].Ji′nan:Shandong University,2007.
[2] 鄭文廣.國外電子衡器的現(xiàn)狀與對策 [J].衡器,2015(07):6-8.
Zheng W G.Foreign electronic weighing instrument of the present situation and the countermeasures [J].Weighing Instrument.2015(07):6-8.
[3] 張茁.無線WIFI技術(shù)應(yīng)用現(xiàn)狀及發(fā)展分析 [J].數(shù)字技術(shù)與應(yīng)用,2014(6):44.
Zhang Z.Application and development of wireless WIFI Technology [J].Digital Technology and Application,2014(6):44.
[4] 賈仕俊,秦開宇,陳華偉,等.基于QT的數(shù)據(jù)圖形化設(shè)計與分析 [J].軟件導(dǎo)刊,2011(7):156-158.
Jia S J,Qin K Y,Chen H Y,et al.Design and Analysis of Data Graphical Based on QT [J].Software Guide,2011(7):156-158.
[5] 盛蕾.WIFI網(wǎng)絡(luò)研究及基于Linux的測試平臺的實現(xiàn) [D].上海:同濟大學(xué),2007.
Sheng L.Research of wireless network and implementation of the WIFI test platform on Linux [D].Shanghai: Tongji University,2007.
[6] 潘學(xué)文,文漢云.基于Qt4的SQLite數(shù)據(jù)庫應(yīng)用編程 [J].電腦編程技巧與維護(hù),2011(4):49-50.
Pan X W,Wen H Y.SQLite Database Application Programming Based on Qt4 [J].Computer Programming Skills & Maintenance,2011(4):49-50.
[7] 田福英.基于Linux Qt的軟鍵盤設(shè)計與實現(xiàn) [J].計算機與現(xiàn)代化,2011(12):179-181.
Tian F Y.Design and Implementation Methods for Soft Keyboard Based on Linux Qt [J].Computer and Modernization,2011(12):179-181.
[8] 張淼,趙冒童.基于STM32F103RBT6芯片的USB鍵盤設(shè)計與實現(xiàn) [J].福建電腦,2014(12):122-125.
Zhang M,Zhao M T.Design and implementation of USB keyboard based on STM32F103RBT6 chip [J].Fujian Computer,2014(12):122-125.
[9] 李杰,方仲民,劉云.條碼技術(shù)與應(yīng)用 [M].北京:清華大學(xué)出版社,2003.
Li J,Fang Z M,Liu Y.Bar code technology and Application[M].Beijing: Tsinghua University press,2003.
(責(zé)任編輯:包震宇)
TheresearchandapplicationofsmartweighingapparatusbasedonLinuxandQt
Shen Danlai,ZhaoGengming*,QiQinqin
(The College of Information,Mechanical and Electrical Engineering,Shanghai Normal University,Shanghai200234,China)
Through the investigation on the current weighing products,with the demand on development of modern weighing industry as the basis,this paper proposed a novel design of smart weighing apparatus. It takes ARMllS3C6410as the MCU and embedded Linux as control system,and uses Linux and Qt to complete the control procedures and man-machine interface.It aloe uses WIFI communication technology to complete the remote communication and data acquisition.We use the STM32chip to design the USB keyboard and use thermal printer to print transaction records.The approach based on the traditional weighing apparatus,joined with the network and database technology,makes the weighing apparatus more intelligent.Test results show that the system is stable,reliable and easy to operate.
smart weighing apparatus; Qt; embedded Linux; ARM; man-machine interaction
2015-11-17
沈丹來(1989-),男,碩士研究生,主要從事計算機系統(tǒng)結(jié)構(gòu)方面的研究.E-mail:17721129316@163.com
導(dǎo)師簡介: 趙梗明(1959-),女,副教授,主要從事嵌入式系統(tǒng)的開發(fā)和應(yīng)用方面的研究.E-mail:gengming@shnu.edu.cn
TP311.5
:A
:1000-5137(2017)04-0506-08
*