當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]嵌入式Web技術在智能溫室監(jiān)控系統(tǒng)中的應用

摘要:探討了基于Linux的嵌入式Web Server系統(tǒng)在溫室設備監(jiān)控系統(tǒng)中的應用。提出一種基于嵌入式和Web技術的溫室設備監(jiān)控系統(tǒng)方案,使管理者可以通過Intemet利用Web瀏覽器完成對遠程設備的訪問、監(jiān)控和維護等操作,無需安裝特定軟件,具有跨平臺性,有效解決利用有限資源實現(xiàn)設備的網(wǎng)絡接入問題。實際運行效果表明該系統(tǒng)具有良好的穩(wěn)定性與實時性,具有實際應用和推廣價值。
關鍵詞:嵌入式Web;智能溫室;監(jiān)控系統(tǒng);CGI

    智能溫室監(jiān)控系統(tǒng)是近年來發(fā)展起來的節(jié)約型設施農(nóng)業(yè)技術,通過計算機綜合控制,在充分利用自然資源的基礎上,調節(jié)溫度、濕度、光照強度等環(huán)境因素來獲得作物生長的最佳條件,從而達到提高作物產(chǎn)量、改善品質、增加經(jīng)濟效益的目的。嵌入式系統(tǒng)與Intemet技術的結合是當今發(fā)展的趨勢,如何將嵌入式產(chǎn)品與Internet連接起來實現(xiàn)室內設備的統(tǒng)一監(jiān)控與管理,通過Internet實現(xiàn)對設備行為的訪問與交互是目前研究的熱點。本文提出一種基于嵌入式Web技術的智能溫室監(jiān)控系統(tǒng)設計方案,系統(tǒng)以嵌入式處理器作為上位機,通過構建嵌入式Web服務器,借助CGI(Common Gateway Interface)技術控制中心與嵌入式Web服務器端之間的動態(tài)數(shù)據(jù)交互,來滿足嵌入式設備直接與Internet聯(lián)網(wǎng)的要求,使管理者可以不受空間限制,通過Internet利用Web瀏覽器完成對設備的遠程訪問、監(jiān)控和維護等操作。

1 系統(tǒng)總體設計
    本設計基于ARM9開發(fā)平臺,構建嵌入式開發(fā)環(huán)境,裁剪移植Linux操作系統(tǒng)。系統(tǒng)采用嵌入式Web服務器對設備進行功能配置,利用溫度、濕度、光照強度傳感器采集數(shù)據(jù),采用嵌入式數(shù)據(jù)庫對監(jiān)測數(shù)據(jù)進行分析和存儲。系統(tǒng)通過控制程序協(xié)調溫室參數(shù),并對控制參數(shù)進行監(jiān)測,從而為溫室中的作物提供最佳的生長環(huán)境。
    嵌入式網(wǎng)絡監(jiān)控系統(tǒng)分客戶端主機和現(xiàn)場嵌入Web服務器智能監(jiān)控設備兩部分,監(jiān)控系統(tǒng)的結構如圖1所示。


    客戶端主機通過瀏覽器與Web服務器交互式處理數(shù)據(jù),從而實現(xiàn)對網(wǎng)絡智能設備的遠程監(jiān)控。其中嵌入式Web服務器和監(jiān)控端位于溫室現(xiàn)場,監(jiān)控端完成對溫室環(huán)境參數(shù)(溫度、濕度、等數(shù)據(jù))的采集,并將采集結果存入數(shù)據(jù)庫,通過CGI技術,管理人員通過網(wǎng)絡便可了解溫室內環(huán)境情況。系統(tǒng)采用Boa作為嵌入式Web服務器,負責監(jiān)控、接收和分析用戶請求,傳送靜態(tài)頁面和調用后臺CGI(Common Gate Interface)程序。

