畢業(yè)論文企業(yè)考勤系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第1頁
畢業(yè)論文企業(yè)考勤系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第2頁
畢業(yè)論文企業(yè)考勤系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第3頁
畢業(yè)論文企業(yè)考勤系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第4頁
畢業(yè)論文企業(yè)考勤系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、2014屆畢業(yè)生畢業(yè)設(shè)計說明書題 目:企業(yè)考勤系統(tǒng)的設(shè)計與實(shí)現(xiàn)院系名稱:信息科學(xué)與工程學(xué)院專業(yè)班級:軟件工程11級01班 學(xué)生姓名:學(xué) 號:指導(dǎo)教師:教師職稱:講師2015年5月25日摘 要 荀子在勸學(xué)中曾說道:假輿馬者,非利足也,而致千里;假舟楫者,非能水也,而絕江河。君子生非異也,善假于物也?!?1世紀(jì),伴隨著科技的發(fā)展,計算機(jī)技術(shù)也得到了提高,電腦更是進(jìn)入了千家萬戶。聰明的君子學(xué)會利用電腦這個物來解決問題以達(dá)到性異的要求。 傳統(tǒng)的考勤方法無法科學(xué)有效地處理大量的人事考勤信息,考勤人員處理起來需要浪費(fèi)巨大的人力、物力。而且,得到的數(shù)據(jù)準(zhǔn)確度不高,存在一些水分。所以,我們需要利用計算機(jī)來開發(fā)

2、一個圖形簡單易于操作的考勤系統(tǒng),來幫助我們。 考勤管理系統(tǒng)關(guān)鍵字:物聯(lián)網(wǎng)、智能化、倉儲管理、RFID射頻識別技術(shù)、傳感器。 TitleIntelligentwarehouse management system based on Internet of thingsAbstractWith the progress of science and technology and the development ofintelligence,intelligent management has become more and more essential in the modern industri

3、al field, especially in large and medium-sized warehouse management system.The items would get mouldy due to the high or low temperature and humidity.The strength or weakness of light in warehouse would affect the storage of items.The cumbersome records for goods in and out of warehouse and real-tim

4、e video monitoring warehouse.Because of the above problems,if we use the original way of management,it would cost a lot of human and material resources.Moreover,the management of warehouse is becoming more and more difficult.So make the daily management of warehouse into intelligent gradually become

5、s a very important topic.This topic,taking the above problems as the starting point and based on IOT(Internet of Things), designs an intelligent warehouse management system.The system can not only collect the temperature,humidity,light intensity and the information of real-time monitoring in the war

6、ehouse,but also can real-time monitor the environment and information through the web.It could make corresponding processing quickly,display the results to the users timely,and storing data meantime for later contrast research. Another is to automatically identify goods in and out of the of the ware

7、house.In view of the existing problems in warehouse management, this research is mainly to combine the IOT,RFID,Operation of the sensor technology and real-time video monitoring technology.It was used in the management of warehouse,and built intelligent warehouse management system in order to realiz

8、e the intelligent management of the warehouse.This requires automatic recognition,wireless transmission function,real-time monitoring,and more support.And RFID, Zigbee,and the technology which take the embedded video on the web server as the core just solve the problems such as automatic identificat

9、ion,wireless transmission,real-time monitoring and other technical problems.The design and realization of the system and the analysis about the application in warehouse management system shows that IOT can improve the efficiency of warehouse management and meet the requirements of goods management,e

10、nvironmental monitoring and real-time monitoring.Keywords: Internet of things、Intelligence、Warehouse Management、RFID、Sensor.目錄摘要.IAbstract.II第一章緒論.11.1 研究背景11.2 研究目的和意義11.3 物聯(lián)網(wǎng)技術(shù)未來的發(fā)展2第二章開發(fā)工具和環(huán)境介紹.32.1 Linux C簡介.32.2 Sqlite數(shù)據(jù)庫簡介.32.3 Cortex-A8開發(fā)板簡介.32.4 Cortex-M0 開發(fā)板簡介.32.5 boa服務(wù)器簡介.32.6 Zigbee簡介32.

11、7 RFID簡介.4第三章系統(tǒng)需求分析和整體設(shè)計.53.1 問題的提出53.2 設(shè)計目標(biāo)53.3 系統(tǒng)功能描述63.4 系統(tǒng)性能指標(biāo)63.5 系統(tǒng)框架設(shè)計73.5.1 系統(tǒng)整體框架圖.73.5.2 每個子系統(tǒng)框架圖.83.5.3 業(yè)務(wù)流程圖.103.6 系統(tǒng)接口113.6.1 用戶接口.113.6.2 硬件接口.113.7 每個子系統(tǒng)模塊描述123.8 功能模塊設(shè)計與接口設(shè)計133.8.1 采集數(shù)據(jù)端主程序133.8.2 BEEP報警系統(tǒng)133.8.3 LED報警系統(tǒng).14攝像頭線程.15第四章詳細(xì)設(shè)計與實(shí)現(xiàn).164.1 服務(wù)器主控程序端詳細(xì)設(shè)計164.1.1 系統(tǒng)整體框架和線程間關(guān)系.164

12、.1.2 數(shù)據(jù)描述.184.1.3 數(shù)據(jù)庫操作.204.1.4 數(shù)據(jù)接收模塊.224.1.5 數(shù)據(jù)處理模塊.254.1.6 處理客戶請求模塊.274.1.7 蜂鳴器模塊304.1.8 LED模塊.314.1.9 攝像頭模塊.324.2 采集數(shù)據(jù)端的詳細(xì)設(shè)計.334.2.1 采集數(shù)據(jù)終端設(shè)備方案描述334.2.2 采集數(shù)據(jù)終端設(shè)備工作流程334.2.3 采集數(shù)據(jù)終端設(shè)備各模塊功能描述34附錄一 通信結(jié)構(gòu)體.38附錄二 服務(wù)器端與采集數(shù)據(jù)端通信指令.39結(jié) 論 40致 謝.41參 考 文獻(xiàn).42第一章 緒 論1.1研究背景在現(xiàn)代工業(yè)現(xiàn)場,智能化管理已經(jīng)變的越來越必不可少,特別是在大中型倉庫管理系統(tǒng)

