亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android平臺(tái)的智能植物生長柜測控系統(tǒng)設(shè)計(jì)

        2016-01-01 00:00:00梁帆代鳳輝孫更強(qiáng)王宇崔世鋼吳興利田立國
        湖北農(nóng)業(yè)科學(xué) 2016年2期

        摘要:為實(shí)現(xiàn)對(duì)生長柜中環(huán)境信息遠(yuǎn)程采集和數(shù)據(jù)顯示,同時(shí)實(shí)現(xiàn)攝像頭對(duì)植物的監(jiān)控和對(duì)多控制節(jié)點(diǎn)的遠(yuǎn)程控制,設(shè)計(jì)了一種基于Android平臺(tái)的物聯(lián)網(wǎng)測控系統(tǒng)。該系統(tǒng)各傳感器的數(shù)據(jù)采集、攝像頭圖像采集以及調(diào)節(jié)生長柜中環(huán)境的執(zhí)行機(jī)構(gòu)是由FS_WSN4412平臺(tái)進(jìn)行控制,利用Android編程技術(shù)對(duì)FS_WSN4412平臺(tái)軟件的功能和界面進(jìn)行了設(shè)計(jì),通過Wifi模塊上傳數(shù)據(jù)至服務(wù)器。物聯(lián)網(wǎng)服務(wù)器采用Tomcat搭建,利用JSP+servlet+MVC技術(shù)完成網(wǎng)頁的設(shè)計(jì)。結(jié)果表明,該系統(tǒng)實(shí)現(xiàn)了對(duì)物聯(lián)網(wǎng)智能植物生長柜的環(huán)境參數(shù)的現(xiàn)場和遠(yuǎn)程監(jiān)控。

        關(guān)鍵詞:智能植物生長柜;物聯(lián)網(wǎng);Android;遠(yuǎn)程監(jiān)控

        中圖分類號(hào):TP271 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):0439-8114(2016)02-0473-05

        DOI:10.14088/j.cnki.issn0439-8114.2016.02.053

        為解決資源與食品安全問題,智能植物生長柜以節(jié)省資源、保護(hù)環(huán)境、安全、放心、健康為出發(fā)點(diǎn),得到社會(huì)的廣泛關(guān)注與認(rèn)可[1,2]。智能植物生長柜是一種人工光利用型植物工廠,使用LED燈光代替自然光,并能夠通過對(duì)植物生長發(fā)育過程中的環(huán)境溫度、濕度、光照度等要素進(jìn)行智能控制,為植物生長提供環(huán)保、舒適的生活環(huán)境,從而實(shí)現(xiàn)植物周年連續(xù)生產(chǎn)[3-5]。

        目前,市場上常見的智能植物生長柜依賴于嵌入式設(shè)備或微電腦對(duì)生長柜中的環(huán)境參數(shù)進(jìn)行采集與調(diào)節(jié),完全由人工在現(xiàn)場對(duì)生長柜中環(huán)境進(jìn)行監(jiān)測管理,無法實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,而且硬件資源有限,具有管理效率低、操作不便、可擴(kuò)展性差等缺點(diǎn)[6,7]。充分利用Android技術(shù)和物聯(lián)網(wǎng)技術(shù)的物聯(lián)網(wǎng)智能植物生長柜,以Android系統(tǒng)作為測控中心的主控制器,結(jié)合Wifi無線通信技術(shù),使生長柜與互聯(lián)網(wǎng)聯(lián)系起來,實(shí)時(shí)與服務(wù)器端進(jìn)行信息交換與通訊[8,9]。通過Android端測控中心的底層驅(qū)動(dòng)和界面設(shè)計(jì),實(shí)現(xiàn)本地對(duì)生長柜的監(jiān)控,同時(shí)實(shí)現(xiàn)在服務(wù)器端遠(yuǎn)程監(jiān)測生長柜中環(huán)境參數(shù)、查詢數(shù)據(jù)庫中數(shù)據(jù),并且通過攝像頭查看柜中植物生長狀況[10-12]。該系統(tǒng)能夠增強(qiáng)智能植物生長柜作業(yè)的可靠性、安全性、準(zhǔn)確性和快捷性,最大限度保障生長柜中植物的安全與健康。

        1 系統(tǒng)總體設(shè)計(jì)方案

        系統(tǒng)主要分為底層測控中心和服務(wù)器端數(shù)據(jù)中心兩部分,系統(tǒng)架構(gòu)圖如圖1所示。測控中心部分主要包括Android主控制板、環(huán)境參數(shù)采集模塊、攝像頭模塊、Wifi通信模塊及調(diào)節(jié)環(huán)境參數(shù)執(zhí)行機(jī)構(gòu)等5大模塊。Android控制板為FS_WSN4412開發(fā)板,主要完成生長柜現(xiàn)場監(jiān)控,包括傳感節(jié)點(diǎn)信息采集、與服務(wù)器的網(wǎng)絡(luò)通信和響應(yīng)服務(wù)器端反饋控制等功能;參數(shù)采集模塊主要通過采用CO2TH200二氧化碳溫濕度一體化傳感器模塊、光照傳感器和DS18B20溫度傳感器實(shí)時(shí)檢測獲得植物的生長環(huán)境;攝像頭模塊主要負(fù)責(zé)生長柜現(xiàn)場監(jiān)控和服務(wù)器端遠(yuǎn)程監(jiān)控視頻的采集;Wifi通信模塊主要采用Wifi無線通信協(xié)議同服務(wù)器端進(jìn)行遠(yuǎn)距離無線通信;執(zhí)行機(jī)構(gòu)采用模糊PID智能控制算法,由Android系統(tǒng)通過控制I/O輸出進(jìn)而控制加熱棒、制冷機(jī)、加濕器、風(fēng)機(jī)、(小功率)氣壓泵、電機(jī)等控制設(shè)備來調(diào)節(jié)柜體內(nèi)的溫度、濕度、CO2濃度和光照度以及營養(yǎng)液溫度。

        2 子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2.1 Android系統(tǒng)與傳感器的設(shè)計(jì)與實(shí)現(xiàn)

        Android系統(tǒng)是Google公司開發(fā)的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)。該系統(tǒng)采用的是運(yùn)行Android4.2.1版本的FS_WSN4412開發(fā)板,該設(shè)備基于ARM Cortex-A9的四核Exynos4412處理器,其主頻1.5 GHz,運(yùn)行內(nèi)存1 GB,具有豐富的傳感器節(jié)點(diǎn)、自帶攝像頭、外設(shè)接口資源和無線傳感網(wǎng)絡(luò),是一款功能強(qiáng)大的嵌入式、物聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)平臺(tái)。硬件傳感器部分采用的是CO2TH200二氧化碳溫濕度一體化傳感器、光照傳感器和DS18B20溫度傳感器,F(xiàn)S_WSN4412平臺(tái)上所有資源都在Linux系統(tǒng)中實(shí)現(xiàn)基本驅(qū)動(dòng),在Android系統(tǒng)中實(shí)現(xiàn)HAL的stub,并向JNI層注冊(cè)相應(yīng)服務(wù),包括LED服務(wù)、BEEP服務(wù)以及由Android系統(tǒng)實(shí)現(xiàn)的Sensor服務(wù)。

        Android中傳感器底層驅(qū)動(dòng)開發(fā)的文件位于Android源碼的如下位置:

        1)frameworks/base/core/java/Android/hardware/SensorManager.java;

        2)frameworks/base/core/jni/Android_hardware_SensorManager.cpp;

        3)frameworks/base/services/java/com/Android/server/SensorService.java;

        4)frameworks/base/services/jni/com/Android_server_SensorService.cpp;

        再加上sensorstub以及Linux內(nèi)核驅(qū)動(dòng),構(gòu)成了整個(gè)Sensor框架,用戶應(yīng)用程序只需調(diào)用sensormanager類,即可操作所有的傳感器(以下各層代碼中的sensor不是代表具體的一種傳感器,而是文中所有傳感器統(tǒng)稱)。

        2.1.1 Android Sensor驅(qū)動(dòng)層 Android內(nèi)核是由標(biāo)準(zhǔn)的Linux內(nèi)核修改而來的,內(nèi)核空間的Android硬件驅(qū)動(dòng)程序和Linux設(shè)備驅(qū)動(dòng)程序的編寫均是以Linux模塊來實(shí)現(xiàn)的,即文件操作結(jié)構(gòu)體file_operations的賦值以及結(jié)構(gòu)體中函數(shù)的具體實(shí)現(xiàn)。此外,Android Sensor驅(qū)動(dòng)層還執(zhí)行各傳感器的注冊(cè)、初始化和設(shè)備的注銷操作。

        file_operation是將系統(tǒng)調(diào)用和驅(qū)動(dòng)程序關(guān)聯(lián)起來的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。文件操作結(jié)構(gòu)體中的成員函數(shù)是字符設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)的主體,這些函數(shù)會(huì)在應(yīng)用程序的open()、write()、read()、close()等中被調(diào)用。傳感器一般結(jié)構(gòu)體定義如下:

        static struct file_operations sensor_fops={

        .owner =THIS_MODULE,

        .open =sensor_open,

        .release=sensor_close,

        .read=sensor_read,

        .write=sensor_write,};

        2.1.2 Android Sensor HAL層 硬件驅(qū)動(dòng)程序一方面分布在Linux內(nèi)核中,另一方面分布在用戶空間的硬件抽象層中,增加傳感器的硬件抽象層模塊訪問Linux內(nèi)核驅(qū)動(dòng)程序。Stub作為直接調(diào)用Linux驅(qū)動(dòng)的上層,實(shí)現(xiàn)簡單的I/O操作,Stub向HAL提供操作函數(shù)(Operations),而Runtime則向HAL取得特定模塊(Stub)的Operations,再回調(diào)這些操作函數(shù)。在HAL實(shí)現(xiàn)的stub中定義hw_module_t結(jié)構(gòu)體,該結(jié)構(gòu)體是HAL模塊的核心結(jié)構(gòu)體,所有硬件模塊都必須將該結(jié)構(gòu)體作為第一個(gè)成員,表示繼承了該結(jié)構(gòu)體。根據(jù)本層架構(gòu),定義3個(gè)結(jié)構(gòu)體,它們主要部分分別定義如下:

        typedef_struct sensor_module_t{

        Tag:HARDWARE_MODULE_TAG,

        ......

        id:SENSORS_HARDWARE_MODULE_ID,

        }sensor_module_t

        typedef struct sensor_module_method_t={

        int (open)(const struct sensor_module_t module const char id

        struct sensor_device_t device)

        }sensor_module_method_t

        typedef struct sensor_device_t={

        struct sensor_module_t;

        int (*get_read)(struct sensor_device_t*dev,int*val);

        }sensor_device_t

        上層通過硬件的id調(diào)用hw_get_module()函數(shù),即得硬件模塊sensor_module_t,并從該模塊中得到sensor_module_method_t,繼而打開得到的硬件設(shè)備sensor_device_t,然后調(diào)用設(shè)備中的get_read()函數(shù),即可調(diào)用傳感器在Linux內(nèi)核層的驅(qū)動(dòng)實(shí)現(xiàn),最后調(diào)用hw_device_t中的close關(guān)閉設(shè)備。

        2.1.3 Android Sensor JNI層 Android系統(tǒng)的應(yīng)用程序是用Java語言編寫的,而硬件驅(qū)動(dòng)程序是用C語言來實(shí)現(xiàn)的,應(yīng)用程序要調(diào)用傳感器驅(qū)動(dòng)程序操作硬件必須通過Java本地調(diào)用JNI來調(diào)用硬件抽象層接口。JNI的數(shù)據(jù)類型與Java數(shù)據(jù)類型的相互轉(zhuǎn)化及函數(shù)注冊(cè)是通過JNINative_Method結(jié)構(gòu)體實(shí)現(xiàn)的,代碼如下:

        typedef struct{

        const char* name;

        const char* signature;

        void* fnPtr;

        }JNINative_Method

        JNI層主要是將stub中的open、close等方法封裝提交給android application框架。在int中會(huì)調(diào)用open方法初始化,代碼如下:

        Static jint android_init(JNIEnv*env, jclass clazz)

        { ......

        if(sensors_control_open(module->common,SensorDevice)==0){

        const struct sensor_t*list;

        int count=module->get_sensors_list(module,list);

        return count;

        }}

        2.1.4 Android Sensor Framework層 為硬件抽象層模塊編寫完串口的JNI方法后,需要為Android系統(tǒng)的Application Frameworks層增加硬件訪問服務(wù)SensorService。Application Frameworks層中包含了自定義的硬件服務(wù)SensorService,在Android系統(tǒng)啟動(dòng)的時(shí)候,應(yīng)用程序就可以通過Java接口來訪問Sensor硬件服務(wù)了。

        2.2 測控端軟件設(shè)計(jì)

        測控端軟件采用Android Java開發(fā),通過互聯(lián)網(wǎng)為物聯(lián)網(wǎng)連接媒介,結(jié)合Android底層驅(qū)動(dòng)開發(fā)技術(shù),在底層開發(fā)傳感器驅(qū)動(dòng),在應(yīng)用程序?qū)泳帉懜鱾鞲衅鲾?shù)據(jù)采集程序。用戶登錄進(jìn)入系統(tǒng)前,Android設(shè)備通過Wifi無線網(wǎng)絡(luò)或3G移動(dòng)通信網(wǎng)絡(luò)等連接到互聯(lián)網(wǎng)服務(wù)器上。登陸后,首先輸入已經(jīng)申請(qǐng)的用戶名和密碼,然后啟動(dòng)接收相應(yīng)生長柜的環(huán)境參數(shù)的后臺(tái)運(yùn)行SerialService類,實(shí)現(xiàn)采集數(shù)據(jù)的Android端實(shí)時(shí)監(jiān)控和與服務(wù)器端數(shù)據(jù)交互,物聯(lián)網(wǎng)智能植物生長柜測控端的具體實(shí)現(xiàn)如圖3所示。

        測控端Android應(yīng)用程序主要包含了45個(gè)Java文件和10個(gè)XML腳本文件,每一個(gè)文件的屬性和權(quán)限要在全局的配置文件manifest.xml中定義。通信模塊采用的是Wifi無線通信方式,同時(shí)為了提高系統(tǒng)整體的通信效率,本系統(tǒng)將傳感器數(shù)據(jù)采集和互聯(lián)網(wǎng)通信部分放在了后臺(tái)獨(dú)立運(yùn)行的線程Thread中執(zhí)行,可以保證系統(tǒng)數(shù)據(jù)的實(shí)時(shí)采集和快速反應(yīng)性能。

        Android完全支持JDK本身的TCP、UDP網(wǎng)絡(luò)通信API,同時(shí)也支持JDK提供的URL、URLConnection等網(wǎng)絡(luò)通信API。本系統(tǒng)中由于用到互聯(lián)網(wǎng)通信,采用了URLConnection的一個(gè)子類HttpURLConnection,其可用于向指定網(wǎng)站發(fā)送GET請(qǐng)求、POST請(qǐng)求。Android端互聯(lián)網(wǎng)通信部分核心代碼如下:

        URL url = new URL(“http://219.243.13.12:80/test/UploadServlet”);//創(chuàng)建URL對(duì)象

        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();//調(diào)用URL對(duì)象openConnection()方法來創(chuàng)建HttpURLConnection對(duì)象

        httpURLConnection.setRequestMethod(\"POST\");//設(shè)置POST方式的請(qǐng)求

        DataOutputStream dos = new DataOutputStream(httpURLConnection.getOutputStream());//獲得OutputStream對(duì)象輸出流,準(zhǔn)備上傳文件至服務(wù)器

        dos.writeBytes(s1);//調(diào)用writeBytes上傳

        InputStream is = httpURLConnection.getInputStream();

        InputStreamReader isr = new InputStreamReader(is,\"utf-8\");

        BufferedReader br = new BufferedReader(isr);

        String result = br.readLine();//獲得InputStream對(duì)象輸入流,讀取從服務(wù)端傳過來的信息

        啟動(dòng)Android端應(yīng)用程序,登錄到物聯(lián)網(wǎng)智能植物生長柜測控系統(tǒng),與此同時(shí)啟動(dòng)后臺(tái)程序采集生長柜中植物生長環(huán)境的參數(shù)和向服務(wù)器端的參數(shù)上傳。測控端向服務(wù)器發(fā)送POST方式的請(qǐng)求,連接服務(wù)器端。獲得OutputStream對(duì)象輸出流,準(zhǔn)備上傳文件至服務(wù)器,通過調(diào)用WriteBytes實(shí)現(xiàn)數(shù)據(jù)上傳。上傳成功后,服務(wù)器端向底層Android端發(fā)送反饋信息,底層數(shù)據(jù)中心獲得InputStream對(duì)象輸入流,讀取從服務(wù)端傳過來的信息。Android端測控中心的網(wǎng)絡(luò)通信程序流程如圖4所示。

        2.3 服務(wù)器端軟件設(shè)計(jì)

        物聯(lián)網(wǎng)服務(wù)器是Web服務(wù)的一種,Web服務(wù)基于標(biāo)準(zhǔn)網(wǎng)絡(luò)調(diào)用約定,無關(guān)操作系統(tǒng)或編程語言,僅通過相同的調(diào)用命令來遠(yuǎn)程執(zhí)行程序并返回結(jié)果。本項(xiàng)目使用Myeclipse+tomcat+MVC模式來設(shè)計(jì)開發(fā)。Web服務(wù)發(fā)布成功后,通過在瀏覽器地址欄輸入調(diào)用地址或網(wǎng)址進(jìn)行簡單的調(diào)用,也可以通過Web服務(wù)組合技術(shù)將相關(guān)服務(wù)分為一組,按組進(jìn)行服務(wù)的批量調(diào)用。

        物聯(lián)網(wǎng)服務(wù)器接收端的軟件設(shè)計(jì)步驟如下:

        1)通過item.getInputStream()獲得上傳的輸入流;

        2)將上傳的生長柜中環(huán)境參數(shù)數(shù)據(jù)通過pp.split(“b|a”)進(jìn)行分割;

        3)接收程序用一個(gè)后臺(tái)運(yùn)行的servlet,保證在服務(wù)器打開的情況下實(shí)時(shí)接收下位機(jī)傳輸?shù)臄?shù)據(jù),并插入數(shù)據(jù)庫sql1=\"insert into car_new(carnumber, carcolor, identifydate, identifyplace, path) values (?,?,?,?,?)\";

        4)調(diào)用PreparedStatement進(jìn)行逐次插入。

        3 實(shí)際應(yīng)用

        智能植物生長柜實(shí)物圖如圖5所示,Android端測控中心生長柜中溫度現(xiàn)場監(jiān)測結(jié)果如圖6所示,數(shù)據(jù)5 s更新一次。同時(shí)采用Wifi無線網(wǎng)絡(luò)通信技術(shù)將環(huán)境參數(shù)傳至互聯(lián)網(wǎng),服務(wù)器端測試數(shù)據(jù)如圖7所示。

        4 小結(jié)

        基于Android平臺(tái)的物聯(lián)網(wǎng)智能植物生長柜測控系統(tǒng),結(jié)合互聯(lián)網(wǎng)通信技術(shù),實(shí)現(xiàn)了實(shí)時(shí)現(xiàn)場與遠(yuǎn)程監(jiān)控,根據(jù)傳感器監(jiān)測到的環(huán)境參數(shù)對(duì)執(zhí)行機(jī)構(gòu)進(jìn)行相應(yīng)的控制,從而達(dá)到為作物提供最佳生長環(huán)境的目的。該設(shè)計(jì)具有硬件成本低、操作界面人性化、控制方便、實(shí)時(shí)性好、遠(yuǎn)程控制靈敏度高等特點(diǎn),具有廣闊的應(yīng)用前景和使用價(jià)值。

        參考文獻(xiàn):

        [1] 古在豐樹.太陽光利用型植物工廠——先進(jìn)植物工廠的可持續(xù)性與設(shè)計(jì)[M].張成波,尚慶茂,譯.北京:中國農(nóng)業(yè)出版社,2010.

        [2] 楊其長,張成波.植物工廠系列談(七)——植物工廠光照和溫度調(diào)控[J].農(nóng)村實(shí)用工程技術(shù)( 溫室園藝),2005(11):31-33.

        [3] WU X L, DONG J L, LIANG F, et al. An LED green light for new plant growth cabinet precise temperature control system[J]. Applied Mechanics and Materials, 2014,577:325-328.

        [4] 江 天,張 瀟.智能LED植物生長系統(tǒng)[J].照明工程學(xué)報(bào),2012(S1):10.

        [5] CUI S G,HAN S L,WU X L,et al. Design of hardware of smart qlant growth cabinet[J].Applied Mechanics and Materials,2014,577:624-627.

        [6] 王石磊,郭艷玲,付志剛.基于ARM的溫室環(huán)境控制系統(tǒng)研究[J].林業(yè)機(jī)械與木工設(shè)備,2008,36(4):19-21.

        [7] MONTOYA F G,GOMEZ J,CAMA A. A monitoring system for intensive agriculture based on mesh networks and the android system[J]. Computers and Electronics in Agriculture,2013, 99(7):14-20.

        [8] 馬增煒,馬錦儒,李亞敏.基于WIFI的智能溫室監(jiān)控系統(tǒng)設(shè)計(jì)[J].農(nóng)機(jī)化研究,2011(2):154-157.

        [9] 公 磊,周 聰.基于Android的移動(dòng)終端應(yīng)用程序開發(fā)與研究[J].計(jì)算機(jī)與現(xiàn)代化,2008(8):86-89.

        [10] 陳 強(qiáng).Android底層接口與驅(qū)動(dòng)開發(fā)技術(shù)詳解[M].北京:中國鐵道出版社,2012.

        [11] 韓 迪,潘志宏.基于Android移動(dòng)設(shè)備傳感器的體感應(yīng)用[J]. 華南理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,40(9):75-80.

        [12] 鄭 萌.Android系統(tǒng)移植和驅(qū)動(dòng)開發(fā)[M].北京:電子工業(yè)出版社,2013.

        射死你天天日| 97中文字幕在线观看| 久久频这里精品99香蕉| 日本亚洲一级中文字幕| 欧美亚洲h在线一区二区| 青青草在线成人免费视频| 国产三级精品三级男人的天堂| 蜜桃视频一区二区在线观看| 琪琪的色原网站| 丰满少妇被猛烈进入无码| 无码高潮少妇毛多水多水免费| 色综合久久精品中文字幕| 日韩精品第一区二区三区 | 久无码久无码av无码| 亚洲欧美日韩精品久久亚洲区色播| A阿V天堂免费无码专区| 操老熟妇老女人一区二区| 男女av免费视频网站| 色欲aⅴ亚洲情无码av| 色婷婷综合中文久久一本| 国产精品久久久久亚洲| 日韩三级一区二区三区四区| 精品激情成人影院在线播放| 亚洲av永久无码精品三区在线| 欧美一区二区三区激情| 女人体免费一区二区| 人妻熟女妇av北条麻记三级| 亚洲精品在线免费视频| 无码中文亚洲av影音先锋| 久久精品国产亚洲av高清漫画 | 无码av中文一区二区三区| 真人无码作爱免费视频禁hnn| 亚洲激情人体艺术视频| 日韩一级精品亚洲一区二区精品| 蜜桃18禁成人午夜免费网站| 岳好紧好湿夹太紧了好爽矜持| 九九精品无码专区免费| 亚洲欧美日韩国产综合专区 | 人妻熟女翘屁股中文字幕| 热久久国产欧美一区二区精品| 艳妇乳肉豪妇荡乳av无码福利|