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