13、中,面臨由于溫濕度過高或者過低物品發(fā)生發(fā)霉變質(zhì)、倉庫關(guān)照過強(qiáng)或過弱影響物品的存放、物品的進(jìn)入庫記錄繁瑣、以及要實(shí)時視頻監(jiān)控倉庫等問題,原有的管理方式都要耗費(fèi)大量的人力、物力來管理。所以要把倉庫的日常管理逐漸智能化,才能滿足現(xiàn)在客戶的需求。倉儲業(yè)可以分為人工、機(jī)械、自動和智能這四個階段的管理過程。受目前信息技術(shù)迅速發(fā)展的影響,科技技術(shù)、網(wǎng)絡(luò)工程和智能化逐漸成為倉儲管理行業(yè)的重要支柱,多種倉儲管理技術(shù)結(jié)合、倉儲的硬軟件綜合使用,逐漸減少了傳統(tǒng)倉儲管理的不利之處,促進(jìn)了現(xiàn)代化倉儲業(yè)的迅速發(fā)展。所以,要將物聯(lián)網(wǎng)用到倉儲管理中。2010年6月,我國工信部正式將物聯(lián)網(wǎng)納入“十二五”專題規(guī)劃,規(guī)劃指出,中國

14、物聯(lián)網(wǎng)將重點(diǎn)建設(shè)九大領(lǐng)域,其中就包括智能倉儲,倉儲管理的智能化發(fā)展,無論在學(xué)術(shù)研究還是企業(yè)應(yīng)用中,倉儲管理智能化都炙手可熱。1.2 研究目的和意義因?yàn)閭}儲管理在大多數(shù)行業(yè)中相當(dāng)高的重要性,所以提升它的管理水平和工作效益就是顯得很必要了,目前我國的倉儲行業(yè)存在相當(dāng)多的問題,如倉庫功能很單一,不能滿足客戶的多種需求;倉庫設(shè)備陳舊、落后,工作效率低下,倉儲管理基本處于人工管理或者是半自動管理狀態(tài),產(chǎn)品信息識別過程效率低,實(shí)時信息獲取困難、自動化程度很低、耗費(fèi)大量人力和物力等很多問題。而導(dǎo)致這些問題發(fā)生的根本原因是倉儲系統(tǒng)的現(xiàn)有架構(gòu)不能滿足功能需求。因此,為滿足社會發(fā)展對倉儲系統(tǒng)的要求,改變倉儲系統(tǒng)的

15、構(gòu)架模式,解決倉儲系統(tǒng)現(xiàn)有的問題是要解決的問題,本文基于物聯(lián)網(wǎng)對倉儲系統(tǒng)的的構(gòu)架進(jìn)行了研究,為系統(tǒng)的具體構(gòu)架和實(shí)現(xiàn)提供了一定的指導(dǎo)作用。1.3 物聯(lián)網(wǎng)技術(shù)未來的發(fā)展擁有最完整的物聯(lián)系列產(chǎn)品,物聯(lián)網(wǎng)技術(shù)將是推動世界很快發(fā)展的下一個重要動力。最近幾年物聯(lián)網(wǎng)已經(jīng)逐漸出現(xiàn)在我們的生活中,在未來幾年里,物聯(lián)網(wǎng)很可能會大規(guī)模普及,將廣泛運(yùn)用于智能交通、政府工作、環(huán)境保護(hù)、智能消防、工業(yè)監(jiān)測、老人護(hù)理、個人健康、公共安全、平安家居等多個領(lǐng)域,一個上萬億元規(guī)模的高科技市場就此誕生,構(gòu)建了“專業(yè)性強(qiáng)、技術(shù)優(yōu)、質(zhì)量好、成本低、滿足客戶需求”的綜合優(yōu)勢,持續(xù)為客戶提供有競爭力的產(chǎn)品和服務(wù)。第二章 開發(fā)工具和環(huán)境介紹

16、2.1 Linux C簡介Linux中也集成了大量的C語言的頭文件和函數(shù)實(shí)現(xiàn),為Linux下的C語言編寫提供的很大的方便。它類似與Unix操作系統(tǒng),Linux下C語言編程,常用編譯器一般用gcc,編輯器常用是VIM。2.2Sqlite數(shù)據(jù)庫簡介它提供了幾個C語言函數(shù)的接口,只需要通過這些接口來操作數(shù)據(jù)庫,數(shù)據(jù)庫可以建立很多的表等等,它是屬于文件型的數(shù)據(jù)庫。所以這些表其實(shí)就是一個文件。備份這個文件就備份了整個數(shù)據(jù)庫。而且不需要數(shù)據(jù)庫引擎,甚至不要安裝數(shù)據(jù)庫,就可以保存數(shù)據(jù)。2.3 Cortex-A8開發(fā)板簡介A8處理器,是基于ARMv7系列的,它是比較高級的ARM開發(fā)板,主要用在精確度要求比較高

