一種基于ARM11和RFID技術(shù)的智能物流管理系統(tǒng)設(shè)計(jì)
在打開(kāi)串口文件之前,我們要對(duì)串口進(jìn)行相應(yīng)的設(shè)置,具體步驟有以下幾步:串口屬性的設(shè)置,保存原先串口配置,激活選項(xiàng),設(shè)置波特率,設(shè)置字符大小,設(shè)置校驗(yàn),設(shè)置停止位,設(shè)置最少字符與等待時(shí)間,清楚串口緩沖,激活配置。設(shè)置由以下結(jié)構(gòu)體實(shí)現(xiàn):
本文引用地址:http://cafeforensic.com/article/248141.htm
成功打開(kāi)驅(qū)動(dòng)文件后,需要做的就是使用read()函數(shù)來(lái)讀出讀卡器發(fā)送的信號(hào),以判別貨品的類(lèi)型,將其信息準(zhǔn)確的存入到數(shù)據(jù)庫(kù)。 Read()函數(shù)的函數(shù)原型為read(int fd,void*huf,size_t count),read()實(shí)現(xiàn)的功能是從參數(shù)fd所指的文件傳送count個(gè)字節(jié)到buf指針?biāo)傅膬?nèi)存中。讀出的數(shù)據(jù)將存入buf中,作為識(shí)別RFID標(biāo)簽的依據(jù)。
2.3 SQLite對(duì)數(shù)據(jù)的管理
在嵌入式設(shè)備上使用的數(shù)據(jù)庫(kù)有很多,比如MySQL。本設(shè)計(jì)選擇的是更為簡(jiǎn)便的數(shù)據(jù)庫(kù)SQLite。本設(shè)計(jì)中建立的是一個(gè)物流商品信息的數(shù)據(jù)庫(kù)系統(tǒng),包含的信息有:商品的名字(char型),商品的ID號(hào)(char型)以及商品的價(jià)格(int型)。這些信息都將被存放在table merchan dise中。
當(dāng)代表商品的RFID標(biāo)簽第一次刷寫(xiě)讀卡器的時(shí)候,系統(tǒng)將根據(jù)它的標(biāo)簽標(biāo)號(hào),唯一確定它的商品名、商品ID號(hào)以及價(jià)格,并把這些消息一次性寫(xiě)入到表merchandise中。已經(jīng)存入庫(kù)中的商品RFID標(biāo)簽再次刷寫(xiě)讀卡器的時(shí)候,將作為該商品的出庫(kù)操作,系統(tǒng)將自動(dòng)的刪除該商品在數(shù)據(jù)庫(kù)中的信息。
存數(shù)據(jù)的管理部分,充分利用SQLite提供的便捷有效的API函數(shù):sqlite3_open(),sqlite3_exec()和sqlite3_close()等,打開(kāi)和操作數(shù)據(jù)庫(kù)文件。
在商品的整個(gè)入庫(kù)、出庫(kù)的操作中,數(shù)據(jù)的錄入和刪除將是由系統(tǒng)自動(dòng)完成,免去了人為的操作,大大提高了倉(cāng)庫(kù)管理的效率,減少了人力資源。
2.4 Qt/E用戶(hù)界面的設(shè)計(jì)
QT/E即Qt Embedded是挪威Trolletch公司的圖形化界面開(kāi)發(fā)工具。Qt的嵌入式版本,擁有較高的運(yùn)行效率,而且整體采用面向?qū)ο缶幊蹋瑩碛辛己玫捏w系架構(gòu)和編程模式。在系統(tǒng)設(shè)計(jì)時(shí),為了使管理人員更好地管理倉(cāng)庫(kù)物品的信息,在開(kāi)發(fā)板上配備了一個(gè)4.2寸的觸摸屏,來(lái)提供良好的UI界面,以便觀察數(shù)據(jù)庫(kù)內(nèi)的存貨信息。
在本設(shè)計(jì)中,選擇QT來(lái)開(kāi)發(fā)UI界面。在主界面中,加入了一個(gè)Table View控件,用來(lái)綁定SQLite數(shù)據(jù)庫(kù)文件rfid_sqlite.db。在開(kāi)發(fā)過(guò)程中,添加頭文件“QSqlDatabase”,這是Qt用來(lái)連接數(shù)據(jù)庫(kù)所必備的頭文件,該頭文件下包含了很多的函數(shù)來(lái)操作數(shù)據(jù)庫(kù),將數(shù)據(jù)信息呈現(xiàn)給用戶(hù)。語(yǔ)句QSqlDatabase db=QSqlDatabase::addDatabase(“QSQLITE”),指明了Qt所需要連接的數(shù)據(jù)庫(kù)類(lèi)型為SQLite,接著再通過(guò)db.setDatabaseName(“rfid_sqlite.db”)來(lái)打開(kāi)鏈接系統(tǒng)所需要的數(shù)據(jù)庫(kù),默認(rèn)路徑為當(dāng)前文件夾,顯示結(jié)果如圖2所示。
3 實(shí)現(xiàn)功能
本設(shè)計(jì)的目的是通過(guò)RFID的批量識(shí)別,實(shí)現(xiàn)物流的出庫(kù)、入庫(kù)和分揀流程。通過(guò)服務(wù)器和數(shù)據(jù)中心的文時(shí)數(shù)據(jù)分析和報(bào)表功能,掌握企業(yè)資源的動(dòng)態(tài)變化。本系統(tǒng)中選擇使用固定式的低頻率的讀卡器,來(lái)實(shí)現(xiàn)商品信息的錄入與刪除,模擬了四種不同的商品:A,B,C,D,對(duì)應(yīng)相應(yīng)的商品ID。商品入庫(kù)的時(shí)候,依此把RFID標(biāo)簽放在讀卡器上進(jìn)行刷寫(xiě),終端部分通過(guò)對(duì)串口/dev/ttyrSAC1的實(shí)時(shí)監(jiān)測(cè),當(dāng)數(shù)據(jù)刷寫(xiě)的時(shí)候,在RFID標(biāo)簽ID鑒別的函數(shù)體內(nèi),以ID號(hào)為判別依據(jù),調(diào)用數(shù)據(jù)庫(kù)操作文件sqlite.c中定義好的函數(shù)體sqliteDB_opt_add(char*na me,char*id,int price)錄入商品信息;在商品出庫(kù)時(shí),再次刷寫(xiě)需要出入庫(kù)的RFID標(biāo)簽,系統(tǒng)將自動(dòng)識(shí)別該商品的刷寫(xiě)次數(shù),來(lái)鑒別其操作方式是出庫(kù)還是入庫(kù)。當(dāng)判斷出是第二次刷寫(xiě)時(shí),將調(diào)用函數(shù)體sqliteDB_opt_delete_by_id(char*id),從數(shù)據(jù)庫(kù)中刪除該商品的信息,以達(dá)到數(shù)據(jù)出庫(kù)的操作。標(biāo)簽的首次刷寫(xiě)視為商品的入庫(kù),第二次刷寫(xiě)視為出庫(kù)操作,這一信息的錄入與刪除,用戶(hù)可以從UI界面的Table View控件內(nèi)實(shí)時(shí)觀察到。
4 結(jié)論
本設(shè)計(jì)以ARM11微處理器為核心,結(jié)合了Linux操作系統(tǒng)和TX125系列射頻讀卡模塊實(shí)現(xiàn)了智能物流的貨品管理系統(tǒng)。重點(diǎn)實(shí)現(xiàn)了在嵌入式設(shè)備系統(tǒng)中進(jìn)行數(shù)據(jù)庫(kù)的開(kāi)發(fā)以及UI用戶(hù)界面等的開(kāi)發(fā)和移植。經(jīng)實(shí)驗(yàn)證明,該系統(tǒng)實(shí)現(xiàn)了物品出庫(kù)和入庫(kù)的管理功能,方便實(shí)用。充分凸顯了RFID技術(shù)在當(dāng)下有著較強(qiáng)的實(shí)用性,更體現(xiàn)了嵌入式系統(tǒng)給日常生活帶來(lái)了的極大便利,為物流行業(yè)帶了很大的收效。本設(shè)計(jì)還有很多需要繼續(xù)完善的地方,如要給每個(gè)物品加上GPS定位,以實(shí)現(xiàn)客戶(hù)和物流公司對(duì)物品流向的監(jiān)測(cè)。
評(píng)論