2 系統(tǒng)硬件設計
    為了保證系統(tǒng)的實用性和可擴展性,系統(tǒng)選用Samsung公司的S3C2440A作為CPU處理器,S3C2440A帶有豐富的外圍接口,是一款高性價比的ARM核SoC芯片,工作頻率最高可達400 MHz。系統(tǒng)硬件結構如圖2所示。


    系統(tǒng)配置有內存大小為64 M的SDRAM和128 M的Nand Flash。外接320x240的LCD觸摸屏,實現(xiàn)本地用戶人機接口,進行設備管理,通過USB接口連接攝像頭,完成溫室環(huán)境的圖像采集;通過DM9000外擴以太網(wǎng)接口實現(xiàn)與無線局域網(wǎng)設備的連接和Interact的連接。另外,系統(tǒng)還擴展有RS485接口,可用于系統(tǒng)的擴展,通過布線連接相應的設備。[!--empirenews.page--]

3 系統(tǒng)軟件設計
    整個系統(tǒng)軟件結構如圖3所示,數(shù)據(jù)采集程序通過數(shù)據(jù)采集設備(傳感器、攝像頭等)按照用戶預先設定的參數(shù)周期性的下發(fā)查詢命令,將采集到的結果寫入SQLite數(shù)據(jù)庫,監(jiān)控人員使用瀏覽器通過Web服務器(Boa)管理和維護系統(tǒng)。


    網(wǎng)絡服務程序由嵌入式Web服務器和CGI腳本程序兩部分組成:服務器通過監(jiān)聽80端口,監(jiān)聽來自網(wǎng)絡的用戶請求,如有用戶請求,則啟動相應的CGI腳本程序,將請求信息轉化為服務器可以識別的數(shù)據(jù)格式,從SQLite數(shù)據(jù)庫中讀出所需的信息,再由CGI程序將信息轉化為Web瀏覽器能夠識別的格式,作為HTTP應答消息回送客戶端顯示。CGI腳本程序完成的功能主要包括:配置、查詢設備相關信息及查詢設備告警信息等。
3.1 嵌入式Linux操作系統(tǒng)
    用于嵌入式系統(tǒng)中的操作系統(tǒng)很多,如Linux,Vxworks,Windows CE等。相比而言,Linux兼容POSIX1003.1標準,支持多線程、多任務系統(tǒng)且具有源碼公開、完全免費和廣泛的移植性等特點,使用更加靈活。同時具有強大而穩(wěn)定的網(wǎng)絡功能和完善的開發(fā)工具,支持TCP/IP協(xié)議棧,可提供FTP、TELNET等服務,同時還可以通過應用程序向其他系統(tǒng)提供服務。因此,選擇Linux 2.6.32作為嵌入式操作系統(tǒng)。
3.2 交叉編譯Boa
    本系統(tǒng)采用盡可能簡單的嵌入式Web服務器,即Boa,能夠實現(xiàn)HTTP1.1協(xié)議的基本內容,支持CGI,支持認證,是一個單任務的HTTP服務器,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命令刪除調試信息。
3.3 嵌入式數(shù)據(jù)庫的移植
    Sqlite數(shù)據(jù)庫對嵌入式來說是一個很好的數(shù)據(jù)庫引擎,可有力地減小應用程序管理數(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目錄內建立編譯文件夾并進入,Sqlite的編譯就在這個文件夾內進行。
    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)庫,將它們復制到系統(tǒng)的相應文件夾下。此時,就可以在目標板上運行sqlite3。
3.4 CGI程序的設計
    CGI定義Web服務器與用戶之間訪問與執(zhí)行程序的標準接口,它使瀏覽器和Web服務器之間具有交互性。圖4表明了本系統(tǒng)中瀏覽器、Web服務器和CGI程序之間的關系。


    當客戶通過瀏覽器訪問Web服務器時,瀏覽器與Web服務器建立TCP連接并發(fā)送HTTP請求,Web服務器收到HTTP請求后,分析請求內容,如果為靜態(tài)文檔請求,則直接返回該請求的結果,如果是CGI請求,則Web服務器把該請求通過環(huán)境變量、命令行參數(shù)或標準輸入的方式傳給指定的CGI程序,同時接管這個CGI程序的標準輸出,CGI程序進行相應的信息處理后,將處理結果以HTML形式的文件送到標準輸出,Web服務器在CGI程序輸出的內容上附加一些頭標信息和狀態(tài)行,然后把結果送回瀏覽器。[!--empirenews.page--]