17、的地方。2.4 Cortex-M0 開發(fā)板簡介在本項目中擔(dān)任采集數(shù)據(jù)終端設(shè)備,Cortex-M0是現(xiàn)有最節(jié)能的ARM處理器, 它采用了恩智浦的LPC11C14芯片,本芯片是一款32位處理器,主頻可以到50MHz。無論在抗干擾能力上,或者是處理數(shù)據(jù)的速度上還是在功耗上,它都很強(qiáng),它有足夠的能力能夠用來作為倉庫管理中的數(shù)據(jù)采集端設(shè)備。2.5 boa服務(wù)器簡介Boa服務(wù)器支持CGI,是開源的,主要運(yùn)行在linux系統(tǒng)下面的,是小型的嵌入式Web服務(wù)器。2.6 Zigbee簡介Zigbee是一種短距離無線通信技術(shù)。上層協(xié)議的為ZigBee協(xié)議棧了,功耗很低的個域網(wǎng)協(xié)議。由于強(qiáng)大的功能,迅速廣泛應(yīng)用于低

18、數(shù)據(jù)率監(jiān)控的各個領(lǐng)域,它具有高可靠性,網(wǎng)絡(luò)路由功能強(qiáng)大,低速率,低功耗,更具有恢復(fù)及冗余性能優(yōu)異等特點(diǎn)。主要適合用于自動控制和遠(yuǎn)程控制領(lǐng)域。 2.7 RFID簡介RFID,可以稱為射頻識別技術(shù),不需要讓射頻卡接觸特定目標(biāo),就可以讀取射頻卡里面的數(shù)據(jù)。第三章 系統(tǒng)需求分析和整體設(shè)計3.1 問題的提出隨著智能化的發(fā)展,而且伴隨物流業(yè)的發(fā)展,因此,越來越多的倉庫管理方面的問題就暴露出來了。特別是在大中型倉庫管理系統(tǒng)中,面臨由于溫濕度過高或者過低物品發(fā)生發(fā)霉變質(zhì)、倉庫關(guān)照過強(qiáng)或過弱影響物品的存放、物品的進(jìn)入庫記錄繁瑣、以及要實(shí)時視頻監(jiān)控倉庫等問題。原有的管理方式都要耗費(fèi)大量的人力、物力。通過系統(tǒng)的設(shè)計

19、與實(shí)現(xiàn),逐步解決以上所提到的問題。用戶可以不用進(jìn)入倉庫,僅僅通過網(wǎng)頁端就可以實(shí)時監(jiān)控倉庫的環(huán)境信息,而且通過報警的方式來提醒用戶,這樣既能在倉庫環(huán)境遇到異常的時候,及時作出相應(yīng)的反應(yīng),又能大大的減少倉儲管理中的人力、物力,為客戶節(jié)省開銷。3.2 設(shè)計目標(biāo)通過現(xiàn)有倉儲管理所遇到的問題,設(shè)計出一個智能的數(shù)據(jù)處理的物聯(lián)網(wǎng)設(shè)備,要實(shí)現(xiàn)的主要功能有:1、對倉庫的信息實(shí)時采集,例如溫濕度、光照、三軸加速度等等。2、觀察攝像頭采集到的圖片。3、采集數(shù)據(jù)段采集到的數(shù)據(jù)交付給服務(wù)器數(shù)據(jù)中心端,并使用sqlite數(shù)據(jù)庫進(jìn)行存儲,實(shí)現(xiàn)物聯(lián)網(wǎng)的基本功能,即,物與物的聯(lián)系的一起。4、服務(wù)器端對接到的采集數(shù)據(jù)二次處理之后

20、,發(fā)給采集數(shù)據(jù)段指令,并做出相應(yīng)的反應(yīng)。5、用戶通過網(wǎng)頁監(jiān)控倉庫環(huán)境,6、在管理頁面上設(shè)置按鈕,直接修改上下限的值,更改報警條件。7、貨物的進(jìn)出貨的的識別,并存入數(shù)據(jù)庫以便日后對比管理。3.3 系統(tǒng)功能描述本系統(tǒng)是基于A8服務(wù)器端、用戶PC端、M0采集數(shù)據(jù)端(以下再出現(xiàn)用M0來代替)三大塊組成,依托在互聯(lián)網(wǎng),物聯(lián)網(wǎng),傳感器等技術(shù)的基礎(chǔ)上編寫,以實(shí)現(xiàn)食品物聯(lián)網(wǎng)倉儲系統(tǒng),使用戶更方便的管理倉庫內(nèi)的所有信息以及應(yīng)急倉庫的特殊情況。M0終端采集環(huán)境信息,把打包并發(fā)送給A8, A8對數(shù)據(jù)第二次處理后,然后發(fā)給M0相應(yīng)控制命令,M0端實(shí)時接收A8發(fā)來的命令并解析。倉庫管理系統(tǒng)的相關(guān)信息包括如下內(nèi)容了,環(huán)境

21、信息包括有溫濕度、三軸加速度、光照強(qiáng)度,硬件設(shè)備信息有風(fēng)扇、蜂鳴器、LED燈、商品刷卡信息。客戶PC端通過網(wǎng)頁登錄到A8服務(wù)器上的boa服務(wù)器,遠(yuǎn)程看到倉庫的管理界面,能看到M0采集數(shù)據(jù)端傳到服務(wù)器的各種倉庫信息、以及直接實(shí)現(xiàn)在網(wǎng)頁上實(shí)時顯示倉庫的信息。在管理主頁上可以進(jìn)行功能操作:在管理頁面上看到到通過攝像頭看到倉庫的實(shí)時環(huán)境。在管理頁面上遠(yuǎn)程控制硬件設(shè)備。在管理頁面上屏蔽或開啟這些監(jiān)控功能。在管理頁面上設(shè)置終端的溫濕度以及光照強(qiáng)度上下限。在管理頁面上看到異常抓拍的照片。3.4 系統(tǒng)性能指標(biāo)傳感器精度要求傳感器的精度應(yīng)該滿足報警的需求。監(jiān)控系統(tǒng)安全性要求用戶通過身份驗(yàn)證進(jìn)入管理界面。靈活性要

