林冬婷,張澤龍,張彬,薛秀云,姚壯潤(rùn),韓若桐
(華南農(nóng)業(yè)大學(xué)電子工程學(xué)院,廣州510642)
近幾年來(lái),隨著我國(guó)農(nóng)業(yè)種植結(jié)構(gòu)的調(diào)整和不斷完善,果樹的種植面積也在日益擴(kuò)大[1]。在果園管理的過(guò)程中,實(shí)時(shí)有效地采集果園的光照、溫度、濕度等環(huán)境因子,對(duì)果樹的生長(zhǎng)發(fā)育和果園的生長(zhǎng)管理有著重要的影響。傳統(tǒng)的人工采集數(shù)據(jù),需要投入大量的人力資源和時(shí)間,到園區(qū)內(nèi)手工采集,然后數(shù)據(jù)經(jīng)過(guò)整理進(jìn)行傳遞,不僅費(fèi)時(shí)費(fèi)力,采集到的數(shù)據(jù)還存在滯后性,管理者不能及時(shí)掌握果園環(huán)境情況,會(huì)影響果樹的正常生長(zhǎng)[2]。果園信息單純依靠人工采集難度大,效率低,成本高難以實(shí)現(xiàn)長(zhǎng)期有效的監(jiān)測(cè)管理,更難以實(shí)現(xiàn)果園智能化精細(xì)管理。因此建立果園環(huán)境信息遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)系統(tǒng),及時(shí)有效地獲取果園環(huán)境信息,對(duì)提高果園產(chǎn)量和果品品質(zhì)均有重要的作用[3]。
為了實(shí)現(xiàn)果園環(huán)境信息的實(shí)時(shí)監(jiān)測(cè),本設(shè)計(jì)基于STM32 微處理器,結(jié)合濕度傳感器FC-28、溫度傳感器DS18B2,光照傳感器BH1705,實(shí)現(xiàn)果園環(huán)境信息的采集與處理,通過(guò)Wi-Fi 芯片ESP8266 與網(wǎng)絡(luò)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)接,最后通過(guò)電腦Web 網(wǎng)頁(yè)的設(shè)計(jì)和手機(jī)微信小程序遠(yuǎn)程、實(shí)時(shí)地得到果園的濕度、溫度和光照等環(huán)境信息。
本系統(tǒng)主要由信息采集、網(wǎng)絡(luò)通信、服務(wù)器、客戶端組成。信息采集部分由土壤濕度傳感器,光照傳感器、溫度傳感器采集果園信息,交由主控芯片STM32處理轉(zhuǎn)換,并通過(guò)ESP8266 由Wi-Fi 路由器將數(shù)據(jù)上傳至網(wǎng)絡(luò)服務(wù)器,用戶可以通過(guò)手機(jī)訪問(wèn)Web 網(wǎng)頁(yè)遠(yuǎn)程、實(shí)時(shí)查看果園的土壤濕度、環(huán)境溫度、光照強(qiáng)度等信息,系統(tǒng)整個(gè)框架如圖1 所示。
(1)信息采集硬件設(shè)計(jì)
該系統(tǒng)信息采集硬件部分由STM32 微處理器、土壤濕度傳感器、溫度傳感器、光照強(qiáng)度傳感器組成,系統(tǒng)信息采集電路圖如圖2 所示。
土壤濕度傳感器FC-28 是利用土壤濕度不一樣時(shí)導(dǎo)致傳感器的電阻值發(fā)生變化,由此得出土壤的濕度[4]。當(dāng)土壤濕度很低時(shí),電阻非常大,模擬信號(hào)AQ 輸出值就比較大。反之,當(dāng)土壤濕度很高時(shí),則電阻非常小,模擬信號(hào)AQ 輸出值就比較小[5]。
圖1 系統(tǒng)總體框架圖
圖2 系統(tǒng)信息采集電路圖
Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持“一線總線”接口的溫度傳感器。DS18B20 數(shù)字溫度傳感器提供9-Bit 到12-Bit 的攝氏溫度測(cè)量精度。DS18B20 在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20 的雙向通信。
光照傳感器模塊采用由半導(dǎo)體制造商ROHM 開發(fā)的BH1705 芯片。芯片工作電壓3.3V,內(nèi)置16 位AD 轉(zhuǎn)換器,使用I2C 總線接口進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)高精度的光照強(qiáng)度值的直接輸出。
STM32 是整個(gè)系統(tǒng)信息采集的核心部分。土壤濕度傳感器、溫度傳感器、光照強(qiáng)度傳感器所采集到的果園信息數(shù)據(jù)會(huì)發(fā)送到主控芯片STM32,由STM32 進(jìn)行數(shù)據(jù)轉(zhuǎn)換,再把轉(zhuǎn)換后的數(shù)據(jù)發(fā)送給Wi-Fi 芯片ESP8266。
在設(shè)備上電之后,開始配置時(shí)鐘和引腳進(jìn)行初始化。光照強(qiáng)度傳感器使用I2C 通信協(xié)議,直接操作STM32 的I/O 口進(jìn)行模擬I2C 操作。土壤濕度傳感器輸出模擬信號(hào),通過(guò)STM32 內(nèi)置ADC1 進(jìn)行讀取。溫度傳感器使用單線通信,在STM32 發(fā)指令時(shí)將引腳配置成推挽輸出模式,在接收數(shù)據(jù)時(shí)引腳配置成浮空輸入模式。STM32 的UART2 與ESP8266 的UART0 相連進(jìn)行串口通信,STM32 把要上傳到Web 服務(wù)器的數(shù)據(jù)通過(guò)串口通信交給ESP8266,由它通過(guò)Wi-Fi 上傳至網(wǎng)絡(luò)服務(wù)器。同樣地,當(dāng)服務(wù)器要向STM32 發(fā)送指令時(shí)先把指令信號(hào)發(fā)送給ESP8266,再由它通過(guò)串口通信發(fā)送給STM32。ESP8266 通過(guò)串口發(fā)出數(shù)據(jù)就會(huì)觸發(fā)STM32 的中斷函數(shù),STM32 接收數(shù)據(jù)保存并設(shè)置接收標(biāo)志位。STM32 引腳配置如表1 所示。
表1 STM32 引腳配置表
(2)信息采集軟件設(shè)計(jì)
程序在初始化后就進(jìn)入循環(huán),若接收標(biāo)志位被設(shè)置,則會(huì)對(duì)所接收數(shù)據(jù)進(jìn)行解析,若數(shù)據(jù)中包括控制器的指令則會(huì)執(zhí)行相對(duì)應(yīng)的指令并上傳當(dāng)前控制器的狀態(tài),若不含指令則不做操作,最后清除接收標(biāo)志并繼續(xù)下一個(gè)循環(huán)周期。若在循環(huán)周期里接收標(biāo)志位沒被設(shè)置,則會(huì)啟動(dòng)傳感器采集數(shù)據(jù)并把采集到的數(shù)據(jù)轉(zhuǎn)換,STM32 把轉(zhuǎn)換后的數(shù)據(jù)發(fā)送到UART2,即把所需要上傳的數(shù)據(jù)交給ESP8266。STM32 控制系統(tǒng)軟件程序流程圖如圖3 所示。
(1)WebSocket 協(xié)議
HTTP 協(xié)議是由客戶端向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器接收請(qǐng)求后做響應(yīng)。Web 網(wǎng)頁(yè)客戶端要實(shí)時(shí)得到果園信息,就必須不斷地在每一段時(shí)間(如500ms)發(fā)出GET 請(qǐng)求,得到服務(wù)器響應(yīng)后刷新頁(yè)面,即HTTP 輪詢。果園信息數(shù)據(jù)同樣通過(guò)類似HTTP 輪詢的方式,不斷地向服務(wù)器發(fā)出POST 請(qǐng)求,將最新的果園信息數(shù)據(jù)上傳到服務(wù)器。
圖3 STM32控制系統(tǒng)軟件程序流程圖
Web 網(wǎng)頁(yè)的實(shí)時(shí)更新數(shù)據(jù)與設(shè)備上傳果園信息數(shù)據(jù)都是不斷地向服務(wù)器發(fā)出HTTP 請(qǐng)求,導(dǎo)致占用大量網(wǎng)絡(luò)資源,而且難以實(shí)現(xiàn)擴(kuò)展部分的實(shí)時(shí)遠(yuǎn)程控制。若使用HTTP 輪詢來(lái)實(shí)現(xiàn)擴(kuò)展部分的實(shí)時(shí)遠(yuǎn)程控制,設(shè)備除了發(fā)出POST 請(qǐng)求將果園信息數(shù)據(jù)上傳至服務(wù)器,還要再發(fā)出GET 請(qǐng)求得到用戶所發(fā)出的控制指令。
HTTP 輪詢已經(jīng)不能滿足現(xiàn)本系統(tǒng)擴(kuò)展部分對(duì)實(shí)時(shí)遠(yuǎn)程控制的要求,故使用全雙工通信的WebSocket協(xié)議。WebSocket 協(xié)議最大的特點(diǎn)是可以由服務(wù)器主動(dòng)向客戶端發(fā)出數(shù)據(jù),建立WebSocket 協(xié)議連接后,服務(wù)器主動(dòng)向Web 網(wǎng)頁(yè)發(fā)送需要更新的數(shù)據(jù)而無(wú)需由瀏覽器不斷地發(fā)出HTTP 請(qǐng)求,有效節(jié)省網(wǎng)絡(luò)資源。另一方面,擴(kuò)展部分的實(shí)時(shí)遠(yuǎn)程控制所需時(shí)間不再受限于HTTP 輪詢的時(shí)間間隔設(shè)定,更快地實(shí)現(xiàn)遠(yuǎn)程控制這個(gè)擴(kuò)展功能。
(2)ESP8266
ESP8266 是現(xiàn)市場(chǎng)上的主流低成本IOT 芯片,內(nèi)置32 位CPU,能夠獨(dú)立運(yùn)行,也可以作為從機(jī)與其他MCU 一起運(yùn)行。ESP8266 支持softAP 模式、station 模式及softAP 和station 共存的模式。在本設(shè)計(jì)中,STM32 把果園信息數(shù)據(jù)處理后通過(guò)串口發(fā)送給ESP8266,由ESP8266 與路由器進(jìn)行Wi-Fi 通信,把數(shù)據(jù)上傳至服務(wù)器中。ESP8266 充當(dāng)一個(gè)橋梁,一端以WebSocket 協(xié)議與服務(wù)器進(jìn)行通信,另一端以串口通信與STM32 進(jìn)行通信,將STM32 與服務(wù)器連接起來(lái),如圖4 所示。
圖4 ESP8266的作用
(1)NodeJS
NodeJS 是一個(gè)基于ChromeV8 引擎的JavaScript執(zhí)行平臺(tái),常用于快速構(gòu)建小型網(wǎng)站。借助事件驅(qū)動(dòng),異步非阻塞I/O 等特性,十分適合數(shù)據(jù)密集型,I/O 密集型的應(yīng)用場(chǎng)景。
服務(wù)器使用騰訊云主機(jī)CentOS 系統(tǒng),以NodeJS作為后端語(yǔ)言搭建服務(wù)器。一方面,它可以把數(shù)據(jù)以網(wǎng)頁(yè)的形式顯現(xiàn)出來(lái)即建立HTTP 服務(wù)器。另一方面,它必須支持WebSocket 的連接進(jìn)行數(shù)據(jù)交換即建立WebSocket 服務(wù)器。
在配置好云服務(wù)器之后,使用putty 遠(yuǎn)程登陸,控制服務(wù)器。在服務(wù)器上安裝完NodeJS 之后,因?yàn)閲?guó)內(nèi)網(wǎng)絡(luò)的限制,不能使用npm 來(lái)安裝模塊,故還需要安裝國(guó)內(nèi)鏡像版本cnpm 來(lái)代替使用。使用cnpm 可以簡(jiǎn)單快速地安裝其他模塊如Express、mongoose、ws、pm2等模塊。
在基礎(chǔ)的應(yīng)用程序框架之上還編寫了兩個(gè)主要腳本,與WebSocket 相關(guān)的myWebsocket.js、所有文件共用函數(shù)的user.js。myWebsocket.js 主要調(diào)用ws 模塊來(lái)編寫WebSocket 相關(guān)代碼。在編寫代碼時(shí)應(yīng)該在本地使用編輯器寫好,再通過(guò)WinSCP 上傳到服務(wù)器,否則在服務(wù)器上使用vim 來(lái)編寫會(huì)相對(duì)麻煩。調(diào)試期間可在服務(wù)器上用Telnet 進(jìn)行模擬,用tcpdump 進(jìn)行抓包分析。
bin 啟動(dòng)文件里引用了myWebsocket.js 的Web-Socket 服務(wù)器的創(chuàng)建,讓W(xué)ebSocket 服務(wù)器共同綁定到80 端口。app.js 分配了路由文件,包括index.js、upload.js、deviceStatus.js。index.js 用于瀏覽器訪問(wèn)主頁(yè)時(shí),從數(shù)據(jù)庫(kù)里獲取數(shù)據(jù)然后渲染index.ejs 生成網(wǎng)頁(yè)。upload.js 用于給用戶通過(guò)HTTP 協(xié)議獲取或上傳數(shù)據(jù),遵守RESTful 風(fēng)格,通過(guò)POST 上傳數(shù)據(jù)。deviceStatus.js,通過(guò)GET 來(lái)獲取保存在數(shù)據(jù)庫(kù)里當(dāng)前設(shè)備的數(shù)據(jù)。在實(shí)際調(diào)試時(shí)可以使用Linux 命令curl 來(lái)進(jìn)行模擬或在Windows 下使用Postman 進(jìn)行獲取與上傳的動(dòng)作,以觀察實(shí)際情況。
myWebsocket.js 腳本文件實(shí)現(xiàn)了WebSocket 服務(wù)器的創(chuàng)建、WebSocket 廣播、通過(guò)WebSocket 給數(shù)據(jù)庫(kù)上傳數(shù)據(jù)以及從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)四個(gè)功能。user.js 腳本使用了mongoose 模塊對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,包括創(chuàng)建連接、創(chuàng)建集合、創(chuàng)建與讀取文檔。由于保存數(shù)據(jù)還需要準(zhǔn)確的當(dāng)?shù)貢r(shí)間,所以還使用了moment 模塊來(lái)獲得當(dāng)?shù)貢r(shí)間。
(2)Express 框架
Web 網(wǎng)頁(yè)部分使用NodeJS 官方推薦使用的輕量級(jí)Web 框架Express 來(lái)搭建。Express 4.x 版本使用生成器,能快速創(chuàng)建應(yīng)用程序框架,框架主要文件如表2所示。
表2 框架各文件的作用描述
(3)MongoDB
MongoDB 是一個(gè)基于分布式文件存儲(chǔ)、非關(guān)系型(NoSQL)的開源數(shù)據(jù)庫(kù)系統(tǒng)??梢灾苯哟鎯?chǔ)JSON 格式的數(shù)據(jù)以及使用JavaScript 函數(shù)進(jìn)行操作。MongoDB 將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,文檔名為其_id 的值,數(shù)據(jù)結(jié)構(gòu)由鍵值對(duì)組成。
MongoDB 的數(shù)據(jù)是以“數(shù)據(jù)庫(kù)-集合-文檔”的形式保存,數(shù)據(jù)庫(kù)方面的設(shè)計(jì)基本要求是能讀寫當(dāng)前設(shè)備的狀態(tài),每當(dāng)果園信息采集系統(tǒng)上傳數(shù)據(jù)至服務(wù)器,都會(huì)更新數(shù)據(jù)庫(kù)stm32_nodejs 下的集合status 里的文檔_id:1 內(nèi)容,儲(chǔ)存形式如圖5 所示。
(1)Web 網(wǎng)頁(yè)
Web 網(wǎng)頁(yè)使用HTML 與JavaScript 編寫,并使用了WeUI 樣式庫(kù)美化網(wǎng)頁(yè)的頁(yè)面,網(wǎng)頁(yè)的程序流程圖如圖6 所示。EJS 模板會(huì)先根據(jù)Mongo 數(shù)據(jù)庫(kù)里的最新果園信息數(shù)據(jù)進(jìn)行頁(yè)面初始化,然后向服務(wù)器發(fā)起Web-Socket 連接請(qǐng)求,HTTP 通過(guò)協(xié)議轉(zhuǎn)換請(qǐng)求(Upgrade)轉(zhuǎn)為WebSocket 協(xié)議。Web 網(wǎng)頁(yè)實(shí)際效果如圖7所示。
圖5 數(shù)據(jù)的儲(chǔ)存形式
圖6 Web網(wǎng)頁(yè)程序流程圖
圖7 頁(yè)面實(shí)際效果圖
(2)擴(kuò)展功能
①微信小程序
微信小程序客戶端使用wxml 進(jìn)行頁(yè)面布局,結(jié)合JS 代碼具體操作。微信小程序的網(wǎng)絡(luò)請(qǐng)求必須是HTTPS 協(xié)議,所以先申請(qǐng)SSL 安全證書,并使用反向代理服務(wù)器Nginx 安裝部署,將HTTPS 訪問(wèn)跳轉(zhuǎn)至HTTP 服務(wù)器,如圖8 所示。進(jìn)行了SSL 證書安裝部署之后,Web 網(wǎng)頁(yè)也可以通過(guò)HTTPS 協(xié)議來(lái)訪問(wèn)Web頁(yè)面。
圖8 Nginx安裝部署SSL證書
微信小程序的程序流程圖如圖9 所示,小程序的頁(yè)面初始化之后,加載數(shù)據(jù)并刷新頁(yè)面,之后進(jìn)入循環(huán),微信小程序每隔500ms 向服務(wù)器發(fā)出HTTPS 網(wǎng)絡(luò)請(qǐng)求,等接收到響應(yīng)時(shí)就刷新數(shù)據(jù),進(jìn)入下一次循環(huán)。當(dāng)用戶點(diǎn)擊LED 開關(guān)按鈕時(shí),就會(huì)向服務(wù)器發(fā)送開關(guān)控制指令,最后由服務(wù)器向硬件發(fā)送,當(dāng)硬件執(zhí)行后就會(huì)將當(dāng)前LED 的狀態(tài)發(fā)到服務(wù)器,即更新了數(shù)據(jù)庫(kù)里面的數(shù)據(jù)。微信小程序模擬實(shí)際效果圖如圖10 所示,界面實(shí)時(shí)刷新顯示果園的土壤濕度、溫度、以及光照強(qiáng)度等信息,此時(shí)開啟LED2,關(guān)閉LED1,模擬系統(tǒng)處于關(guān)閉狀態(tài)。
圖9 微信小程序的程序流程圖
圖10 微信小程序模擬實(shí)際效果圖
②數(shù)據(jù)可視化
數(shù)據(jù)可視化使用百度開源的可視化UI 庫(kù)Echart,一個(gè)純JavaScript 的圖表庫(kù),可以流暢的運(yùn)行在PC 移動(dòng)設(shè)備上,兼容當(dāng)前絕大部分瀏覽器。底層依賴輕量級(jí)的Canvas 類庫(kù)ZRender,提供直觀、生動(dòng)、可交互、可高度個(gè)性化定制的數(shù)據(jù)可視化圖表。本設(shè)計(jì)先初始化圖像,向已經(jīng)建立起的WebSocket 連接發(fā)出請(qǐng)求,得到過(guò)去一個(gè)小時(shí)的環(huán)境溫度、光照強(qiáng)度以及土壤濕度等果園信息數(shù)據(jù),利用得到的數(shù)據(jù)進(jìn)行分析并設(shè)置所生成的可視化圖表類型,最后生成圖像顯示在Web 網(wǎng)頁(yè)界面上,程序流程如圖11 所示。
圖11 Echart程序流程圖
③實(shí)時(shí)遠(yuǎn)程控制
為了滿足遠(yuǎn)程控制對(duì)實(shí)時(shí)性的要求,果園信息采集部分的上傳數(shù)據(jù)已經(jīng)使用WebSocket 協(xié)議替代HTTP協(xié)議。為了模擬實(shí)時(shí)遠(yuǎn)程控制,在本設(shè)計(jì)里添加兩個(gè)LED 燈以模擬開關(guān)控制,程序流程框架如圖12 所示。
圖12 實(shí)時(shí)遠(yuǎn)程控制框架圖
實(shí)際效果如圖13 所示,在Web 網(wǎng)頁(yè)客戶端(微信小程序同理)點(diǎn)擊開啟LED1 后,網(wǎng)頁(yè)執(zhí)行JavaScript代碼通過(guò)WebSocket 協(xié)議向服務(wù)器發(fā)出控制指令,服務(wù)器馬上將控制指令保存到數(shù)據(jù)庫(kù)的當(dāng)前狀態(tài)以及歷史記錄,并通過(guò)WebSocket 廣播將控制指令發(fā)送至設(shè)備,設(shè)備接收到指令后執(zhí)行指令開啟LED1,并將當(dāng)前LED1 開啟、LED2 關(guān)閉的設(shè)備狀態(tài)以JSON 字符串格式發(fā)送到ESP8266,由ESP8266 通過(guò)WebSocket 協(xié)議上傳到服務(wù)器。當(dāng)服務(wù)器接收到設(shè)備狀態(tài)時(shí),將設(shè)備狀態(tài)保存至數(shù)據(jù)庫(kù)的當(dāng)前狀態(tài)以及歷史記錄,并通過(guò)WebSocket 廣播發(fā)送至Web 網(wǎng)頁(yè)客戶端。Web 網(wǎng)頁(yè)客戶端從服務(wù)器取得最新設(shè)備狀態(tài)刷新頁(yè)面,LED1 顯示開啟狀態(tài)。
圖13 遠(yuǎn)程控制實(shí)際效果圖
系統(tǒng)的環(huán)境信息誤差決定于本設(shè)計(jì)的硬件部分,主要受傳感器設(shè)備本身的精度所限制。系統(tǒng)數(shù)據(jù)上傳的傳輸速度與擴(kuò)展部分的實(shí)時(shí)遠(yuǎn)程控制受Wi-Fi 芯片的性能、當(dāng)前網(wǎng)絡(luò)狀況、云服務(wù)器性能三者的限制。測(cè)試現(xiàn)場(chǎng)如圖14 所示。
圖14 測(cè)試現(xiàn)場(chǎng)圖
土壤濕度儀EM50 作為參考儀器,土壤濕度精度可達(dá)0.01%,范圍為0%-50%,與本設(shè)計(jì)的采集值作對(duì)比,其測(cè)試數(shù)據(jù)如表3 所示。
表3 土壤濕度測(cè)試表
溫度測(cè)量計(jì)HTC-1 作為環(huán)境溫度的參考儀器,其溫度測(cè)量精度為±1℃,與本設(shè)計(jì)的采集值作對(duì)比,其測(cè)試數(shù)據(jù)如表4 所示。
表4 溫度測(cè)試表
光照測(cè)試儀器MS6612 作為光照強(qiáng)度的參考儀器,其測(cè)量范圍為0-20 萬(wàn)LUX,精度達(dá)0.01。LUX 與本設(shè)計(jì)的采樣值作對(duì)比,其數(shù)據(jù)測(cè)試如表5 所。
表5 光照強(qiáng)度測(cè)試表
在實(shí)際測(cè)試時(shí),土壤濕度的最大誤差達(dá)到25%,本系統(tǒng)的土壤濕度傳感器由于性能極差,并沒有明確的性能參數(shù),故出現(xiàn)大誤差屬于正常情況。解決辦法是根據(jù)實(shí)際應(yīng)用場(chǎng)景對(duì)土壤濕度的精度要求,改用其他價(jià)格相對(duì)昂貴的土壤濕度傳感器代替。
經(jīng)測(cè)試對(duì)比,溫度在25-30℃測(cè)試環(huán)境里采集精度為±0.5℃,數(shù)據(jù)正常。光照強(qiáng)度在2000-6000LUX 的測(cè)試環(huán)境里采集精度最大誤差為22%,光照強(qiáng)度的精度還待提高。
服務(wù)器壓力測(cè)試使用測(cè)試Web 服務(wù)器性能的開源工具h(yuǎn)ttp_load,服務(wù)器響應(yīng)時(shí)間如表6 所示,測(cè)試中響應(yīng)最大值9108ms,每秒響應(yīng)6.4 次。服務(wù)器性能主要受購(gòu)買服務(wù)器時(shí)的性能配置影響,以及數(shù)據(jù)庫(kù)的響應(yīng)時(shí)間影響,性能優(yōu)化時(shí)重點(diǎn)在于數(shù)據(jù)庫(kù)的操作。
表6 服務(wù)器響應(yīng)時(shí)間測(cè)試表
本設(shè)計(jì)實(shí)現(xiàn)了基于STM32 的果園信息遠(yuǎn)程監(jiān)測(cè)系統(tǒng),該系統(tǒng)利用微處理器STM32 與濕度傳感器、溫度傳感器、光照傳感器對(duì)果園環(huán)境溫度、光照強(qiáng)度和土壤濕度等信息進(jìn)行采集與處理,上傳到服務(wù)器保存數(shù)據(jù),用戶可使用手機(jī)微信小程序或Web 網(wǎng)頁(yè)進(jìn)行遠(yuǎn)程實(shí)時(shí)查看果園信息。本系統(tǒng)在測(cè)試環(huán)境里,土壤濕度的最大誤差達(dá)到25%,溫度的采集精度為±0.5℃,光照強(qiáng)度的采集精度最大誤差為22%,在硬件設(shè)備性能條件下,該誤差在正常范圍內(nèi),后續(xù)將通過(guò)改進(jìn)硬件設(shè)備提高精度。此系統(tǒng)可應(yīng)用于果園管理人員遠(yuǎn)程監(jiān)測(cè)果樹生長(zhǎng)環(huán)境信息,為及時(shí)迅速地采取有效的干預(yù)措施提供科學(xué)依據(jù)。