傅 偉,蔣道霞,安業(yè)品
(江蘇財經(jīng)職業(yè)技術(shù)學(xué)院 機械電子與信息工程學(xué)院,江蘇 淮安 223003)
倉儲在現(xiàn)代物流業(yè)和制造業(yè)中扮演著重要的角色,對于加速貨物流通和生產(chǎn)決策起著重要的作用[1-3]。傳統(tǒng)對倉儲管理依賴于手工處理,產(chǎn)品的入庫、出庫等信息都需要手工進(jìn)行統(tǒng)計,然后錄入系統(tǒng)中,系統(tǒng)雖然能夠起到一定的管理作用,但是由于大量的工作都需要手工去完成,系統(tǒng)只是單純地起到記錄數(shù)據(jù)的作用,另外對于倉儲的環(huán)境更是無法做到實時監(jiān)測,然而在倉儲中對環(huán)境監(jiān)測也顯得比較重要,大部分貨物怕潮,有些貨物甚至對溫度也有嚴(yán)格要求,僅靠人工管理無法做到實時監(jiān)控的要求。隨著物聯(lián)網(wǎng)的興起,利用ZigBee技術(shù)、RFID技術(shù)等可以將實物與互聯(lián)網(wǎng)聯(lián)接起來,通過上位機軟件進(jìn)行實時監(jiān)控,即省時又省力,因此結(jié)合物聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)實現(xiàn)智能倉儲管理成為可能。
系統(tǒng)能夠?qū)崿F(xiàn)對倉儲環(huán)境的溫濕度、光照度、空氣質(zhì)量、煙霧等進(jìn)行監(jiān)測,同時能對貨物的出庫、入庫進(jìn)行實時記錄,通過系統(tǒng)了解各類貨物庫存情況以及所處位置。在環(huán)境監(jiān)測方面主要采用ZigBee網(wǎng)絡(luò)進(jìn)行部署,收集倉儲環(huán)境實時信息并傳入系統(tǒng)服務(wù)器;利用 RFID技術(shù)進(jìn)行實時采集貨物信息,其整體架構(gòu)如圖1所示,ZigBee結(jié)點主要進(jìn)行環(huán)境監(jiān)測,在倉儲的不同位置放置若干ZigBee節(jié)點,對倉儲的溫濕度、光照度、PM 值、煙霧進(jìn)行監(jiān)測,通過ZigBee網(wǎng)絡(luò)將數(shù)據(jù)傳送到系統(tǒng)服務(wù)器,服務(wù)器根據(jù)監(jiān)測到的數(shù)據(jù)通過移動互聯(lián)網(wǎng),將數(shù)據(jù)推送至移動客戶端并提醒用戶,若環(huán)境變量數(shù)值超出預(yù)先設(shè)置的閾值,系統(tǒng)將作出相應(yīng)的處理,使倉儲環(huán)境變量值處于正常范圍。倉儲中的貨物均貼上 RFID標(biāo)簽,當(dāng)貨物經(jīng)過 RFID讀寫器時,貨物中的相關(guān)信息自動被讀入數(shù)據(jù)庫系統(tǒng)中,全程無需人工干預(yù),大大提高了工作效率。限于篇幅,本文主要從Android移動客戶端的設(shè)計與實現(xiàn)進(jìn)行深入研究。
系統(tǒng)整體架構(gòu)Fig.1 S ystem overall architecture
系統(tǒng)主要分為以下幾個模塊:環(huán)境監(jiān)測、煙霧報警、貨物入庫管理、貨物出庫管理、貨物庫存查詢等。環(huán)境監(jiān)測主要由溫濕度和光照度等節(jié)點構(gòu)成,在倉庫的每個角落均放置有相應(yīng)的傳感器,實時采集溫濕度和光照度,根據(jù)不同的貨物存儲要求,控制合適的溫濕度和光照度。防火報警節(jié)點主要采集煙霧信息,當(dāng)倉庫里有煙霧異常時,啟動報警器,打開通風(fēng)設(shè)備,同時通過服務(wù)器端將報警信息推送至客戶端;通過視頻監(jiān)控節(jié)點采集人臉信息,實現(xiàn)防盜報警,當(dāng)倉庫里有人入侵時,通過人臉識別模塊,啟動報警器,同時通過服務(wù)器端將警報信息推送到移動客戶端。貨物入庫管理主要通過 RFID標(biāo)簽和RFID讀寫器實現(xiàn),貨物入庫時RFID讀寫器自動對貨物上的 RFID標(biāo)簽進(jìn)行讀取,貨物的入庫信息經(jīng)智能網(wǎng)關(guān)定時上傳至系統(tǒng)服務(wù)器中,其信息主要包括貨物名稱、貨物產(chǎn)地、貨物入庫操作員名稱、貨物入庫時間等;通過 RFID設(shè)備對貨物出庫信息經(jīng)智能網(wǎng)關(guān)定時上傳至系統(tǒng)服務(wù)器中。另外如果需要了解貨物庫存情況,通過輸入貨物編號,可以通過系統(tǒng)查看貨物的總庫存量、日入庫量、入庫價格、日出庫量、出庫價格等相關(guān)信息,系統(tǒng)功能模塊如圖2所示。
根據(jù)系統(tǒng)要求,數(shù)據(jù)庫中主要有:用戶表、貨物表、設(shè)備表。用戶表主要用于用戶管理,根據(jù)所屬的權(quán)限的不同,擁有對系統(tǒng)操作的不同權(quán)限,如表1所示;貨物表主要用于存儲貨物信息,表中包括貨物編號、貨物名稱、貨物產(chǎn)地等信息,如表 2所示;設(shè)備表主要用于存儲各環(huán)境結(jié)點所采集的信息,表中包括設(shè)備編號、設(shè)備類型、設(shè)備相關(guān)數(shù)據(jù)、設(shè)備更新時間等信息,如表3所示。
2.3.1 頁面布局設(shè)計
為了使頁面設(shè)計比較靈活,系統(tǒng)中的頁面大都采用混合布局,在最外層通過 RelativeLayout進(jìn)行布局,頁面內(nèi)每個部分再用LinearLayout進(jìn)行布局,結(jié)構(gòu)顯得比較美觀。為了簡化設(shè)計有些部分可以單獨用一個布局文檔來設(shè)計,然后在其它文檔中通過include語句將其包括進(jìn)來,這樣可以重復(fù)利用已經(jīng)設(shè)計好的布局,比如在每個界面中都有“返回”按鈕,先單獨設(shè)計其布局界面如下:
圖2 系統(tǒng)功能模塊Fig.2 Sy stem function module
表1 用戶信息表Tab.1 Use r information table
表2 貨物表Tab.2 Goods table
表3 設(shè)備表Tab.3 Equipme nt table
在主界面中只需要將其包括進(jìn)來即可,無需重復(fù)設(shè)計相同界面,其引用代碼如下:
2.3.2 數(shù)據(jù)庫操作設(shè)計
利用 DatabaseHelper類訪問數(shù)據(jù)庫,Database-Helper是訪問SQLite的助手類,提供兩個方面的功能,其一通過 getReadableDataBase( )、getWriteableData( )兩個方法獲得SQLiteDatabase對象,其二通過提供了 onCreate( )和 onUpgrade( )兩個回調(diào)函數(shù),允許用戶在創(chuàng)建和升級數(shù)據(jù)庫時進(jìn)行相應(yīng)的操作。為了提高移動端系統(tǒng)運行效率,啟動系統(tǒng)時將服務(wù)器端數(shù)據(jù)同步到移動端SQLite數(shù)據(jù)庫中,從而減少網(wǎng)絡(luò)數(shù)據(jù)流量。獲取 DatabaseHelper對象和Sqlite對象代碼如下:
SqliteDBHelper dbHelper = new SqliteDBHelper(context, "zncc.db");//獲取助手類對象
Sqlite rSqlite = dbHelper.getReadableDaoTool();//通過助手類對象獲取SQLite對象
Sqlite wSqlite = dbHelper.getWritableDaoTool();//通過助手類對象獲取SQLite對象
2.3.3 采用JSON數(shù)據(jù)解析
在網(wǎng)絡(luò)傳輸中JSON是一種比較好的數(shù)據(jù)交換格式,相比 XML能夠減少很多冗余字符,最大限度地提高網(wǎng)絡(luò)傳輸效率[4-6]。JSON具有比較簡潔和清晰的語法結(jié)構(gòu),比較容易編寫,同時解析也比較方便,在將數(shù)據(jù)傳送到系統(tǒng)服務(wù)器中主要采用JSON解析數(shù)據(jù),貨物相關(guān)信息都封裝成 JSON對象,相關(guān)代碼如下:
在Android應(yīng)用中經(jīng)常會有些比較耗時的操作,比如網(wǎng)絡(luò)連接或者上傳下載文件操作[7-10]。這些操作如果都在一個主線程中開啟,在網(wǎng)絡(luò)連接不佳的情況下,主線程很有可能卡死,用戶體驗極其不佳,為了獲得比較好的用戶體驗,必須重新開啟線程,在貨物入庫、出庫等功能模塊中均開啟了線程,達(dá)到比較好的用戶體驗效果,系統(tǒng)中采用 Android中已封裝的 AsyncTask類進(jìn)行多線程操作,在AsyncTask類中主要有 onPreExecute( )、doInBackground(Params… params)、onProgressUpdate(Progress… values)、onPostExecute(Result result)等方法。當(dāng)需要完成一些準(zhǔn)備工作時,首先調(diào)用 onPre-Execute( )方法;執(zhí)行的后臺任務(wù)均寫在 doInBackground(Params… params)中,publishProgress 調(diào)用onProgressUpdate(Progress… values),表示任務(wù)進(jìn)度更新;在后臺任務(wù)執(zhí)行完畢后,調(diào)用 onProgressUpdate(Progress… values)方法,參數(shù)為后臺任務(wù)返回結(jié)果。doInBackground(Params… params)方法由AsyncTask內(nèi)部線程池執(zhí)行,其它方法均在主線程中執(zhí)行。
本系統(tǒng)在Android 4.4.2環(huán)境下進(jìn)行開發(fā),采用Android Developer Tools集成開發(fā)工具進(jìn)行實現(xiàn),開發(fā)硬件平臺為CPU主頻2.5GHz、內(nèi)存8G,限于篇幅,只展示系統(tǒng)的部分界面,如圖3所示。
圖3 系統(tǒng)部分界面Fig.3 S ystem part interface
倉儲是現(xiàn)代物流業(yè)和制造業(yè)儲存貨物的重要場所,實現(xiàn)倉儲智能化是現(xiàn)代信息技術(shù)發(fā)展的必然要求[11-15]。隨著物聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)的快速發(fā)展,智能倉儲已經(jīng)逐步在大中型企業(yè)開始應(yīng)用。本文從系統(tǒng)體系結(jié)構(gòu)、系統(tǒng)設(shè)計、系統(tǒng)實現(xiàn)等環(huán)節(jié)進(jìn)行探索,實現(xiàn)了基于 Android的移動端智能倉儲平臺,經(jīng)過測試,系統(tǒng)性能達(dá)到了設(shè)計要求。
[1] 蔣玉芳. 基于Android的倉庫管理系統(tǒng)的設(shè)計與實現(xiàn)[J].科技廣場, 2017, (5): 49-52.
[2] 李光革, 苗建松. 基于Android的物聯(lián)網(wǎng)環(huán)境監(jiān)控應(yīng)用設(shè)計與實現(xiàn)[J]. 軟件, 2013, 34(9): 32-35.
[3] 杜曉萌, 唐碧華, 吳帆. 基于Android終端的物聯(lián)網(wǎng)物流管理系統(tǒng)的設(shè)計與實現(xiàn)[J]. 軟件, 2013, 34(12): 26-31.
[4] 曹小陽. 基于物聯(lián)網(wǎng)RFID技術(shù)的智能倉儲系統(tǒng)的設(shè)計與實現(xiàn)[J]. 現(xiàn)代信息科技, 2017, 1(5): 75-77.
[5] 陳燕. 基于云計算技術(shù)的智能倉儲管理系統(tǒng)設(shè)計與實現(xiàn)[J].自動化與儀器儀表, 2016, (11): 160-162.
[6] 賈興葦, 王丹志. 基于Android 的出租車智能管理系統(tǒng)的研究與設(shè)計[J]. 軟件, 2016, 37(1): 38-43.
[7] 郭鵬, 周俊, 胡慧. 智能倉儲管理系統(tǒng)的設(shè)計與實現(xiàn)[J].湖南工程學(xué)院學(xué)報, 2016, 26(3): 42-45.
[8] 蘇誠, 許朋剛, 代志良. 智能倉儲系統(tǒng)設(shè)計與開發(fā)應(yīng)用[J].機械, 2017, 44(10): 65-71.
[9] 王亞東, 雷靈光, 周健, 等. Android 移動設(shè)備管理系統(tǒng)的設(shè)計與實現(xiàn)[J]. 軟件, 2016, 37(2): 11-16.
[10] 葛俊峰, 戈華. 基于ZigBee無線傳輸技術(shù)的智能倉儲系統(tǒng)設(shè)計[J]. 內(nèi)蒙古師范大學(xué)學(xué)報(自然科學(xué)漢文版), 2015,44(1): 49-52.
[11] 李華忠, 梁永生. Android高級應(yīng)用編程實踐[M]. 北京: 中國鐵道出版社, 2015: 233-255.
[12] 鄭家宋, 孟瑋. 基于物聯(lián)網(wǎng)的煤礦智能倉儲與物流運輸管理系統(tǒng)設(shè)計與應(yīng)用[J]. 工礦自動化, 2015, 41(8): 108-111.
[13] 劉烈君. 基于云計算技術(shù)的智能倉儲管理系統(tǒng)設(shè)計研究[J].數(shù)字通信世界, 2016, (10): 11-13.
[14] 張曉諾. 基于Android 的智能家居環(huán)境監(jiān)測系統(tǒng)APP 設(shè)計與實現(xiàn)[J]. 軟件, 2015, 36(2): 77-79.
[15] 鄭開增. 智能倉儲管理系統(tǒng)[J]. 農(nóng)村電氣化, 2017, (7):37-38.