22、有很好的可擴(kuò)展性,能夠隨意的增加監(jiān)控接節(jié)點(diǎn)數(shù)量,并將他們通過局域網(wǎng)聯(lián)系起來。系統(tǒng)安全性需求防止非授權(quán)用戶登錄,嚴(yán)格限制非授權(quán)用戶登錄管理,防止非授權(quán)用戶訪問。數(shù)據(jù)保存需求由于嵌入式設(shè)備上存儲空間容量有限,所以系統(tǒng)采集的圖片信息需要轉(zhuǎn)存到相應(yīng)的存儲設(shè)備上,比如SD卡等設(shè)備上,這樣用戶可以很方便查看以前事件的記錄,系統(tǒng)應(yīng)該提供相應(yīng)的接口,來實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)保存功能。3.5 系統(tǒng)框架設(shè)計3.5.1 系統(tǒng)整體框架圖 系統(tǒng)的整體框架圖如下圖3-1所示:圖3-1:系統(tǒng)框架圖3.5.2 每個子系統(tǒng)框架圖1、服務(wù)器端A8端的架構(gòu)圖如下圖3-2所示;圖3-2:A8服務(wù)器端架構(gòu)圖2、采集數(shù)據(jù)終端采集數(shù)據(jù)端發(fā)給服務(wù)器

23、端數(shù)據(jù)框架圖如下圖3-3所示;采集數(shù)據(jù)端接收服務(wù)器端發(fā)來的命令框架圖如下圖3-4所示;圖3-3:采集數(shù)據(jù)端發(fā)送給服務(wù)器數(shù)據(jù)圖圖3-4:采集數(shù)據(jù)端接收服務(wù)器指令圖3、用戶PC模塊PC工作架構(gòu)圖如圖3-5所示;圖3-5:PC工作架構(gòu)圖3.5.3 業(yè)務(wù)流程圖1、服務(wù)器主控程序流程圖主控程序業(yè)務(wù)流程圖如下圖3-6所示: 圖3-6:主控程序業(yè)務(wù)流程圖2、采集數(shù)據(jù)端主程序流程圖采集數(shù)據(jù)端主程序流程圖如下圖3-7所示:圖3-7:采集數(shù)據(jù)端業(yè)務(wù)流程圖3.6 系統(tǒng)接口 用戶接口遠(yuǎn)程用戶屏幕、菜單格式的要求,給用戶一個美觀、易操作的管理界面,用戶通過自己的用戶名和密碼,可以通過管理界面實(shí)時監(jiān)控倉庫的環(huán)境信息,并且

24、可以通過遠(yuǎn)程修改上下限,更改報警的條件。3.6.2 硬件接口應(yīng)用軟件的需求:(1)驅(qū)動程序:基于linux-2.6.3.5內(nèi)核版本的驅(qū)動程序。(2)數(shù)據(jù)庫類型:Sqlite。(3)WebServer類型: Boa服務(wù)器.。(4)Cgi程序:Cgi。(5)系統(tǒng)具備較好的可擴(kuò)充性,可以和各類應(yīng)用軟件實(shí)現(xiàn)無縫接口。(6)與應(yīng)用軟件的接口方式:通過模塊化設(shè)計。監(jiān)控設(shè)備硬件需求:(1)Cortex-M0、Cortex-A8、攝像頭、zigbee、溫濕度傳感器、光感應(yīng)器。用戶端硬件要求:(1)本地用戶:鍵盤外設(shè),音響。(2)遠(yuǎn)程用戶:一臺連接內(nèi)網(wǎng)的PC或移動設(shè)備,安裝IE或火狐瀏覽器。(3)通信接口:倉庫

25、內(nèi)各傳感器通過zigbee來與前端數(shù)據(jù)中心進(jìn)行硬件通信,因?yàn)閦igbee功耗低,較穩(wěn)定,更適合嵌入式設(shè)備。系統(tǒng)集成有網(wǎng)卡芯片,可以在局域網(wǎng)中對系統(tǒng)進(jìn)行相應(yīng)得設(shè)置以及監(jiān)控。3.7 每個子系統(tǒng)模塊描述1、服務(wù)器端模塊描述A8端是服務(wù)器主控程序端,是采集數(shù)據(jù)端和PC端的通信的樞紐,一部分用于網(wǎng)頁控制,對A8進(jìn)行控制,并給顯示用戶,另一部分負(fù)責(zé)與M0通訊,接收M0采集到的信息。所以服務(wù)器端主控程序是本系統(tǒng)的核心部分,主要分為三個部分,一部分為主程序部分;負(fù)責(zé)對M0和上層服務(wù),另一部分網(wǎng)頁和網(wǎng)頁控制部分,用戶通過WEB服務(wù)器,來訪問A8,向主程序發(fā)命令來控制。2、采集數(shù)據(jù)終端模塊描述采集數(shù)據(jù)端包括三個模

26、塊:RFID射頻模塊、ZigBee模塊、采集數(shù)據(jù)模塊。最主要的是采集數(shù)據(jù)端的操作各種傳感器模塊,對環(huán)境信息進(jìn)行采集,還有一個重要的RFID刷卡模塊,通過事先寫好的射頻卡,通過刷卡來實(shí)現(xiàn)倉庫的進(jìn)出貨物功能,刷卡之后,直接會將卡內(nèi)的信息讀出來,顯示到用戶網(wǎng)頁端。為了項目實(shí)時性能夠得到相應(yīng)的提高,整個數(shù)據(jù)采集端的程序中采用多個中斷,當(dāng)中斷發(fā)生時設(shè)置相應(yīng)的標(biāo)志位,主程序輪詢根據(jù)相應(yīng)的標(biāo)志位,來執(zhí)行相應(yīng)的程序系統(tǒng)時鐘中斷:實(shí)現(xiàn)2秒鐘發(fā)送一次環(huán)境信息數(shù)據(jù)。RFID中斷:有中斷來時讀取刷卡數(shù)據(jù),ZigBee中斷:有中斷時,讀數(shù)據(jù)。3、用戶PC模塊描述用戶可以通過網(wǎng)頁對倉庫信息進(jìn)行監(jiān)控,以及對硬件的控制,主要

