徐繼寧,李建芯
(北方工業(yè)大學 電氣與控制工程學院, 北京 100144)
SQLite在資產(chǎn)管理與環(huán)境監(jiān)測系統(tǒng)中的應用*
徐繼寧,李建芯
(北方工業(yè)大學 電氣與控制工程學院, 北京 100144)
針對實驗室資產(chǎn)設備品種繁多、報廢周期不一、地址信息變更頻繁、環(huán)境安全難保障的特點,提出了將輕量級數(shù)據(jù)庫SQLite嵌入在一個資產(chǎn)管理與環(huán)境監(jiān)測系統(tǒng)中,利用Qt實現(xiàn)對管理軟件的應用設計開發(fā),最終實現(xiàn)了對實驗室資產(chǎn)設備數(shù)據(jù)的采集、存儲、管理以及對實驗室溫濕度環(huán)境狀態(tài)的監(jiān)測和曲線顯示。
嵌入式系統(tǒng);SQLite ;Qt ;資產(chǎn)管理;環(huán)境監(jiān)測
隨著工程實踐教育的發(fā)展,高校的實驗室設備資產(chǎn)數(shù)量日益增大,品種類型多樣, 且創(chuàng)新、開放實驗室活動的開展也使得設備的流動性更強,工作環(huán)境日益復雜。在新的教育形勢下,如何靈活有效地管理和利用實驗室的資產(chǎn)設備是所有實驗室管理人員面臨的問題。
當今高校實驗室的設備資產(chǎn)管理有幾個特點:每個品種數(shù)量不大但種類繁多;更換、報廢物品周期不一;重要設備需有使用記錄;需要定期進行資產(chǎn)清查;確定重要設備位置等。傳統(tǒng)化的固定資產(chǎn)管理仍是當今高校普遍采用的方式,還是采用紙制標簽,利用手工方式將設備相關信息分類編輯管理[1]。這種管理方式雖然能從一定程度上對資產(chǎn)進行統(tǒng)計管理,但還存在很多固有的缺陷。因為標簽長時間的保存容易損壞,往往會造成信息具有不可追溯性;固定資產(chǎn)信息無法實時追蹤記錄,變更操作繁瑣;實驗室環(huán)境狀態(tài)缺乏預警機制,更難以保證實驗室環(huán)境狀態(tài)的安全。 因此本文設計了一個結(jié)合RFID技術和嵌入式數(shù)據(jù)庫的新型資產(chǎn)管理與環(huán)境監(jiān)測系統(tǒng)。
本文設計的實驗室資產(chǎn)管理與環(huán)境監(jiān)測系統(tǒng)框圖如圖1所示。該系統(tǒng)主要分為數(shù)據(jù)采集端、核心控制器、遠程控制端和報警設備4部分。所有實驗室固定資產(chǎn)配備RFID卡片, 用于表示和記錄設備信息。
數(shù)據(jù)采集端完成兩部分任務:(1)由RFID掃描器獲取實驗室內(nèi)的設備信息;(2)通過各傳感器進行數(shù)據(jù)采集,進行必要的環(huán)境監(jiān)控。數(shù)據(jù)最終都由ZigBee網(wǎng)絡傳輸?shù)胶诵目刂破鞫恕F渲蠷FID芯片采用MFRC522,ZigBee芯片采用TI 公司的CC2530。
控制器基于Linux操作系統(tǒng)開發(fā),其核心芯片是三星的S3C6410??刂破髦饕蝿帐峭瓿汕岸瞬杉臄?shù)據(jù)的存儲、顯示以及對整個系統(tǒng)的控制。接收前端采集數(shù)據(jù),將數(shù)據(jù)存儲到數(shù)據(jù)庫中并顯示在基于Qt 4開發(fā)的人機交互界面中,利用無線網(wǎng)絡與遠程控制端進行交互。手機、Pad等移動終端設備組成了遠程控制端,它們通過無線Wi-Fi實現(xiàn)與核心控制端通信,可以對核心控制端傳來的數(shù)據(jù)完成顯示和控制功能。
為保障重要設備的安全,本系統(tǒng)提供了防盜報警功能。由超高頻RFID掃描器對重要物品進行掃描,當設備非法移出時啟動報警器。超高頻RFID掃描器和報警器組成的報警設備通過有線方式進行通信。
圖1 資產(chǎn)管理與環(huán)境監(jiān)測系統(tǒng)整體框圖
在該系統(tǒng)中數(shù)據(jù)庫主要支持的功能有存儲由ZigBee協(xié)調(diào)器傳來的資產(chǎn)信息、溫度信息和濕度信息等數(shù)據(jù),并將數(shù)據(jù)顯示在本地嵌入式端;同時實現(xiàn)對資產(chǎn)信息數(shù)據(jù)的添加、刪除、查詢、修改、報廢和變更記錄等功能,對溫濕度信息實現(xiàn)數(shù)據(jù)曲線顯示功能。
傳統(tǒng)的數(shù)據(jù)庫通常要專門的管理以及配置,不僅體積大、不便移植,而且使用也復雜[2]。而嵌入式數(shù)據(jù)庫不需要在客戶機服務器上的配置服務,它嵌入到了應用程序進程中。輕量級嵌入式數(shù)據(jù)庫在運行過程中只要比較少的內(nèi)存,速度快,效果也更加理想。嵌入式數(shù)據(jù)庫一般也都支持SQL,通過SQL來管理應用程序數(shù)據(jù),而不依靠原始的文本文件。
當前支持多平臺的輕量級嵌入式數(shù)據(jù)庫主要有Empress、BerkeleyDB、SQLite[3],如表1所示。
表1 常用嵌入式數(shù)據(jù)庫對比
由表1對比可得,SQLite數(shù)據(jù)庫占內(nèi)存最小,僅為250 KB,同時提供簡單易用的API接口供開發(fā)者使用,因此最適合在實驗室資產(chǎn)管理與環(huán)境監(jiān)測系統(tǒng)中開發(fā)使用。
對于開源的嵌入式SQLite數(shù)據(jù)庫,它方便使用管理、維護和配置,無需安裝。該數(shù)據(jù)庫儲存在單一文件系統(tǒng)中,內(nèi)嵌到應用程序中,支持Mac OS、Linux、Windows、UNIX等各種操作系統(tǒng)[4]。比起目前常見的SQL Server和Oracle數(shù)據(jù)庫來說,SQLite數(shù)據(jù)庫不需獨自運行數(shù)據(jù)庫的驅(qū)動系統(tǒng),數(shù)據(jù)存取速度很快,是MySQL的1~2倍;支持2 TB數(shù)據(jù)存儲量。它具有簡潔優(yōu)化的結(jié)構(gòu),主要由SQL編譯器、內(nèi)核、后端3部分組成[5]。在SQLite數(shù)據(jù)庫體系結(jié)構(gòu)的上部進行編譯查詢語句,在中部執(zhí)行它,低層處理操作系統(tǒng)的存儲和接口。所有SQL語句通過分詞器和分析器生成語法樹,交由代碼生成器生成可以在SQLite虛擬機中執(zhí)行的程序集[3,6]。SQLite憑借較小的體積、簡單的操作以及運行穩(wěn)定的優(yōu)點,使之與復雜的商業(yè)數(shù)據(jù)引擎在開發(fā)維護方面更占優(yōu)勢。
在本設計系統(tǒng)中,資產(chǎn)信息存入到SQLite數(shù)據(jù)庫,用于支持用戶對資產(chǎn)信息的檢索、添加、修改、刪除、報廢以及數(shù)據(jù)變更等功能, 同時實現(xiàn)對環(huán)境溫濕度和報警信息的存儲,并以表格、曲線等形式顯示。
3.1 數(shù)據(jù)庫表的設計
數(shù)據(jù)庫中創(chuàng)建了資產(chǎn)信息表、報廢資產(chǎn)信息表、信息變更表、溫度表、濕度表和報警記錄表6張表。資產(chǎn)信息表包含了每條資產(chǎn)的詳細信息,如表2所示,它包含了資產(chǎn)編號、資產(chǎn)名稱等14個字段。由于要對報廢的資產(chǎn)做一定時段的存檔,還需要一張報廢表,報廢表的字段等同于資產(chǎn)信息表。為了方便對資產(chǎn)變動信息進行登記,單獨建立了信息變更表,如表3所示。對環(huán)境信息,主要記錄時間和溫濕度值,如表4所示。
表2 資產(chǎn)信息表
表3 信息變更表
表4 溫度表
3.2 Qt下的數(shù)據(jù)庫的建立
該系統(tǒng)用Qt進行數(shù)據(jù)庫的訪問, 采用了QtSQL模塊進行數(shù)據(jù)庫的驅(qū)動,用一套獨立于平臺和數(shù)據(jù)庫的調(diào)用接口進行通信[7- 8]。
首先創(chuàng)建數(shù)據(jù)庫鏈接,也就是創(chuàng)建一個QSqlDatabase類的實例,代碼如下:
QSqlDatabase db= QSqlDatabase::addDatabase(“QSQLITE”);
db.setDatabaseName(“databasefile”);
鏈接好數(shù)據(jù)庫后,要創(chuàng)建數(shù)據(jù)庫表,代碼如下:
void ConnDlg::creatDB()
{ QSqlQuery query;
query.exec(“create table asset(“
//創(chuàng)建資產(chǎn)信息表
“assetid int primary key,”
//插入主鍵
“other varchar(50))”));}
QSqlQuery類提供了一個接口,用于執(zhí)行SQL語句。通過SQL語句實現(xiàn)了對數(shù)據(jù)庫的查詢、添加、刪除和修改等操作。
3.3 資產(chǎn)報廢的數(shù)據(jù)實現(xiàn)
為了提高追溯能力和管理水平,實驗室資產(chǎn)報廢后需存檔一段時間,因此需要單獨形成一份報廢資產(chǎn)信息表。資產(chǎn)報廢操作先要將報廢資產(chǎn)信息從資產(chǎn)信息表中復制到報廢資產(chǎn)表中,然后從資產(chǎn)信息表中刪除該信息,如圖2所示。主要代碼如下:
insert into scraptable(assetid,assetname,...)select assetid,assetname,... from assettable;
//復制信息到報廢表
removeAssetsFromDatabase(assetid);
//在資產(chǎn)信息表中刪除該資產(chǎn)信息
圖2 資產(chǎn)報廢
3.4 變更記錄的實現(xiàn)
實驗室資產(chǎn)是實驗室成員的公共財產(chǎn),使用過程中部分資產(chǎn)的信息變動較大,尤其是“使用者”和“存放地點”這兩條信息。為此建了一張變更信息表,專門存放每個資產(chǎn)的變更信息, 如圖3所示。每當資產(chǎn)的使用者和存放地點變動時,可以在資產(chǎn)信息窗口中選中要變動的資產(chǎn),直接添加變更信息到變更信息表中。變更記錄時采用事務方式將變更信息插入到變更信息表中顯示。主要代碼如下:
QSqlDatabase::database().transaction ;
//啟動事務
scrapModel->insertRecord(-1,record);
QSqlDatabase::database().commit();
//事務結(jié)束
圖3 資產(chǎn)變更
3.5 環(huán)境監(jiān)測溫度曲線顯示的實現(xiàn)
大型貴重設備的環(huán)境監(jiān)測已經(jīng)成為實驗室不可忽略的問題,該系統(tǒng)用無線傳感網(wǎng)絡方便地實現(xiàn)了實驗室環(huán)境參數(shù)的監(jiān)測,主要關注設備周邊的溫濕度變化。為提高可視性,系統(tǒng)采用高性能繪圖圖表Qt C++控件QCustomPlot,可以繪制曲線圖、趨勢圖、柱狀圖。圖4是對實驗室一天中每兩個小時采樣一次數(shù)據(jù)的溫度變化情況。
圖4 實驗室一天內(nèi)溫度變化曲線圖
本文介紹了一款新型的面向高校實驗室資產(chǎn)管理和環(huán)境監(jiān)測嵌入式系統(tǒng),文中主要就該系統(tǒng)中輕型數(shù)據(jù)庫SQLite數(shù)據(jù)庫的選型、設計和開發(fā)作了介紹。作為一個綜合了ZigBee、RFID、嵌入式技術的實用系統(tǒng),SQLite與Qt的聯(lián)合開發(fā)對系統(tǒng)的性能完善和提高起到了不可替代的作用,也表明了SQLite數(shù)據(jù)庫在嵌入式端的優(yōu)越性,對相關系統(tǒng)的開發(fā)有著積極的借鑒意義。
[1] 毛行標.RFID技術在高校實驗室設備資產(chǎn)信息化管理系統(tǒng)中的應用[J].中國現(xiàn)代教育裝備,2006(11):69-70.
[2] 李強,曾國強,羅群,等.嵌入式數(shù)據(jù)庫SQLite在核儀器數(shù)據(jù)管理中的應用[J].核電子學與探測技術,2014,34(8):921-925.
[3] 王峰超,申萍,嚴翔,等.SQLite在機車故障診斷系統(tǒng)中的應用研究[J].鐵道機車車輛,2012,32(4):90-93.
[4] 梁爽,任杰.嵌入式數(shù)據(jù)庫SQLite在油田監(jiān)控系統(tǒng)中的應用[J].試驗研究,2014,33(11):29-30.
[5] 張穎,易金花,張曉玉,等.基于嵌入式Linux的上肢康復機器人用戶系統(tǒng)研究[J].電子技術應用,2014,40(5):14-17.
[6] 鄧宗權(quán),蔣向東,王繼岷,等.基于嵌入式Linux汽車智能儀表系統(tǒng)的設計[J].微型機與應用,2014,33(4):26-28.
[7] 楊旭光.基于QWT插件實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)圖表顯示[J].福建電腦,2012,28(12):158-159.
[8] 鄭阿奇.Qt4開發(fā)實踐[M].北京:電子工業(yè)出版社,2011.
The application of SQLite in asset management and environmental monitoring system
Xu Jining,Li Jianxin
(School of Electrical and Control Engineering, North China University of Technology, Beijing 100144,China)
In view of lab asset equipment has the characteristics of a wide variety, having different cycle of scrap , easy to change, and difficult to guarantee for environmental safety, this article embeds lightweight database SQLite into the system of asset management and environmental monitoring, using Qt for the application of management software design and development. Then it is realized in the equipment for laboratory assets data collection, storage and manage as well as the laboratory environment of temperature and humidity monitoring and curve display.
embedded system;SQLite;Qt;asset managment;environment monitoring
國家自然科學基金(61304049)
TP311.5
A
1674-7720(2016)04-0095-03
徐繼寧,李建芯.SQLite在資產(chǎn)管理與環(huán)境監(jiān)測系統(tǒng)中的應用[J] .微型機與應用,2016,35(4):95-97,103.
2015-09-16)
徐繼寧(1970-),女,博士,副教授,主要研究方向:信號處理,工業(yè)控制和總線技術。
李建芯(1989-),通信作者,男,碩士,主要研究方向:嵌入式,物聯(lián)網(wǎng)技術。E-mail:15650768931@163.com。