嵌入式Web技術(shù)在智能溫室監(jiān)控系統(tǒng)中的應(yīng)用
智能溫室監(jiān)控系統(tǒng)是近年來發(fā)展起來的節(jié)約型設(shè)施農(nóng)業(yè)技術(shù),通過計算機綜合控制,在充分利用自然資源的基礎(chǔ)上,調(diào)節(jié)溫度、濕度、光照強度等環(huán)境因素來獲得作物生長的最佳條件,從而達到提高作物產(chǎn)量、改善品質(zhì)、增加經(jīng)濟效益的目的。嵌入式系統(tǒng)與Intemet技術(shù)的結(jié)合是當(dāng)今發(fā)展的趨勢,如何將嵌入式產(chǎn)品與Internet連接起來實現(xiàn)室內(nèi)設(shè)備的統(tǒng)一監(jiān)控與管理,通過Internet實現(xiàn)對設(shè)備行為的訪問與交互是目前研究的熱點。本文提出一種基于嵌入式Web技術(shù)的智能溫室監(jiān)控系統(tǒng)設(shè)計方案,系統(tǒng)以嵌入式處理器作為上位機,通過構(gòu)建嵌入式Web服務(wù)器,借助CGI(Common Gateway Interface)技術(shù)控制中心與嵌入式Web服務(wù)器端之間的動態(tài)數(shù)據(jù)交互,來滿足嵌入式設(shè)備直接與Internet聯(lián)網(wǎng)的要求,使管理者可以不受空間限制,通過Internet利用Web瀏覽器完成對設(shè)備的遠程訪問、監(jiān)控和維護等操作。
本文引用地址:http://2s4d.com/article/148913.htm1 系統(tǒng)總體設(shè)計
本設(shè)計基于ARM9開發(fā)平臺,構(gòu)建嵌入式開發(fā)環(huán)境,裁剪移植Linux操作系統(tǒng)。系統(tǒng)采用嵌入式Web服務(wù)器對設(shè)備進行功能配置,利用溫度、濕度、光照強度傳感器采集數(shù)據(jù),采用嵌入式數(shù)據(jù)庫對監(jiān)測數(shù)據(jù)進行分析和存儲。系統(tǒng)通過控制程序協(xié)調(diào)溫室參數(shù),并對控制參數(shù)進行監(jiān)測,從而為溫室中的作物提供最佳的生長環(huán)境。
嵌入式網(wǎng)絡(luò)監(jiān)控系統(tǒng)分客戶端主機和現(xiàn)場嵌入Web服務(wù)器智能監(jiān)控設(shè)備兩部分,監(jiān)控系統(tǒng)的結(jié)構(gòu)如圖1所示。
客戶端主機通過瀏覽器與Web服務(wù)器交互式處理數(shù)據(jù),從而實現(xiàn)對網(wǎng)絡(luò)智能設(shè)備的遠程監(jiān)控。其中嵌入式Web服務(wù)器和監(jiān)控端位于溫室現(xiàn)場,監(jiān)控端完成對溫室環(huán)境參數(shù)(溫度、濕度、等數(shù)據(jù))的采集,并將采集結(jié)果存入數(shù)據(jù)庫,通過CGI技術(shù),管理人員通過網(wǎng)絡(luò)便可了解溫室內(nèi)環(huán)境情況。系統(tǒng)采用Boa作為嵌入式Web服務(wù)器,負責(zé)監(jiān)控、接收和分析用戶請求,傳送靜態(tài)頁面和調(diào)用后臺CGI(Common Gate Interface)程序。
2 系統(tǒng)硬件設(shè)計
為了保證系統(tǒng)的實用性和可擴展性,系統(tǒng)選用Samsung公司的S3C2440A作為CPU處理器,S3C2440A帶有豐富的外圍接口,是一款高性價比的ARM核SoC芯片,工作頻率最高可達400 MHz。系統(tǒng)硬件結(jié)構(gòu)如圖2所示。
系統(tǒng)配置有內(nèi)存大小為64 M的SDRAM和128 M的Nand Flash。外接320x240的LCD觸摸屏,實現(xiàn)本地用戶人機接口,進行設(shè)備管理,通過USB接口連接攝像頭,完成溫室環(huán)境的圖像采集;通過DM9000外擴以太網(wǎng)接口實現(xiàn)與無線局域網(wǎng)設(shè)備的連接和Interact的連接。另外,系統(tǒng)還擴展有RS485接口,可用于系統(tǒng)的擴展,通過布線連接相應(yīng)的設(shè)備。
3 系統(tǒng)軟件設(shè)計
整個系統(tǒng)軟件結(jié)構(gòu)如圖3所示,數(shù)據(jù)采集程序通過數(shù)據(jù)采集設(shè)備(傳感器、攝像頭等)按照用戶預(yù)先設(shè)定的參數(shù)周期性的下發(fā)查詢命令,將采集到的結(jié)果寫入SQLite數(shù)據(jù)庫,監(jiān)控人員使用瀏覽器通過Web服務(wù)器(Boa)管理和維護系統(tǒng)。
網(wǎng)絡(luò)服務(wù)程序由嵌入式Web服務(wù)器和CGI腳本程序兩部分組成:服務(wù)器通過監(jiān)聽80端口,監(jiān)聽來自網(wǎng)絡(luò)的用戶請求,如有用戶請求,則啟動相應(yīng)的CGI腳本程序,將請求信息轉(zhuǎn)化為服務(wù)器可以識別的數(shù)據(jù)格式,從SQLite數(shù)據(jù)庫中讀出所需的信息,再由CGI程序?qū)⑿畔⑥D(zhuǎn)化為Web瀏覽器能夠識別的格式,作為HTTP應(yīng)答消息回送客戶端顯示。CGI腳本程序完成的功能主要包括:配置、查詢設(shè)備相關(guān)信息及查詢設(shè)備告警信息等。
3.1 嵌入式Linux操作系統(tǒng)
用于嵌入式系統(tǒng)中的操作系統(tǒng)很多,如Linux,Vxworks,Windows CE等。相比而言,Linux兼容POSIX1003.1標(biāo)準(zhǔn),支持多線程、多任務(wù)系統(tǒng)且具有源碼公開、完全免費和廣泛的移植性等特點,使用更加靈活。同時具有強大而穩(wěn)定的網(wǎng)絡(luò)功能和完善的開發(fā)工具,支持TCP/IP協(xié)議棧,可提供FTP、TELNET等服務(wù),同時還可以通過應(yīng)用程序向其他系統(tǒng)提供服務(wù)。因此,選擇Linux 2.6.32作為嵌入式操作系統(tǒng)。
3.2 交叉編譯Boa
本系統(tǒng)采用盡可能簡單的嵌入式Web服務(wù)器,即Boa,能夠?qū)崿F(xiàn)HTTP1.1協(xié)議的基本內(nèi)容,支持CGI,支持認證,是一個單任務(wù)的HTTP服務(wù)器,Boa體積小,只有幾十kB。交叉編譯工具使用的是arm-linux-gcc4.3.2。
1)下載Boa源碼包boa-0.94.13targz,解壓后,在boa-0.94.13\src目錄下運行#/configure命令生成Makefile文件。
2)修改Makefile文件,其中:CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-linux-。
3)運行#make命令,生成可執(zhí)行程序boa,運行#/usr/loeal/arm/4.3. 2/bin/arm-linux-strip boa命令刪除調(diào)試信息。
3.3 嵌入式數(shù)據(jù)庫的移植
Sqlite數(shù)據(jù)庫對嵌入式來說是一個很好的數(shù)據(jù)庫引擎,可有力地減小應(yīng)用程序管理數(shù)據(jù)的開銷。具體的移植過程:
1)在Sqlite的官網(wǎng)下載linux版本的Sqlite3.6.23,解壓sqiite-amalgamation-3.6.23.tar.gz并進入sqlite-3.6.23目錄。
2)mkdir build在sqlite3.6.23目錄內(nèi)建立編譯文件夾并進入,Sqlite的編譯就在這個文件夾內(nèi)進行。
3)../configure--host=srm-linux--prefix=/usr/local/sqlite3選定編譯器為arm-linux-gcc,并指定安裝目錄為/usr/local/sqlite3,這個路徑是可以根據(jù)自己的需要進行修改。
4)make make install安裝成后在sqfie3目錄下生成bin、include、lib三個文件夾,分別為可執(zhí)行文件,頭文件與庫文件,由于采用動態(tài)編譯,所以生成的庫是動態(tài)庫,將它們復(fù)制到系統(tǒng)的相應(yīng)文件夾下。此時,就可以在目標(biāo)板上運行sqlite3。
3.4 CGI程序的設(shè)計
CGI定義Web服務(wù)器與用戶之間訪問與執(zhí)行程序的標(biāo)準(zhǔn)接口,它使瀏覽器和Web服務(wù)器之間具有交互性。圖4表明了本系統(tǒng)中瀏覽器、Web服務(wù)器和CGI程序之間的關(guān)系。
當(dāng)客戶通過瀏覽器訪問Web服務(wù)器時,瀏覽器與Web服務(wù)器建立TCP連接并發(fā)送HTTP請求,Web服務(wù)器收到HTTP請求后,分析請求內(nèi)容,如果為靜態(tài)文檔請求,則直接返回該請求的結(jié)果,如果是CGI請求,則Web服務(wù)器把該請求通過環(huán)境變量、命令行參數(shù)或標(biāo)準(zhǔn)輸入的方式傳給指定的CGI程序,同時接管這個CGI程序的標(biāo)準(zhǔn)輸出,CGI程序進行相應(yīng)的信息處理后,將處理結(jié)果以HTML形式的文件送到標(biāo)準(zhǔn)輸出,Web服務(wù)器在CGI程序輸出的內(nèi)容上附加一些頭標(biāo)信息和狀態(tài)行,然后把結(jié)果送回瀏覽器。
評論