27、通過嵌入式Web服務(wù)器,也就是boa網(wǎng)頁服務(wù)器對A8服務(wù)器端進(jìn)行控制,boa服務(wù)器自帶CGI程序處理功能,用戶可以通過網(wǎng)頁端,來運(yùn)行事先放進(jìn)服務(wù)器文件系統(tǒng)中的CGI程序,直接從網(wǎng)頁與CGI程序交互可以給A8服務(wù)器主程序發(fā)消息,并且來控制A8,并通過A8中的M0線程來得到M0端采集到的環(huán)境信息的動態(tài)數(shù)據(jù)的顯示。3.8 功能模塊設(shè)計與接口設(shè)計3.8.1 采集數(shù)據(jù)端主程序編碼內(nèi)容溫度傳感器、濕度傳感器、光照傳感器。輸入數(shù)據(jù)流線程溫度、濕度、光照。輸出數(shù)據(jù)流相關(guān)檢測值。功能描述檢測溫度濕度和光照傳感器的值。處理說明每隔2秒獲取當(dāng)前倉庫中是溫讀、濕度、光照和光照強(qiáng)度等信息,采集數(shù)據(jù)端傳遞采集值并封裝傳給

28、A8,A8判斷數(shù)據(jù)然后返回相應(yīng)的指令,比如打開蜂鳴器,led燈、或者打開風(fēng)扇等等。BEEP報警系統(tǒng)編碼內(nèi)容蜂鳴器及外設(shè)音響編碼。輸入數(shù)據(jù)流倉庫環(huán)境出現(xiàn)異常(著火)時,開啟蜂鳴器報警設(shè)備。輸出數(shù)據(jù)流蜂鳴器報警led燈亮提示代表有異常。功能描述通過S5PC100開發(fā)板蜂鳴器來模擬報警系統(tǒng),完成相應(yīng)的報警功能。處理說明1、驅(qū)動程序的加載編寫驅(qū)動程序,插入到內(nèi)核,加載驅(qū)動程序。2、創(chuàng)建設(shè)備節(jié)點(diǎn)用mkmod命令創(chuàng)建設(shè)備節(jié)點(diǎn),根據(jù)設(shè)備號來確定。3、測試首先交叉編譯測試程序,在開發(fā)板上執(zhí)行主程序可執(zhí)行程序,可以通過改變溫度傳感器的溫度值或者按鍵來測試是否能開啟報警功能。4、當(dāng)你聽到報警提示時,可在網(wǎng)頁上點(diǎn)擊

29、關(guān)閉報警,即可可關(guān)閉蜂鳴器。3.8.3 LED報警系統(tǒng)編碼內(nèi)容LED驅(qū)動編碼。輸入數(shù)據(jù)流LED對應(yīng)的開關(guān)打開/關(guān)閉。輸出數(shù)據(jù)流需要控制的LED亮/滅。功能描述通過led燈來模擬倉庫燈具,完成控制燈具開閉的功能。處理說明1、LED燈驅(qū)動的注冊將LED驅(qū)動以模塊的形式插入到linux內(nèi)核之中,完成設(shè)備注冊,并得到相應(yīng)的主設(shè)備號。2、創(chuàng)建設(shè)備節(jié)點(diǎn)完成LED驅(qū)動的注冊之后,用mknod創(chuàng)建鍵盤的設(shè)備節(jié)點(diǎn)。3、測試在開發(fā)板上運(yùn)行測試LED驅(qū)動,觀察能否控制LED4、編寫LED控制線程將LED控制線程以消息隊列的形式來接收命令并控制LED燈的亮滅。3.8.4攝像頭線程編碼內(nèi)容攝像頭編碼。輸入數(shù)據(jù)流LED對

30、應(yīng)的開關(guān)打開/關(guān)閉。輸出數(shù)據(jù)流得到的圖片,保存在相應(yīng)日期目錄下。功能描述如果有人闖入,或其他異?,F(xiàn)象,抓拍現(xiàn)場照片,并把圖片保存在相應(yīng)的目錄中,圖片格式為jpg。網(wǎng)絡(luò)視頻功能。處理說明1、獲取驅(qū)動程序2、配置Linux內(nèi)核3、通過make menuconfig配置Linux內(nèi)核,讓內(nèi)核支持?jǐn)z像頭。4、編譯內(nèi)核通過make zImage,編譯內(nèi)核,并下載到開發(fā)板上運(yùn)行。5、將USB攝像頭接到開發(fā)板上這個時候就攝像頭就能被驅(qū)動了。通過按鍵產(chǎn)生中斷來檢測是否可以拍照片。6、如果有火災(zāi)發(fā)生,或者有不法分子闖入(用按鍵來模擬紅外線報警系統(tǒng)),那么系統(tǒng)程序通過system函數(shù)調(diào)用攝像頭應(yīng)用程序來進(jìn)行捕捉照

