【《基于ESP32和微信小程序的溫室大棚環(huán)境監(jiān)測系統(tǒng)設計》10000字】_第1頁
【《基于ESP32和微信小程序的溫室大棚環(huán)境監(jiān)測系統(tǒng)設計》10000字】_第2頁
【《基于ESP32和微信小程序的溫室大棚環(huán)境監(jiān)測系統(tǒng)設計》10000字】_第3頁
【《基于ESP32和微信小程序的溫室大棚環(huán)境監(jiān)測系統(tǒng)設計》10000字】_第4頁
【《基于ESP32和微信小程序的溫室大棚環(huán)境監(jiān)測系統(tǒng)設計》10000字】_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于ESP32和微信小程序的溫室大棚環(huán)境監(jiān)測系統(tǒng)設計摘要在農(nóng)業(yè)領域,溫室大棚的出現(xiàn)使讓對環(huán)境有著不同要求的種植物在空間和時間上可以進行生長發(fā)育??梢哉f,溫室大棚的出現(xiàn)豐富了人們的餐桌,也使花卉市場種類更加繁多。這些種植物的特點不同,讓它們在規(guī)?;沫h(huán)境下有著適宜的環(huán)境生長至關重要。本文設計的溫室大棚環(huán)境實時查看系統(tǒng)針對溫室大棚的“溫度”、“濕度”、“土壤濕度”以及“光照強度”提供了實時展示以及七天歷史記錄,為便于查看該系統(tǒng)還集成了天氣預報功能。本系統(tǒng)的核心是ESP32以及微信小程序,通過藍牙建立連接、傳輸信息。ESP32將各個模塊采集的實時信息間隔5s以藍牙模塊實時發(fā)送給微信小程序,微信小程序通過uuid識別藍牙的各種服務,ESP32發(fā)送的16進制數(shù)據(jù)由微信小程序進行解析并提供GUI進行展示。同時為了方便該系統(tǒng)選擇農(nóng)作物種類以及設置不同農(nóng)作物對環(huán)境要求的參數(shù)閾值,使其更易于管理和功能拓展,使用后臺的方式對以上信息提供存儲與管理服務。關鍵詞:溫室大棚,ESP32,微信小程序,uuid目錄TOC\o"1-3"\h\u31840第1章緒論 4113001.1研究背景及意義 4166621.2本文工作 522195第2章相關技術介紹 653592.1ESP32 6101622.2Arduino 6263562.3微信小程序 7252802.3Echarts 887282.4Node.js 8280422.5Express 8188682.6MySQL 810465第3章系統(tǒng)總體設計 9252943.1概述 9223683.2系統(tǒng)單元設計 922671第4章系統(tǒng)硬件設計 1098554.1數(shù)據(jù)采集單元 10157814.2數(shù)據(jù)傳輸單元 11217674.3數(shù)據(jù)處理單元 1264864.4數(shù)據(jù)顯示及推送單元 122616第5章系統(tǒng)軟件設計 1398755.1概述 13192435.2esp32單片機端軟件設計 13236385.3小程序端軟件設計 15102905.3服務端軟件設計 2346005.4數(shù)據(jù)庫設計 2519010第6章系統(tǒng)測試 29264946.1概述 2922236.2esp32單片機測試 2963656.2微信小程序軟件功能測試 3012736總結與展望 3117634參考文獻 33第1章緒論1.1研究背景及意義相較于傳統(tǒng)單片機,ESP32芯片采用了擁有兩個哈佛結構XtensaLX6CPU的雙核設計方案,同時內置了wifi和藍牙模塊,且ESP32具有體積小巧、速度超快、功能強大等特點,是物聯(lián)網(wǎng)的完美解決方案之一。至于微信小程序,它本身是一種不需要下載即可安裝的應用。微信小程序相較于其他類型的移動端app具有極為輕便和小巧的特點。對于開發(fā)者而言,微信官方提供了豐富的API和功能,且基于WXML+WXSS+JavaScript,其中WXML基于HTML,同樣WXSS也是基于CSS的二次封裝,其思想是類似于Vue的組件式開發(fā)思想,對于前端開發(fā)者而言,學習成本較低;硬件要求上,在實現(xiàn)相應功能的同時,它無需占用過多資源,對移動設備的性能要求極低;最重要的是,對于用戶來說,它不需要下載或安裝。取而代之的是,應用程序以“掃描”或快速搜索的方式打開,使用完成后無需進行多余操作。得益于微信超強的覆蓋率以及極高的使用頻率,微信小程序的普遍性高和適應性廣,發(fā)展?jié)摿艽蟆T谥腔坜r(nóng)業(yè)方面,溫室大棚占有相當比重,溫室大棚對于培育和批量生產(chǎn)農(nóng)作物來說,它的適用范圍廣、具有較強的抗災能力,推廣溫室大棚不僅保障了人民群眾對于蔬菜瓜果所需,同時也提高了農(nóng)民的經(jīng)濟效益,有利的推動了當?shù)氐慕?jīng)濟發(fā)展。同樣,在發(fā)展的過程中,大棚內的環(huán)境參數(shù)大多需要人工讀取,耗時耗力,且誤差較大。便捷地得知相應環(huán)境參數(shù)有利于種植者加以分析和采取相應措施。對溫濕度、土壤濕度、光照強度等環(huán)境因素加以監(jiān)測,讓農(nóng)作物能夠得到有利的生長環(huán)境至關重要。為了解決該問題,提供一套監(jiān)測系統(tǒng)是具有可行性的。市面上的確具有相應的解決方案,但問題在于,一套完整的監(jiān)測設備的價格昂貴,如果針對于大規(guī)模的農(nóng)場種植管理,這種方案的成本可以接受。但無論是山東著名蔬菜產(chǎn)地壽光市又或者是莘縣,都存在相當數(shù)量的個體蔬菜瓜果大棚種植戶。不用于大規(guī)模的農(nóng)場種植,本系統(tǒng)針對于小規(guī)模的個體戶大棚種植。即設備和系統(tǒng)要達到簡易可用,可靠性高,價格低廉,使用學習成本低等要求,ESP32單片機和微信小程序結合的特點符合以上要求。1.2本文工作本文設計包括硬件和軟件的協(xié)作與整合,主要步驟如下:系統(tǒng)整體設計:相應的功能和性能指標。系統(tǒng)硬件設計:選擇相適應的中央處理芯片(MCU)以及各傳感器模塊和相應的終端設備、服務設備等。系統(tǒng)軟件設計:選擇藍牙以及相應的通信協(xié)議,ESP32中的程序運行以及藍牙數(shù)據(jù)傳輸和微信小程序界面展示,后臺設計與數(shù)據(jù)庫設計。系統(tǒng)測試:功能驗證與性能驗證。拓展性研究。相關技術介紹2.1ESP32這里選擇的esp32單片機核心是ESP32-WROOM-32,該款芯片屬于ESP32系列,具有可擴展、自適應的特點。兩個CPU核可以被單獨控制。時鐘頻率調整范圍為80mhz~240mhz。用戶可以關閉CPU電源,使用低功耗協(xié)處理器連續(xù)監(jiān)測外設的狀態(tài)變化或某些模擬量是否超過閾值。2.2Arduino用比較容易理解的實例來描述:咖啡煮好時,咖啡壺會發(fā)出“吱吱”的聲音;做一件閃閃發(fā)光的絨毛玩具;一套按下快捷鍵就可以進行實驗測試蜂音器;自制一個心率監(jiān)測器,將每次騎腳踏車的記錄存進存儲卡;自制一個能在地面上繪圖,能在雪中馳騁的機器人……Arduino都可以實現(xiàn),Arduino是人們連接各種任務的粘合劑,也可以說是一個大玩具或者電子積木。2.3微信小程序不同于傳統(tǒng)的移動端app和H5,微信小程序構建與一種全新的用戶與服務的方式,用戶可以通過掃碼或者直接在微信的發(fā)現(xiàn)頁面搜索小程序。不同于傳統(tǒng)的app,微信小程序的體量極小,用戶幾乎不需要為下載和安裝等待時間,即從開始下載到開始使用的時間極為短暫,在對輕量級應用上,有效的提高了用戶體驗。微信小程序運行機制如圖2-1所示:圖2-1微信小程序運行原理微信applet的框架由兩部分組成:視圖層(可能不止一個)、AppService邏輯層(一個)、呈現(xiàn)頁面結構的視圖層、邏輯處理的AppService層、數(shù)據(jù)請求、接口調用,它們分兩個線程運行。視圖層使用WebView渲染,邏輯層使用JSCore運行。視圖層通過系統(tǒng)層的Weixinjsbridge與邏輯層進行通信。邏輯層將數(shù)據(jù)更改通知視圖層,并觸發(fā)視圖層的頁面更新。視圖層將觸發(fā)的事件通知給邏輯層進行業(yè)務處理。2.3Echarts一個基于JavaSrcipt的開源可視化圖標庫,其中echartsforweixin為微信小程序數(shù)據(jù)可視化提供支持。2.4Node.jsNode.js由GoogleChrome的V8引擎發(fā)展而來,它能夠讓JavaScript運行在服務端。從而極大的拓展了JavaScript的應用場景也讓JavaScript全棧成為了一個熱門話題。開發(fā)者不必再去學習Ruby、Python、Java等語言和框架,僅僅依靠JavaScript就能完成前后端的大部分開發(fā)任務。這使Node.js表現(xiàn)得非常出色。Node.js應用程序運行于單個進程中,無需為每個請求創(chuàng)建新的線程。Node.js具有獨特的優(yōu)勢,原因是為瀏覽器編寫JavaScript的數(shù)百萬前端開發(fā)者現(xiàn)在除了客戶端代碼之外還可以編寫服務器端代碼,而無需學習完全不同的語言。在Node.js中,可以使用新的ECMAScript標準,因為不必等待所有用戶更新其瀏覽器,你可以通過更改Node.js版本來決定要使用的ECMAScript版本,并且還可以通過運行帶有標志的Node.js來啟用特定的實驗中的特性。2.5ExpressExpress是一個基于Node.js封裝的上層服務框架,它提供了更簡潔的API更實用的新功能。它通過中間件和路由讓程序的組織管理變的更加容易;它提供了豐富的HTTP工具;它讓動態(tài)視圖的渲染變的更加容易;它還定義了一組可拓展標準。2.6MySQLMySQL的特點是極為輕巧,作為一種小型的開源關系型DBMS,它在世界上得到了廣泛的安裝和使用。具有成本低、性能好、簡單等特點。結合Navicat,有效的簡化了數(shù)據(jù)管理和減少管理成本。系統(tǒng)總體設計3.1概述系統(tǒng)整體流程如下:圖3-1系統(tǒng)整體流程圖溫室大棚中的溫濕度、土壤濕度以及光照強度是種植物生長的主要環(huán)境參數(shù)。本系統(tǒng)針對以上信息進行監(jiān)測,獲取信息滿足及時、準確等要求,操作簡便易學,展示界面友好,同時提供有效的參考信息和預警信息推送功能。3.2系統(tǒng)單元設計系統(tǒng)總體可以分為數(shù)據(jù)采集單元、數(shù)據(jù)傳輸單元、數(shù)據(jù)處理單元以及數(shù)據(jù)顯示通知單元四大部分組成。圖3-2系統(tǒng)整體框圖在該系統(tǒng)的采集單元中,選擇多種傳感器模塊實現(xiàn)對不同規(guī)格數(shù)據(jù)的采集。數(shù)據(jù)傳輸單元則是基于esp32自帶的藍牙4.0和移動設備進行連接,其通信協(xié)議和約定具有普遍性且易于理解。至于數(shù)據(jù)處理單元,則分為實體端和微信小程序端,其中實體端,即基于esp32的單片機系統(tǒng)。數(shù)據(jù)顯示及推送單元由微信小程序提供頁面展示和推送。系統(tǒng)硬件設計4.1數(shù)據(jù)采集單元系統(tǒng)數(shù)據(jù)采集單元采用ESP32-WROOM-32開發(fā)板作為主控,采用DHT11溫濕度傳感器模塊完成空氣溫濕度監(jiān)測,采用電容式土壤傳感器模塊完成土壤濕度監(jiān)測,采用光敏電阻模塊完成光照強度監(jiān)測。溫室大棚環(huán)境實時監(jiān)測系統(tǒng)中數(shù)據(jù)采集單元框圖如圖4-1所示。圖4-1數(shù)據(jù)采集單元框圖本設計使用DHT11溫濕度傳感器模塊,該模塊的主體是DHT11溫濕度傳感器。DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。工作電壓3.3-5.5V,溫度測量范圍為0℃-50攝氏度,測量精度為±2℃。相對濕度測量范圍為20%-50%(0~50℃MAX),相對濕度測量精度為±5%,相對濕度測量分辨率為1%RH。土壤濕度檢測采用電容式土壤濕度傳感器。工作電壓3.3-5V,不同于電阻式傳感器,該傳感器采用電容感應原理來檢測土壤濕度,避免了電阻式傳感器極易被腐蝕的問題。光照強度檢測采用光敏電阻模塊,其主體是靈敏型光敏電阻傳感器,工作電壓3.3-5V,使用寬電壓LM393比較器輸出,具有信號干凈,波形好,驅動能力強的特點。4.2數(shù)據(jù)傳輸單元數(shù)據(jù)傳輸單元主要由兩部分組成——esp32中的藍牙模塊與移動終端設備的藍牙模塊。數(shù)據(jù)傳輸單元框圖如圖4-2所示。圖4-2數(shù)據(jù)傳輸單元框圖藍牙作為一種短距離通信系統(tǒng),分為經(jīng)典藍牙(ClassicBluetooth)和藍牙低功耗(BluetoothLowEnergy)。低功耗藍牙具有耗能低,成本低、時延低、主機控制的特點,故選擇低功耗藍牙技術作為數(shù)據(jù)傳輸?shù)暮诵?。GATT是BLE通信的規(guī)定。每個設備存在若干“service”(服務),service中包含多個“Characteristic”(特征值)。在藍牙實際數(shù)據(jù)交換中,就是通過“Characteristic”實現(xiàn)讀寫數(shù)據(jù)。服務和characteristic是通過UUID來進行識別,當主機的某一個特征值characteristic發(fā)生改變時,可以使用通知notify來告訴客戶端.這是服務器主動給客戶端發(fā)的信息,并非是響應客戶端的請求。GATT規(guī)定如圖4-3所示。圖4-3數(shù)據(jù)傳輸單元框圖4.3數(shù)據(jù)處理單元數(shù)據(jù)處理單元硬件主要基于esp32和移動終端設備,esp32是雙核CPU,運行頻率較高,性能具有保證。由于微信小程序對硬件的性能要求極低,選取主流安卓/IOS設備即可。4.4數(shù)據(jù)顯示及推送單元數(shù)據(jù)顯示及推送單元硬件包括0.96寸OLED液晶屏模塊、移動終端設備、服務器等。該液晶屏具有自發(fā)光、對比度高、厚度薄、視角廣、反應速度快等特點,基于SSD1306驅動,分辨率為128*64,供電范圍為3.3-5V,工作溫度-30~70℃。移動終端設備要求同上,服務器分為云服務和本地服務兩種,天氣預報調用云服務,閾值設定調用本地服務器。由于執(zhí)行任務簡單,本地服務器要求極低。=系統(tǒng)軟件設計5.1概述Esp32單片機部分主要完成數(shù)據(jù)獲取處理和傳輸,即通過傳感器獲取數(shù)據(jù)再通過esp32對將要發(fā)送的數(shù)據(jù)處理然后通過自帶的低功耗藍牙傳輸。Arduino采用采用C語言進行編程,Esp32單片機采用定時器進行數(shù)據(jù)接收,每隔2s向溫濕度傳感器、土壤濕度傳感器、光敏電阻傳感器發(fā)送采樣信號,同時這些傳感器以單線串口的方式將數(shù)據(jù)傳遞到單片機中。單片機將得到的數(shù)據(jù)進行處理后存儲在內部存儲器中并等待藍牙模塊無線發(fā)送。藍牙模塊按照設定的通信方式向小程序端發(fā)送數(shù)據(jù),小程序端接收到數(shù)據(jù)后,對數(shù)據(jù)加以解析并提供界面展示。5.2esp32單片機端軟件設計Esp32單片機端分為實時數(shù)據(jù)收集、歷史數(shù)據(jù)收集、藍牙傳輸功能。5.2.1實時數(shù)據(jù)采集功能實時數(shù)據(jù)采集主要是esp32模塊對溫濕度傳感器模塊、土壤濕度傳感器模塊和光敏電阻模塊傳遞到的高低電平信號進行讀取和解析,實時數(shù)據(jù)設定每隔3s采集一次并更新。采集方式采用ADC,ESP32集成了兩個12位SAR(“逐次逼近寄存器”)ADC(模數(shù)轉換器),并支持18通道(模擬使能引腳)的測量。這些引腳中的一些可用于構建用于測量小型模擬信號的可編程增益放大器。ADC驅動程序目前僅支持ADC1,進行ADC讀取需要以所需的精度和注意事項設置ADC,然后調用adc1_get_voltage方法來讀取通道。實時數(shù)據(jù)采集功能流程圖如圖5-1所示。圖5-1實時數(shù)據(jù)采集功能流程圖5.2.2歷史數(shù)據(jù)采集功能歷史數(shù)據(jù)采集功能目的是對過去時間段內的環(huán)境參數(shù)數(shù)據(jù)進行采集。單片機歷史數(shù)據(jù)采集的規(guī)則如下,單片機每隔半小時記錄一次環(huán)境參數(shù)數(shù)據(jù),則每天收集到48條數(shù)據(jù)存儲到單片機的內存中。24小時歷史數(shù)據(jù)收集完成后,esp32會數(shù)據(jù)進行求平均值處理,并將存儲結果存儲到內存中,完成后,24小時歷史數(shù)據(jù)將被擦除。由于該功能根據(jù)時間采集,但該單片機沒有內置時鐘模塊,所以需要外部接口來設置時鐘,其設定規(guī)則為由外部設備向單片機發(fā)送時間戳,單片機對時間戳進行解析后,重新校準時鐘數(shù)據(jù)。歷史數(shù)據(jù)采集功能流程圖如圖5-2所示。圖5-2歷史數(shù)據(jù)采集功能流程圖5.2.3藍牙傳輸功能藍牙傳輸功能硬件基于esp32MCU和藍牙模塊,設定單片機為該功能提供一個service,該service包含三個Characteristic,其中第一個為實時數(shù)據(jù)傳輸接口,提供read權限,由于實時數(shù)據(jù)需要更新,需采用notify;第二個為歷史數(shù)據(jù)傳輸接口,提供read權限;第三個為時鐘校對接口,提供read和white權限。三個Characteristic有且只有唯一的uuid,其他設備根據(jù)uuid識別各功能接口。藍牙傳輸功能接口設置如圖5-3所示。圖5-3藍牙傳輸功能接口設置5.3小程序端軟件設計小程序端具有藍牙傳輸、實時數(shù)據(jù)展示、天氣預報展示、歷史數(shù)據(jù)展示功能。5.3.1藍牙傳輸功能藍牙傳輸功能包括對藍牙設備的掃描、連接和通信等操作,需使用微信小程序的搜索類、連接類、通信類API。具體過程如下,開啟手機藍牙并初始化,藍牙初始化成功后開啟并搜索附近藍牙設備,然后獲取發(fā)現(xiàn)的藍牙設備信息并建立連接。其中需要注意的是,需要啟用notify功能用于進行獲取信息、讀寫等操作。藍牙傳輸功能流程圖如圖5-4所示。圖5-4藍牙傳輸功能流程圖藍牙傳輸功能人機界面如圖5-5所示。圖5-5藍牙傳輸功能人機界面5.3.2實時記錄展示功能當微信小程序成功連接藍牙并獲取設備信息后,開始執(zhí)行實時記錄展示功能,該功能是將藍牙獲取的數(shù)據(jù)解析并展示并結合后臺參數(shù)標準,給出環(huán)境狀態(tài)。其中約定數(shù)據(jù)以16進制數(shù)組的形式傳遞,借助微信小程序封裝的buf2string方法,數(shù)據(jù)得以輕易解析。實時記錄展示分為三部分,第一部分是設備信息,包括設備名稱、設備ID、連接狀態(tài)等。第二部分是實時記錄數(shù)據(jù)可視化展示,重點是數(shù)據(jù)是實時性,得益于notify,接收到的數(shù)據(jù)就可及時更新、展示,借助echarts,實時記錄得以友好、直觀地展示在用戶面前。第三部分是環(huán)境參數(shù)判斷部分,選擇固定相應的農(nóng)作物,在相關人員指定的標準下,提醒用戶該環(huán)境參數(shù)是否正常。為便于數(shù)據(jù)更新,農(nóng)作物庫及其相對應的環(huán)境參數(shù)標準存放于數(shù)據(jù)庫中,用戶可以輕易的讀取相關參數(shù),并提供修改環(huán)境參數(shù)范圍的權限。后臺可對數(shù)據(jù)庫中的環(huán)境數(shù)據(jù)做出相應處理,易于維護和擴展。實時記錄展示功能流程圖如圖5-6所示。圖5-6實時記錄展示功能流程圖人機界面分為兩部分,一是實時數(shù)據(jù)顯示界面,如圖5-7所示;二是閾值信息修改子界面,如圖5-8所示。圖5-7實時數(shù)據(jù)顯示界面圖5-8閾值信息修改子界面5.3.3天氣預報功能在不同的天氣情況下,溫室大棚內外的氣溫和相對濕度相關性聯(lián)系非常緊密。天氣狀況好時,大棚內外相對濕度差大,反之,則相對濕度差小。室外溫度過高時要進行通風降溫,溫度過低時要進行蓋膜保溫。在陰雨天時,尤其是連續(xù)陰雨天的中午前后或者雨停間隙,要采取揭膜通風除濕的措施,降低棚內水汽含量,減少病蟲害的危害。在精選設施作物氣候環(huán)境調控時,可以根據(jù)氣象部門的天氣預報及時采取相應措施,科學管理,實現(xiàn)溫室作物增收增產(chǎn)。為便于用戶查看天氣預報,本系統(tǒng)集成了天氣預報功能,天氣預報功能主要由調用地圖接口、天氣預報查詢接口和實現(xiàn)天氣預報結果展示兩部分組成。頁面初始化后,調用地圖接口,地圖接口采用百度地圖微信小程序JavaScriptAPI,百度地圖采用多種混合定位方式,具有成功率和精度高、流量消耗低,響應速度快等特點,為終端設備提供精準的定位信息。獲取位置信息后,微信小程序調用天氣預報查詢接口,該接口采用和風天氣中的城市天氣API,可獲取全球超過15萬個城市的天氣實況、預報,包括中國境內分鐘降水數(shù)據(jù)等。實現(xiàn)天氣預報結果展示主要對以下信息進行展示。位置:精準到街道溫度天氣:實現(xiàn)背景圖片隨天氣變化而變化空氣質量風向和強度相對濕度體感溫度近三天天氣預報天氣預報流程圖如圖5-9所示。圖5-9天氣預報流程圖天氣預報人機界面如圖5-10所示。圖5-10天氣預報人機界面5.3.4歷史數(shù)據(jù)展示功能為大棚的環(huán)境參數(shù)提供歷史數(shù)據(jù)展示有利于用戶查看環(huán)境參數(shù)隨時間的變化,從而得出分析并采用相應農(nóng)作物管理措施。頁面加載時,微信小程序通過藍牙獲取歷史數(shù)據(jù)。需要注意的是,微信小程序只需獲取一次,無需監(jiān)聽低功耗藍牙設備的特征值變化事件,所以采用readBLECharacteristicValue方法直接獲取數(shù)據(jù)。該功能提供了過去七天的氣溫、濕度、土壤濕度和光照強度變化,其中氣溫和濕度以折線圖或柱狀圖的形式展示,便于用戶觀察環(huán)境參數(shù)變化。由于esp32單片機端沒有采用時鐘模塊,所以在單片機啟動時需要設置時間,用來標識歷史數(shù)據(jù),該界面提供了時鐘校準,通過writeBLECharacteristicValue方法向藍牙設備以時間戳的形式發(fā)送實時數(shù)據(jù)。當然,若藍牙設備處于開機狀況下,無需進行時間校準。歷史數(shù)據(jù)展示流程圖如圖5-11所示。圖5-11歷史數(shù)據(jù)展示流程圖歷史數(shù)據(jù)展示人工界面如圖5-12所示。圖5-12歷史數(shù)據(jù)展示人工界面5.3服務端軟件設計小程序后端服務由nodejs部署,基于express開發(fā)框架。該設計的功能是為溫室大棚農(nóng)作物種類修改和相應的農(nóng)作物生長環(huán)境閾值修改提供接口,通過使用express框架自帶封裝的http模塊架設http服務器,架設路由后可為前端提供接口。其中用戶角色分為普通用戶和系統(tǒng)管理員,普通用戶的登錄在微信小程序藍牙連接成功后,通過獲取到的藍牙設備信息自動登錄連接后臺,連接成功后提供農(nóng)作物種類和農(nóng)作物生長環(huán)境參數(shù)閾值展示和修改服務。系統(tǒng)管理員在普通用戶的基礎上提供普通用戶增刪修改功能和農(nóng)作物種類及其生長環(huán)境閾值增加和刪除功能,便于多個硬件設備間對應信息的的管理和農(nóng)作物信息拓展。普通用戶工作流程圖如圖5-13所示。圖5-13普通用戶工作流程圖系統(tǒng)管理員工作流程圖如圖5-14所示。圖5-14系統(tǒng)管理員工作流程圖5.4數(shù)據(jù)庫設計數(shù)據(jù)庫的設計關系到整個應用系統(tǒng)的運行效率,數(shù)據(jù)庫設計得好,不僅有利于日常數(shù)據(jù)的維護更新,而且可以提高系統(tǒng)的運行效率,縮短數(shù)據(jù)查詢響應周期。數(shù)據(jù)庫設計合理化可使該系統(tǒng)前臺即微信小程序代碼簡化,易于維護和實現(xiàn),同時具體存儲效率高和數(shù)據(jù)完整一致的特點。5.4.1需求分析需求分析的任務,是通過詳細調查現(xiàn)實世界要處理的對象,充分了解原系統(tǒng)工作概況,明確用戶的各種需求,然后在此基礎上確定新的系統(tǒng)功能,新系統(tǒng)還得充分考慮今后可能的擴充與改變,不僅僅能夠按當前應用需求來設計。根據(jù)對溫室大棚環(huán)境實時查看系統(tǒng)的分析,數(shù)據(jù)庫需要滿足以下要求,一是對用戶角色的存儲與管理,二是對農(nóng)作物種類和其相關環(huán)境閾值的存儲與管理,為便于擴展,可提供對專家對相關農(nóng)作物環(huán)境參數(shù)指導結果的存儲。5.4.2概念結構設計 根據(jù)對該系統(tǒng)的分析,該系統(tǒng)的實體有用戶和農(nóng)作物。用戶具有普通用戶和系統(tǒng)管理員兩個類型,普通用戶的主鍵為單個esp32單片機的id,根據(jù)溫室農(nóng)作物的種植種類,農(nóng)作物具有多個類型。不同類型的農(nóng)作物具有適宜溫濕度、土壤濕度、光照強度等屬性,每個屬性有相應的取值范圍(域)。用戶和農(nóng)作物之間的聯(lián)系為一對多,即一個用戶可對應多個農(nóng)作物實體。用戶實體圖和用戶類型實體圖分別由圖5-15和5-16所示,農(nóng)作物和農(nóng)作物類型實體圖分別由圖5-17和5-18所示。圖5-15用戶實體圖圖5-16用戶類型實體圖圖5-17農(nóng)作物實體圖圖5-18農(nóng)作物類型實體圖5.4.3邏輯結構設計邏輯結構結構設計的目標是設計數(shù)據(jù)庫的E-R模型圖,確認需求信息的正確和完整,將概念結構轉換為某個DBMS所支持的數(shù)據(jù)模型,并將其進行優(yōu)化。具體來說就是從需求分析中找到實體,確認實體的屬性、確認實體的關系。該系統(tǒng)數(shù)據(jù)庫設計E-R圖如圖5-19所示。圖5-19數(shù)據(jù)庫設計E-R圖5.4.4物理結構設計邏輯結構結構設計的目的是對于給定的邏輯數(shù)據(jù)模型,選取一個最適合應用環(huán)境的物理結構,簡單來說就是選取合適的數(shù)據(jù)庫,并設計具體的表、字段、數(shù)據(jù)類型、索引等。本系統(tǒng)數(shù)據(jù)庫采用MySql,數(shù)據(jù)庫名稱為db_greenhouses,數(shù)據(jù)庫中包括用戶表(user)、農(nóng)作物表(crops)。各表數(shù)據(jù)結構如下:用戶表(user),存儲用戶詳細信息表5-1用戶表字段名稱數(shù)據(jù)類型主鍵是否空說明idint(11)YN用戶IDusernamevarchar(32)NY用戶名typeint(1)NY類型農(nóng)作物表(crops),存儲農(nóng)作物詳細信息表5-2農(nóng)作物表字段名稱數(shù)據(jù)類型主鍵是否空說明idint(11)YN圖書IDnamevarchar(32)NY書名crops_categoryblobNY農(nóng)作物分類tempint(3)NY溫度Humidityint(3)NY濕度soil_mistureint(5)NY土壤濕度Light_intensityint(5)NY光照強度系統(tǒng)測試6.1概述對溫室大棚環(huán)境實時查看系統(tǒng)的測試主要分為硬件測試和軟件測試兩部分,由于該系統(tǒng)對終端設備和服務端設備的性能和環(huán)境要求極低,所以主要是對esp32單片機的可靠性和軟件功能測試,以及對小程序的軟件功能測試。6.2esp32單片機軟硬件測試為保證該esp32單片機系統(tǒng)的可靠性,該系統(tǒng)在硬件測試的基礎上還需要對軟件測試。首先該單片機系統(tǒng)在設計時就應該充分考慮外界對內部的可能產(chǎn)生的各種干擾,想方設法地去解決外部干擾造成的不良影響。Esp32具有安全啟動、Flash加密、數(shù)字簽名和HMAC等相關安全措施,esp32提供了成熟的外圍電路解決方案,最大可能的避免外部干擾對芯片的影響。該單片機系統(tǒng)設計完成后需要進行以下測試項:(1)測試esp32單片機軟件功能的完善性:該單片機軟件共有三個功能,分別測試“實時數(shù)據(jù)收集”、“歷史數(shù)據(jù)收集”和“藍牙傳輸功能”。(2)上電掉電測試:得益于esp32模塊集成供電接口,該系統(tǒng)采用MicroUSB接口,電源可采用傳統(tǒng)鋰電池(可選充電寶)供電,但仍存在掉電的可能性,需要保證數(shù)據(jù)穩(wěn)定和功能正常。(3)老化測試:由于該esp32單片機系統(tǒng)的工作環(huán)境是在溫室大棚內,晝夜溫差大,濕度較高,接口易腐蝕,所以需要進行一段時間的老化測試,測試其平均工作時間和采取相應防護措施。(4)EFT測試:溫室大棚可能處在高壓線旁,屆時會產(chǎn)生強電磁環(huán)境,在這種環(huán)境下,需要測試強電磁環(huán)境對單片機設備的干擾,尤其是其wifi和藍牙模塊是否工作正常。(5)ESD測試:靜電可能對MCU和其他驅動芯片的正常工作產(chǎn)生影響,提供靜電環(huán)境進行測試,驗證其相關模塊是否需要采取必要的封裝或者是外殼保護該單片機工作不受靜電影響。6.2微信小程序軟件功能測試根據(jù)但該系統(tǒng)小程序端的需求、功能和性能要求,需要對其進行以下方面的測試:權限測試:該系統(tǒng)默認授權登錄微信小程序,登錄的用戶和單片機一一對應。成功連接藍牙即對該系統(tǒng)完成授權,當對該微信小程序沒有授權時,無法查看信息。UI測試:微信小程序總計具有四個頁面,測試藍牙連接(登錄)頁面是否有藍牙設備信息正常展示,實時記錄和歷史記錄兩個模塊echarts圖的加載和交互,天氣預報頁面的排版和整體的配色布局以及導航欄的交互等。功能測試:按功能模塊測試,本系統(tǒng)的各項功能模塊正常;按業(yè)務流程測試,不同路徑來實現(xiàn)的同一個業(yè)務工作正常;按數(shù)據(jù)流向測試,單片機與微信小程序、后臺與微信小程序間的數(shù)據(jù)流正常。易用性測試:隨意定位到小程序的頁面位置,導航欄相應的圖標變化,導航標簽的文字是否容易理解;是否友好地展示重要的功能入口,業(yè)務操作過程是否便于大多數(shù)用戶使用和查看;網(wǎng)絡和藍牙測試:網(wǎng)絡切換測試,驗證各種網(wǎng)絡下是否正常,驗證藍牙是否正常。性能測試:頁面的白屏時間、首屏時間、資源占用和頁面渲染時間。接口測試:主要是天氣預報API、地圖API,還有為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論