3.5 系統(tǒng)軟件流程圖
    用戶通過HTML頁面監(jiān)控遠程設備包含2個流程:1)客戶端到服務器的數(shù)據(jù)通信??蛻舳藢⒂脩舻牟僮鱾魉徒oWEB服務器,服務器再調用相應的CGI應用程序控制底層設備,實現(xiàn)設備監(jiān)控;2)服務器到客戶端的數(shù)據(jù)通信。即服務器把CGI程序對底層設備監(jiān)控的結果反饋給客戶端,供用戶瀏覽。
    一個CGI應用程序首先通過環(huán)境變量REQUEST-METHOD判斷客戶端發(fā)送的是哪一種數(shù)據(jù)請求。若是GET請求,則通過環(huán)境變量QUERY-STRING獲取數(shù)據(jù)。若是POST請求,則通過標準輸入(stdin)獲取客戶端傳送的數(shù)據(jù)。使用CET方法發(fā)送HTML表單數(shù)據(jù)時,表單數(shù)據(jù)將作為查詢字符串傳送給CGI應用程序,而用POST方法發(fā)送表單數(shù)據(jù)時,表單數(shù)據(jù)通過C語言標準輸入(stdin)直接傳給CGI應用程序。CGI應用程序完成了相關的運算和對底層設備的操作之后,還應該將相應的執(zhí)行結果反饋給用戶。
    CGI應用程序通過WEB服務器將結果傳送給客戶端瀏覽器,使用戶直觀的看到操作的執(zhí)行結果。使用標準輸出(Printf)就可以實現(xiàn)數(shù)據(jù)發(fā)送,WEB服務器得到這些輸出信息,以HTML網(wǎng)頁的形式反饋給客戶端瀏覽器。具體的操作流程如圖5所示。



4 案例實現(xiàn)
    目前Web技術中生成動態(tài)頁面的方法有CGI、PHP和服務器腳本(如JSP和ASP等),但后兩者需要Web服務器具有這些腳本的運行支持模塊。在嵌入式Web服務器中,考慮到資源限制問題,一般都只提供CGl支持,因此在嵌入式設備中Web應用開發(fā)實際上就是基于CGI的程序開發(fā)。使用C語言編寫CGI程序,內嵌Html腳本,這樣當執(zhí)行CGI程序時,即可完成對硬件的操作,又可將操作結果顯示在網(wǎng)頁。CGI程序用getchar()等函數(shù)獲得用戶提交的數(shù)據(jù)。用pantf()函數(shù)負責輸出。執(zhí)行結果要以完整的Html文件格式輸出,比如一個CGI文件中的輸出語句如下:
   
    打開Web瀏覽器,在地址欄輸入Web服務器IP地址,先是身份驗證網(wǎng)頁,驗證后,顯示的監(jiān)控信息網(wǎng)頁如圖6所示。



5 結論
    在嵌入式監(jiān)控系統(tǒng)中,基于嵌入式Linux平臺,利用嵌入式Web服務器和嵌入式數(shù)據(jù)庫對遠程設備進行操作和管理是嵌入式監(jiān)控系統(tǒng)的發(fā)展方向。本文在嵌入式Linux平臺下使用Boa作為Web服務器,應用CGI技術實現(xiàn)的動態(tài)WebServer通用性強,可以穩(wěn)定、高效地在目標系統(tǒng)中運行,為網(wǎng)絡化遠程實時監(jiān)控系統(tǒng)的實施提供了技術保障。其不僅可以運用于溫室信息監(jiān)測,還可運用于其他環(huán)境監(jiān)測,能滿足信息采集擴展性、分布性、實時性的要求。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