31、片,連續(xù)拍幾張張并保存到指定位置。第四章 詳細(xì)設(shè)計與實(shí)現(xiàn)4.1 服務(wù)器主控程序端詳細(xì)設(shè)計4.1.1 系統(tǒng)整體框架和線程間關(guān)系1、系統(tǒng)整體框架(1)通過采集數(shù)據(jù)端采集倉庫的環(huán)境信息和刷卡信息。(2)采集到的數(shù)據(jù)再通過ZigBee,把采集到的信息發(fā)送給服務(wù)器端;(3)主控程序的采集數(shù)據(jù)端線程來接收環(huán)境信息,并激活數(shù)息進(jìn)行處理并發(fā)給采集數(shù)據(jù)端命令,用來控制采集數(shù)據(jù)終端;(4)攝像頭安裝到服務(wù)器上面用來采集圖片,并存儲到服務(wù)器下的某一個定義好的文件夾下面;(5)通過在服務(wù)器上安裝boa網(wǎng)頁服務(wù)器,從而搭建嵌入式web服務(wù)器,使用戶通過網(wǎng)絡(luò)利用自己的計算機(jī)就能機(jī)進(jìn)行隨時的監(jiān)控;(6)在網(wǎng)頁頁面上設(shè)置控制

32、按鈕,比如說,設(shè)置最高或最低溫濕度和光照值按鍵,關(guān)掉報警按鈕。用來監(jiān)控設(shè)備,并識別用戶指令并進(jìn)行相應(yīng)動作;2、線程間關(guān)系服務(wù)器主控程序線程之間的關(guān)系框架圖如下圖4-1所示:圖4-1:服務(wù)器主控線程之間的關(guān)系構(gòu)架圖服務(wù)器主控程序中用到如下線程,分別編寫成不同的.c文件。Main.c:主線程.Pthread_msg.c:處理消息隊列里請求的線程.pthread_refresh.c:更新共享內(nèi)存里的實(shí)時數(shù)據(jù).pthread_sqlite.c:數(shù)據(jù)庫操作線程.pthread_transfer.c:接收采集數(shù)據(jù)端數(shù)據(jù)線程.pthread_analysis.c:采集數(shù)據(jù)端數(shù)據(jù)分析線程.pthread_ua

33、rt_snd.c:采集數(shù)據(jù)端控制命令發(fā)送線程.pthread_buzzer.c:服務(wù)器蜂鳴器控制線程.pthread_led.c:服務(wù)器LED模塊線程.pthread_infrared.c:紅外(按鍵模擬)監(jiān)測線程.pthread_camera.c:攝像頭模塊控制線程.4.1.2 數(shù)據(jù)描述1、結(jié)構(gòu)體描述,如表4-1所示: 表4-1:結(jié)構(gòu)體描述結(jié)構(gòu)體名成員類型成員名功能描述storage_goods_infounsigned chargoods_type物品類型unsigned intgoods_count物品數(shù)量storage_infounsigned charstorage_status倉庫

34、開關(guān)狀態(tài)led_status倉庫LED狀態(tài)buzzer_status倉庫Buzzer狀態(tài)fan_status倉庫風(fēng)扇狀態(tài)signed charx倉庫采集端三軸狀態(tài)yzcharsamplingTime20采集數(shù)據(jù)的時間floattemperature倉庫當(dāng)前溫度temperatureMAX倉庫溫度上限temperatureMIN倉庫溫度下限humidity倉庫當(dāng)前濕度humidityMAX倉庫濕度上限humidityMIN倉庫濕度下限illumination倉庫當(dāng)前光照illuminationMAX倉庫光照上限illuminationMIN倉庫光照下限battery倉庫采集端電池電壓storag

35、e_goods_infogoods_infoSIZE采集貨物信息env_info_clien_addrstorage_infostorage_noSTORAGE_NUM所以倉庫實(shí)時信息msglongtype消息隊列里的消息類型2、部分全局變量描述,如表4-2所示: 表4-2:部分全局變量描述類型變量名作用pthread_cond_tcond_sqlite數(shù)據(jù)庫線程被喚醒條件變量cond_analysis數(shù)據(jù)分析線程被喚醒條件變量cond_uart_cmdM0控制命令發(fā)送線程被喚醒條件變量cond_client_request處理消息隊列里請求的線程被喚醒條件變量cond_infrared紅外(

36、按鍵模擬)監(jiān)測線程被喚醒條件變量cond_buzzerA8蜂鳴器控制線程被喚醒條件變量cond_ledA8LED模塊線程被喚醒條件變量cond_camera攝像頭模塊控制線程被喚醒條件變量cond_refresh更新共享內(nèi)存里的實(shí)時數(shù)據(jù)被喚醒條件變量pthread_mutex_tmutex_slinklist數(shù)據(jù)庫緩存互斥鎖mutex_sqlite數(shù)據(jù)庫線程互斥鎖mutex_analysis數(shù)據(jù)分析線程互斥鎖mutex_uart_cmdM0控制命令發(fā)送線程互斥鎖mutex_client_request處理消息隊列里請求的線程互斥鎖mutex_buzzerA8蜂鳴器控制線程互斥鎖mutex_le

37、dA8LED模塊線程互斥鎖mutex_camera攝像頭模塊控制線程互斥鎖4.1.3 數(shù)據(jù)庫操作4.1.3.1 數(shù)據(jù)庫模塊流程圖及結(jié)構(gòu)圖 1、sqlite數(shù)據(jù)庫流程圖程序中各個任務(wù)線程開始運(yùn)行之前,主控制程序已經(jīng)開始運(yùn)行了,數(shù)據(jù)庫的pthread_sqlite線程就在其中。用于存對數(shù)據(jù)庫操作的鏈表是由pthread_sqlite線程創(chuàng)建的,鏈表創(chuàng)建之后,立刻進(jìn)入while循環(huán)。循環(huán)過程當(dāng)中,pthread_cond_wait函數(shù)不做任何事情,進(jìn)行睡眠等待,等待喚醒函數(shù)pthread_cond_signal出現(xiàn)喚醒信號,喚醒之后再次進(jìn)入while循環(huán),循環(huán)過程中,還要判斷鏈表頭是不是為空。如果鏈

