王軍陣 種景 陳旭
摘 要 為實(shí)現(xiàn)對(duì)船載無(wú)土栽培溫室環(huán)境參數(shù)的實(shí)時(shí)監(jiān)測(cè),提出了一種溫室環(huán)境參數(shù)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)方法。使用基于嵌入式RTMES4.11操作系統(tǒng)的STM32F4微處理器采集環(huán)境參數(shù),在基于嵌入式Linux的S3C6410的硬件平臺(tái)上基于Qt構(gòu)建應(yīng)用程序,實(shí)現(xiàn)數(shù)據(jù)的本地存儲(chǔ)和本地顯示,通過(guò)Socket技術(shù)實(shí)現(xiàn)嵌入式平臺(tái)與服務(wù)器之間的通信,將采集到的環(huán)境參數(shù)通過(guò)網(wǎng)絡(luò)上傳到Linux服務(wù)器并以WEB方式實(shí)時(shí)顯示環(huán)境參數(shù),實(shí)現(xiàn)對(duì)遠(yuǎn)洋船舶無(wú)土栽培溫室內(nèi)環(huán)境的遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)。
關(guān)鍵詞 嵌入式 Linux 溫室環(huán)境 監(jiān)控
中圖分類(lèi)號(hào):S818 文獻(xiàn)標(biāo)識(shí)碼:A
0引言
隨著計(jì)算機(jī)、自動(dòng)化技術(shù)的高速發(fā)展,自動(dòng)化監(jiān)控技術(shù)廣泛應(yīng)用于溫室培養(yǎng)等場(chǎng)所,為了提高無(wú)土栽培溫室內(nèi)蔬菜成活率提供了重要的監(jiān)測(cè)手段。為保證遠(yuǎn)洋船舶內(nèi)無(wú)土栽培溫室內(nèi)蔬菜的成活率,必須保證溫室內(nèi)的溫度、濕度和光照等環(huán)境參數(shù)保持在一定的范圍內(nèi)。目前,遠(yuǎn)洋船舶內(nèi)溫室內(nèi)的環(huán)境參數(shù)監(jiān)測(cè)中,可以采用人工定期檢測(cè)的方法,這種方法存在監(jiān)測(cè)不及時(shí)、維護(hù)保養(yǎng)差、記錄不方便等因素,效率較低,不能實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)等缺點(diǎn)。
本文根據(jù)遠(yuǎn)洋船舶無(wú)土栽培溫室內(nèi)環(huán)境的特點(diǎn)和需求,提出了一種遠(yuǎn)洋船舶溫室環(huán)境參數(shù)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)方法。通過(guò)STM32F4采集室內(nèi)溫度、濕度、光照強(qiáng)度環(huán)境參數(shù)信息,采用基于Linux嵌入式操作系統(tǒng)的S3C6410作為船舶溫室室內(nèi)環(huán)境監(jiān)測(cè)的軟件和硬件平臺(tái),嵌入式GUI采用Qt實(shí)現(xiàn)環(huán)境數(shù)據(jù)的本地實(shí)時(shí)顯示和本地存儲(chǔ),并將環(huán)境參數(shù)通過(guò)Socket上傳到Linux服務(wù)器,以WEB方式實(shí)時(shí)顯示環(huán)境參數(shù),實(shí)現(xiàn)對(duì)遠(yuǎn)洋船舶無(wú)土栽培溫室內(nèi)環(huán)境的遠(yuǎn)程實(shí)時(shí)監(jiān)控。
1系統(tǒng)硬件設(shè)計(jì)
該室內(nèi)環(huán)境監(jiān)測(cè)系統(tǒng)主要是以S3C6410為控制核心,基于ARM11的S3C6410微處理器具有低功耗、高性能、外設(shè)接口豐富等優(yōu)點(diǎn),并輔以512MB NAND Flash,256MB SDRAM等器件作為ARM的外圍電路構(gòu)成嵌入式ARM平臺(tái)。S3C6410通過(guò)IIC實(shí)現(xiàn)對(duì)環(huán)境參數(shù)采集主控單元STM32F4的控制,環(huán)境參數(shù)采集單元STM32F4采用溫濕度傳感器STH11和光強(qiáng)度傳感器BH1750對(duì)溫室內(nèi)環(huán)境進(jìn)行檢測(cè),實(shí)現(xiàn)對(duì)室內(nèi)環(huán)境參數(shù)的實(shí)時(shí)測(cè)量,通過(guò)IIC通信協(xié)議上傳到基于Linux的S3C6410嵌入式系統(tǒng),最后由S3C6410對(duì)環(huán)境參數(shù)進(jìn)行處理、本地存儲(chǔ)和顯示,并通過(guò)Socket技術(shù)上傳至Linux服務(wù)器,完成對(duì)遠(yuǎn)洋船舶無(wú)土栽培溫室內(nèi)環(huán)境參數(shù)的在線(xiàn)實(shí)時(shí)監(jiān)測(cè)。硬件電路主要由觸摸屏顯示模塊和環(huán)境參數(shù)采集模塊等組成,總體結(jié)構(gòu)如圖1所示。
1.1 STM32F4與環(huán)境參數(shù)采集模塊的接口電路
環(huán)境參數(shù)采集模塊包括溫濕度傳感器采集模塊和光照強(qiáng)度傳感器采集模塊兩部分,其中,濕度傳感器選用瑞士Sensirion公司生產(chǎn)的SHT11,其內(nèi)部由一片檢測(cè)相對(duì)濕度和溫度的混合傳感器模塊及一個(gè)經(jīng)校準(zhǔn)的數(shù)字輸出組成,兩線(xiàn)串行數(shù)字接口和內(nèi)部電壓自動(dòng)調(diào)節(jié),無(wú)需外部模擬電子電路,可以方便、快速的進(jìn)行系統(tǒng)集成。光照強(qiáng)度傳感器選用BH1750,它是一款數(shù)字型光照強(qiáng)度傳感器集成電路芯片,采用兩線(xiàn)式串行接口數(shù)據(jù)通信,具有較高的分辨率、支持標(biāo)準(zhǔn)I2C總線(xiàn)接口、接近人類(lèi)視覺(jué)靈敏度的靈敏度特性、數(shù)字式輸出、光源依賴(lài)性弱和較大的測(cè)量范圍等特點(diǎn),可以測(cè)量1lx~65535lx范圍內(nèi)的光照強(qiáng)度。
兩款傳感器SHT11和BH1750與STM32F4的連接電路圖如圖2所示,SHT11的串行時(shí)鐘輸入線(xiàn)SCK用于STM32F4微控制器與SHT11之間的通信同步,與STM32F4的PB10口相連,串行數(shù)據(jù)線(xiàn)DATA用于內(nèi)部數(shù)據(jù)的輸出與外部數(shù)據(jù)的輸入,與STM32F4的PB11口相連。BHT1750與STM32F4的I2C1外設(shè)模塊相連,將其SCL和SDA分別映射到PB6和PB7管腳。
圖2:SHT11和BH1750與STM32F407的接口電路
1.2 S3C6410與STM32F407的IIC接口電路
為了便于以后增加新的環(huán)境參數(shù)采集傳感器,STM32F4只負(fù)責(zé)環(huán)境參數(shù)的采集,而后續(xù)環(huán)境參數(shù)的處理、存儲(chǔ)、顯示和網(wǎng)絡(luò)傳輸工作全部交給高性能微處理器S3C6410,采用IIC通信協(xié)議實(shí)現(xiàn)將STM32F4采集到的環(huán)境參數(shù)傳輸?shù)絊3C6410微處理器,兩塊微處理器的連接電路如圖3所示,STM32F4的I2C3外設(shè)模塊與S3C6410的I2CSCL和I2CSDA相連,將其SCL和SDA分別映射到PA8和PC9管腳。
2系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件的設(shè)計(jì)分三個(gè)部分:基于嵌入式STM32F4環(huán)境參數(shù)采集端軟件設(shè)計(jì)、嵌入式S3C6410的控制終端軟件設(shè)計(jì)和基于Linux服務(wù)器的WEB軟件設(shè)計(jì)。
2.1基于STM32F4的軟件設(shè)計(jì)
采用嵌入式操作系統(tǒng)RTEMS4.11實(shí)現(xiàn)STM32F4對(duì)環(huán)境參數(shù)傳感器的控制,并實(shí)現(xiàn)與S3C6410之間的數(shù)據(jù)傳輸,便于后續(xù)的模塊化開(kāi)發(fā)與擴(kuò)展。嵌入式操作系統(tǒng)RTEMS主要負(fù)責(zé)協(xié)調(diào)各個(gè)任務(wù),并通過(guò)實(shí)施調(diào)度將控制權(quán)交給當(dāng)前最高優(yōu)先級(jí)任務(wù)。軟件的結(jié)構(gòu)框圖如圖4所示。主要任務(wù)包括傳感器信息采集任務(wù)與S3C6410的通信任務(wù)等,其中,傳感器信息采集任務(wù)主要負(fù)責(zé)溫濕度和光照強(qiáng)度環(huán)境參數(shù)的采集;通信任務(wù)則負(fù)責(zé)將采集的環(huán)境參數(shù)通過(guò)IIC通信協(xié)議將采集的數(shù)據(jù)實(shí)時(shí)發(fā)送給S3C6410,供S3C6410完成對(duì)數(shù)據(jù)的顯示、本地存儲(chǔ)和網(wǎng)絡(luò)傳輸。
2.2 基于嵌入式Linux的軟件設(shè)計(jì)
本部分軟件包括系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序,本設(shè)計(jì)采用的是內(nèi)核可裁剪的、開(kāi)源的嵌入式Linux系統(tǒng)內(nèi)核,設(shè)備驅(qū)動(dòng)程序?qū)Φ讓佑布M(jìn)行抽象和控制,向上為頂層應(yīng)用程序提供一致的函數(shù)接口,但由于硬件設(shè)計(jì)基本采用的都是標(biāo)準(zhǔn)模塊,其驅(qū)動(dòng)程序可以從現(xiàn)成的開(kāi)發(fā)軟件中裁剪或簡(jiǎn)單修改而成,只有與STM32F4的驅(qū)動(dòng)需要重新開(kāi)發(fā)。應(yīng)用層軟件是整個(gè)嵌入式S3C6410硬件平臺(tái)上Linux終端監(jiān)測(cè)軟件設(shè)計(jì)的重點(diǎn),包括環(huán)境參數(shù)的獲取、本地報(bào)警、本地顯示和與服務(wù)器之間的網(wǎng)絡(luò)傳輸?shù)?。用于本地顯示的嵌入式GUI應(yīng)用程序采用Qt編寫(xiě),并通過(guò)Socket技術(shù)實(shí)現(xiàn)嵌入式Linux平臺(tái)與Linux服務(wù)器的通信,軟件系統(tǒng)工作流程如圖5所示。
2.3基于Linux服務(wù)器的WEB設(shè)計(jì)
服務(wù)器操作系統(tǒng)選用CentOS6.5,基于LAMP(Linux+Apache+MySql+PHP)技術(shù)搭建服務(wù)器,通過(guò)基于TCP協(xié)議的Socket通信技術(shù)實(shí)現(xiàn)與嵌入式Linux終端之間的數(shù)據(jù)傳輸,并將接收到的數(shù)據(jù)存儲(chǔ)于服務(wù)器,以便后續(xù)查詢(xún),使用Ajax技術(shù)實(shí)現(xiàn)數(shù)據(jù)在WEB前端的實(shí)時(shí)顯示。
3結(jié)語(yǔ)
根據(jù)遠(yuǎn)洋船舶無(wú)土栽培溫室內(nèi)環(huán)境的特點(diǎn)和需求,提出了一種遠(yuǎn)洋船舶溫室環(huán)境參數(shù)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)方法。系統(tǒng)采用模塊化設(shè)計(jì),便于后續(xù)擴(kuò)展。采集模塊采用STM32F4微處理器并移植嵌入式RTEMS操作系統(tǒng)實(shí)現(xiàn)對(duì)環(huán)境參數(shù)的采集,采用基于嵌入式Linux系統(tǒng)的S3C6410實(shí)現(xiàn)環(huán)境參數(shù)的本地存儲(chǔ)和顯示,采用CentOS6.5構(gòu)建LAMP服務(wù)器,將環(huán)境參數(shù)存入服務(wù)器端數(shù)據(jù)庫(kù)并以WEB方式實(shí)時(shí)發(fā)布環(huán)境參數(shù),可實(shí)現(xiàn)對(duì)遠(yuǎn)洋船舶無(wú)土栽培溫室的實(shí)時(shí)在線(xiàn)監(jiān)控。
參考文獻(xiàn)
[1] 范治政,劉永春.基于ARM9的大棚遠(yuǎn)程溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)[J].湖北農(nóng)業(yè)科學(xué),2015,54(3):705-708.
[2] 倪康,徐曉光,崔晶.基于C#和Zigbee的大棚溫濕度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].洛陽(yáng)師范學(xué)院學(xué)報(bào),2015,34(2):41-44.