38、表頭不為空,則讀取第一個節(jié)點(diǎn)的內(nèi)容,把第一個節(jié)點(diǎn)中的內(nèi)容拿出來,把拿出來的內(nèi)容作為參數(shù)傳到sqlite_task函數(shù)中,數(shù)據(jù)庫操作完成之后并釋放節(jié)點(diǎn),如此一直循環(huán)下去;如果鏈表頭為空,則直接跳出循環(huán),等待其他線程下一次對它喚醒,數(shù)據(jù)庫操作流程圖如圖5-2所示:圖4-2:數(shù)據(jù)庫操作流程圖2、sqlite_task數(shù)據(jù)庫操作結(jié)構(gòu)圖在pthread_sqlite線程流程圖中,用到數(shù)據(jù)庫操作函數(shù)sqlite_task函數(shù)。用來讀完節(jié)點(diǎn)信息的數(shù)據(jù)庫操作。對數(shù)據(jù)庫的操作主要;讀取sqlite_operation中的成員變量來完成的。通過sqlite_operation中的table_select_mask

39、來判斷對數(shù)據(jù)庫中的哪個表進(jìn)行操作是的,通過下圖三個結(jié)構(gòu)體成員來判斷,例如,更新、查看、插入等操作。如下圖4-3所示:圖4-3:sqlite_task()結(jié)構(gòu)圖4.1.3.1 數(shù)據(jù)庫表數(shù)據(jù)庫表一,如表4-3所示:表4-3:倉庫環(huán)境表temperatureMax溫度最大值當(dāng)環(huán)境溫度大于最大值,需要發(fā)送報警信號temperatureMin溫度最小值當(dāng)環(huán)境溫度小于最小值,需要發(fā)送報警信號humidityMax濕度最大值當(dāng)環(huán)境濕度大于最大值,需要發(fā)送報警信號humidityMin濕度最小值當(dāng)環(huán)境濕度小于最小值,需要發(fā)送報警信號illuminationMax光照強(qiáng)度最大值當(dāng)環(huán)境光照強(qiáng)度大于最大值,需要發(fā)送

40、報警信號illuminationMin光照強(qiáng)度最小值當(dāng)環(huán)境光照強(qiáng)度小于最小值,需要發(fā)送報警信號username姓名倉庫管理者姓名password密碼進(jìn)入倉庫時的,需要密碼驗(yàn)證數(shù)據(jù)庫表二,如表1-4所示:表4-4:倉庫溫濕度表temperatureVal環(huán)境溫度值這個一個實(shí)時數(shù)據(jù),1秒采集一次humidityVal環(huán)境濕度值這個一個實(shí)時數(shù)據(jù),1秒采集一次illuminationVal環(huán)境光照強(qiáng)度值這個一個實(shí)時數(shù)據(jù),1秒采集一次envTime采集環(huán)境溫度的時間采集環(huán)境溫度的時候,保存采集時間,方便管理者進(jìn)行數(shù)據(jù)分析數(shù)據(jù)庫表三,如表4-5所示:表4-5:倉庫貨物表goodsId貨物編號貨物編號,是貨

41、物的唯一標(biāo)識goodsCount貨物數(shù)量倉庫中所有貨物的數(shù)量goodsTime貨物入庫時間記錄貨物入庫的時間4.1.4 數(shù)據(jù)接收模塊1、功能描述用來接收采集數(shù)據(jù)端通過Zigbee無線傳輸設(shè)備傳輸過來的消息,經(jīng)過服務(wù)器端接收端的Zigbee模塊,再通過USB轉(zhuǎn)串口技術(shù),而線程負(fù)責(zé)從串口讀取消息,并經(jīng)過判斷時候把消息再傳給數(shù)據(jù)處理模塊,此線程并繼續(xù)從串口接收消息。2、數(shù)據(jù)描述表4-6:數(shù)據(jù)接收端數(shù)據(jù)描述類型名稱功能Intdev_uart_fd串口文件描述符linklistlinkHead數(shù)據(jù)緩存鏈表頭pthread_cond_tcond_analysis數(shù)據(jù)處理模塊喚醒條件變量pthread_mu

42、tex_tmutex_linklist數(shù)據(jù)緩存保護(hù)互斥鎖3、流程圖數(shù)據(jù)接收模塊流程圖如下圖4-4所示:圖4-4:數(shù)據(jù)接收流程圖4、詳細(xì)說明serial_init來進(jìn)行串口的初始化;然后該線程通過read串口進(jìn)行睡眠,如果有數(shù)據(jù)傳過來,就從該串口里把數(shù)據(jù)讀出來,并判斷數(shù)據(jù)包的head是否正確,如果head正確,那么就把數(shù)據(jù)讀出來,加入數(shù)據(jù)鏈表緩存.讀串口的詳細(xì)過程如下所示:#include link_list.h#include data_global.h#define LEN_ENV 20#define LEN_RFID 4extern int dev_uart_fd;extern linkl

43、ist linkHead;extern pthread_cond_t cond_analysis;extern pthread_mutex_t mutex_linklist;void serial_init(int fd)struct termios options;tcgetattr(fd, &options); /讀取終端參數(shù)options.c_cflag |= ( CLOCAL | CREAD ); /忽略調(diào)制調(diào)解器線路狀態(tài),使用接收器options.c_cflag &= CSIZE; /清目前字符長度options.c_cflag &= CRTSCTS; /不實(shí)用RTS/CTS流控制o

44、ptions.c_cflag |= CS8; /字符長度設(shè)置為8options.c_cflag &= CSTOPB; /設(shè)置1個標(biāo)志位options.c_iflag |= IGNPAR; /允許輸入奇偶校驗(yàn)options.c_iflag &= (ICRNL | IXON); /回車不轉(zhuǎn)為換行options.c_oflag = 0;options.c_lflag = 0;cfsetispeed(&options, B115200); /設(shè)置波特率為115200cfsetospeed(&options, B115200);tcsetattr(fd,TCSANOW,&options); /設(shè)置終端參

45、數(shù)4.1.5 數(shù)據(jù)處理模塊1、功能描述數(shù)據(jù)接收線程接收到數(shù)據(jù)處理之后,激活數(shù)據(jù)處理模塊,用來處理接收到的信息,接收到的信息是規(guī)律規(guī)定的,所以本模塊對數(shù)據(jù)解析后,激活數(shù)據(jù)庫線程保存數(shù)據(jù),激活內(nèi)存刷新數(shù)據(jù),更新實(shí)時環(huán)境信息,并判斷是否正常,不正常,則要激活向采集數(shù)據(jù)端發(fā)送命令的線程,發(fā)送命令。2、數(shù)據(jù)描述表4-7:數(shù)據(jù)處理模塊數(shù)據(jù)描述結(jié)構(gòu)體名成員類型成員名稱功能struct getEnvMsgunsigned chartem2溫度hum2濕度x三軸yzunsigned intill光照battery電池電壓比例struct getGoodsMsgunsigned chario進(jìn)出標(biāo)志goodsno

46、貨物編號goodsnum貨物數(shù)量類型名稱功能linklistlinkHead數(shù)據(jù)緩存鏈表頭,用來讀取數(shù)據(jù)slinkHead數(shù)據(jù)庫數(shù)據(jù)緩存鏈表頭,用來插入數(shù)據(jù)類型pthread_mutex_t名稱功能mutex_linklist數(shù)據(jù)緩存鏈表互斥鎖mutex_analysis數(shù)據(jù)處理線程互斥鎖mutex_global實(shí)時倉庫信息數(shù)據(jù)互斥鎖mutex_buzzer蜂鳴器模塊互斥鎖pthread_cond_tcond_analysis數(shù)據(jù)處理模塊被喚醒條件變量cond_sqlite數(shù)據(jù)庫模塊被喚醒條件變量cond_refresh內(nèi)存刷新線程被喚醒條件變量cond_buzzer蜂鳴器模塊喚醒條件變量ch

47、artem_alarm_statusSTORAGE_NUM各倉庫溫度是否超標(biāo)標(biāo)志位hum_alarm_statusSTORAGE_NUM各倉庫溫度是否超標(biāo)標(biāo)志位ill_alarm_statusSTORAGE_NUM各倉庫光照是否超標(biāo)標(biāo)志位beep_statusSTORAGE_NUMA8主蜂鳴器狀態(tài)標(biāo)志位intmsgid消息隊列號dev_buzzer_mask蜂鳴器模塊操作標(biāo)志位struct env_info_clien_addrall_info_RT實(shí)時環(huán)境信息全局變量3、流程圖數(shù)據(jù)處理模塊流程圖如下圖4-5所示:圖4-5:數(shù)據(jù)處理模塊流程圖4、詳細(xì)說明在數(shù)據(jù)處理線程中,進(jìn)行了以下大量的工作,

48、例如,對接到數(shù)據(jù)的解析、激活數(shù)據(jù)庫線程、設(shè)置倉庫設(shè)備的標(biāo)志位等等,并對數(shù)據(jù)進(jìn)行檢查,還對接收的數(shù)據(jù)進(jìn)行異常檢查,如果超過臨界值,則發(fā)命令給底層數(shù)據(jù)采集端,主要功能代碼見pthread_analysis.c:采集數(shù)據(jù)端數(shù)據(jù)分析線程.4.1.6 處理客戶請求模塊1、功能描述接收網(wǎng)頁和其他線程檢測到的異常,并發(fā)送設(shè)備控制請求的線程。2、數(shù)據(jù)描述表4-8:處理客戶端請求模塊數(shù)據(jù)描述結(jié)構(gòu)體名稱成員類型成員名稱功能struct setEnvinttemMAX溫度上限temMIN溫度下限humMAX濕度上限humMIN濕度下限illMAX光感上限illMIN光感下限數(shù)據(jù)類型數(shù)據(jù)名稱功能unsigned ch

49、ardev_led_maskled設(shè)備操作掩碼dev_camera_mask攝像頭設(shè)備操作掩碼dev_buzzer_mask蜂鳴器設(shè)備操作掩碼dev_uart_mask串口發(fā)送命令掩碼pthread_cond_tcond_ledLED設(shè)備被喚醒條件變量cond_camera攝像頭設(shè)備被喚醒條件變量cond_buzzer蜂鳴器設(shè)備被喚醒條件變量cond_refresh內(nèi)存刷新線程被喚醒條件變量cond_uart_cmd串口發(fā)送命令線程被喚醒條件變量cond_sqlite數(shù)據(jù)庫線程被喚醒條件變量pthread_mutex_t數(shù)據(jù)類型pthread_mutex_tmutex_global倉庫實(shí)時信息變量保護(hù)互斥鎖mutex_uart_cmd串口發(fā)送命令模塊互斥鎖數(shù)據(jù)名稱功能mutex_ledLED模塊互斥鎖mutex_buzzer蜂鳴器模塊互斥鎖mutex_camera攝像頭模塊互斥鎖mutex_slinklist數(shù)據(jù)庫數(shù)據(jù)緩存鏈表互斥鎖intmsgid消息隊列ID3、流程圖處理客戶請求模塊流程圖如圖4-6所示:圖4-6:處理客戶請求模塊流程圖4、詳細(xì)說明本模塊主要是對硬件設(shè)備的操作,主要接收從消息隊列里的請求,包括服務(wù)器端與數(shù)據(jù)采集端上的硬件資源的操作,并且能接收CGI網(wǎng)頁端修改倉庫環(huán)境信息的各種最大和最小值,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論