張俊 李銀 張紫瑞 李學(xué)孺
關(guān)鍵詞:樹莓派3B+;傳感器;物聯(lián)網(wǎng);springboot;uniapp
0 引言
在當(dāng)今快速發(fā)展的社會(huì),人們的生活節(jié)奏越來(lái)越快,工作壓力和生活壓力日益增加,很多人無(wú)法兼顧工作和家庭。在這樣的情況下,很多家庭中的花卉也受到了忽視和冷落?;ɑ苁俏覀兩钪胁豢苫蛉钡囊徊糠郑ɑ苡兄鵀榧彝キh(huán)境增添色彩和生氣,吸收有害物質(zhì),如甲醛、苯等有害物質(zhì)的作用。但由于忙碌的生活節(jié)奏,人們常常無(wú)法給予它們足夠的關(guān)注和照顧。這也導(dǎo)致了許多花卉的生長(zhǎng)狀況不佳,很難長(zhǎng)時(shí)間地保持良好的生長(zhǎng)狀態(tài)。
隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,智慧家庭的概念越來(lái)越受到人們的關(guān)注。智慧家庭是指通過(guò)智能化技術(shù),將家庭內(nèi)部的設(shè)備、設(shè)施、服務(wù)等聯(lián)網(wǎng),以達(dá)到安全、舒適、便利、高效的生活方式[1]。在智慧家庭中,智能花卉澆灌系統(tǒng)是一個(gè)非常實(shí)用的應(yīng)用場(chǎng)景。智能花卉澆灌系統(tǒng)能夠?qū)崿F(xiàn)對(duì)花卉生長(zhǎng)環(huán)境的監(jiān)測(cè)和控制,可以根據(jù)土壤濕度情況自動(dòng)給花卉澆水,避免了因疏忽和忙碌導(dǎo)致的澆水不足或過(guò)度澆水的問(wèn)題,還可以遠(yuǎn)程監(jiān)控花卉的生長(zhǎng)狀況,及時(shí)了解花卉的狀態(tài)并做出調(diào)整,幫助花卉更加健康生長(zhǎng)[2]。
本文將著重介紹智能花卉澆灌系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),以及使用樹莓派3B+、物聯(lián)網(wǎng)和傳感器技術(shù)來(lái)實(shí)現(xiàn)該系統(tǒng)的過(guò)程。同時(shí),本文還將介紹后端使用springboot框架,前端使用Uniapp框架開發(fā)的微信小程序的相關(guān)內(nèi)容。
1 總體方案設(shè)計(jì)
本系統(tǒng)由硬件和軟件兩部分組成,硬件部分以樹莓派3B+作為主控制器通過(guò)連接溫濕度傳感器(DHT11) 、土壤濕度傳感器(YL-69) 、樹莓派官方攝像頭以及水泵實(shí)現(xiàn)對(duì)花卉的生長(zhǎng)狀況監(jiān)測(cè),如果土壤濕度超出閾值則開啟水泵進(jìn)行澆水,通過(guò)攝像頭提供的畫面可以實(shí)時(shí)監(jiān)測(cè)花卉的生長(zhǎng)狀態(tài)。軟件部分由spring boot、mybatis、uniapp 構(gòu)成,實(shí)現(xiàn)了樹莓派數(shù)據(jù)上傳至服務(wù)器,對(duì)數(shù)據(jù)進(jìn)行持久化存儲(chǔ),后端提供接口給微信小程序調(diào)用,展示當(dāng)前花卉環(huán)境數(shù)據(jù)以及土壤濕度并可以對(duì)花卉進(jìn)行實(shí)時(shí)監(jiān)控[3]。如圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)硬件的整體框圖
本系統(tǒng)主要由樹莓派主機(jī)板(3B+) 、溫濕度傳感器(DH11) 、土壤濕度傳感器(YL-69) 以及樹莓派官方攝像頭構(gòu)成。溫濕度傳感器、土壤濕度傳感器通過(guò)杜邦線連接到樹莓派的GPIO引腳,攝像頭直接插入樹莓派CSI接口。樹莓派通過(guò)自帶的Wi-Fi模塊傳輸數(shù)據(jù)到后端[4]。如圖2所示。
2.2 樹莓派3B+
樹莓派3B+是一款基于ARM架構(gòu)的小型單板計(jì)算機(jī),由英國(guó)樹莓派基金會(huì)(Raspberry Pi Foundation) 設(shè)計(jì)和生產(chǎn)。它是樹莓派系列中的一款產(chǎn)品,是樹莓派2的升級(jí)版,于2018年3月發(fā)布。樹莓派3B+采用了Broadcom BCM2837B0處理器,主頻為1.4GHz,集成了1GB LPDDR2 SDRAM內(nèi)存,可以運(yùn)行各種Linux操作系統(tǒng)、Python等開發(fā)語(yǔ)言和應(yīng)用軟件[5]。
該款單板計(jì)算機(jī)擁有4個(gè)USB 2.0接口、一個(gè)千兆以太網(wǎng)接口、一個(gè)HDMI視頻輸出接口、3.5毫米音頻接口和GPIO引腳等多個(gè)接口,方便用戶進(jìn)行各種擴(kuò)展和連接。這樣的配置完全滿足本系統(tǒng)中操作系統(tǒng)文件和數(shù)據(jù)存儲(chǔ)以及相關(guān)程序的運(yùn)行[6]
2.3 傳感器
本系統(tǒng)需要監(jiān)測(cè)花卉周圍環(huán)境溫濕度,采用了DHT11傳感器,幫助判斷花卉生長(zhǎng)環(huán)境是否適宜,還需要實(shí)時(shí)監(jiān)測(cè)土壤濕度,采用了YL-69傳感器,當(dāng)土壤濕度低于一定閾值時(shí)自動(dòng)開啟澆水功能。還需要通過(guò)攝像頭實(shí)時(shí)監(jiān)控,直觀地看到花卉的生長(zhǎng)狀況。
采用了樹莓派官方攝像頭。
1) DHT11傳感器是一種數(shù)字溫濕度傳感器,具有簡(jiǎn)單、經(jīng)濟(jì)實(shí)惠等特點(diǎn)。它可以測(cè)量環(huán)境的溫度和濕度,精度較高,溫度精度為±2℃,濕度精度為±5%RH。DHT11采用單總線通信,輸出數(shù)字信號(hào),方便與其他數(shù)字設(shè)備集成[7]。
2) YL-69是一種土壤濕度傳感器,可以測(cè)量土壤中的水分含量。它采用電阻式測(cè)量原理,可以通過(guò)測(cè)量傳感器電阻值來(lái)計(jì)算土壤濕度。YL-69的使用范圍廣泛,可以應(yīng)用于花卉、植物、農(nóng)作物等領(lǐng)域,幫助種植者及時(shí)了解土壤濕度情況,有助于提高作物產(chǎn)量和品質(zhì)[8]。
3) 樹莓派官方攝像頭是一款專為樹莓派設(shè)計(jì)的高清攝像頭,由樹莓派基金會(huì)推出,具有廣泛的應(yīng)用場(chǎng)景和極高的可擴(kuò)展性。它支持五百萬(wàn)像素,1080p 的高清攝像和錄像,同時(shí)具有高幀率和低延遲的特點(diǎn),用戶可以通過(guò)Python等編程語(yǔ)言控制攝像頭進(jìn)行拍照、錄像等操作。同時(shí),樹莓派官方也提供了基于樹莓派的操作系統(tǒng)Raspbian,以及開源的攝像頭驅(qū)動(dòng)程序和API接口,方便用戶進(jìn)行二次開發(fā)和擴(kuò)展。
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)主要包括樹莓派端和管理端兩部分,樹莓派端和管理端是智能花卉澆灌系統(tǒng)的兩個(gè)重要組成部分。樹莓派端主要負(fù)責(zé)花卉澆水、溫濕度監(jiān)測(cè)、實(shí)時(shí)監(jiān)測(cè)花卉等工作,而管理端主要負(fù)責(zé)查看花卉數(shù)據(jù),保存數(shù)據(jù)等工作。
在軟件設(shè)計(jì)中,使用Python編寫樹莓派端的傳感器控制、攝像頭控制以及網(wǎng)絡(luò)通信腳本,能夠充分利用Python的簡(jiǎn)潔、易學(xué)和功能豐富等特點(diǎn),快速地開發(fā)和實(shí)現(xiàn)樹莓派端的各項(xiàng)功能。
而在前端方面,采用UniApp編寫微信小程序,能夠使得系統(tǒng)具有良好的跨平臺(tái)和兼容性,能夠在各類移動(dòng)設(shè)備上快速運(yùn)行和響應(yīng)。
在后端方面,使用Spring Boot框架開發(fā),能夠充分利用Spring Boot的簡(jiǎn)潔、高效和易用等優(yōu)點(diǎn),快速地開發(fā)和實(shí)現(xiàn)后端的各項(xiàng)功能,同時(shí)還能夠?qū)崿F(xiàn)系統(tǒng)的快速部署和運(yùn)行。
綜上所述,本系統(tǒng)的軟件設(shè)計(jì)采用了Python、Uni?App和Spring Boot等技術(shù),能夠快速地開發(fā)和實(shí)現(xiàn)各項(xiàng)功能,提高系統(tǒng)的效率和可靠性,從而更好地滿足用戶的需求和期望。
3.1 樹莓派端設(shè)計(jì)
樹莓派端主要由Python語(yǔ)言編寫的傳感器控制、視頻監(jiān)控、網(wǎng)絡(luò)通信腳本三個(gè)模塊組成。Python有著擁有大量的開源庫(kù)和豐富的文檔資源,能夠方便地進(jìn)行開發(fā)和調(diào)試,可以輕松地實(shí)現(xiàn)對(duì)多種傳感器和設(shè)備的控制,包括DHT11和YL-69傳感器,以及樹莓派攝像頭等設(shè)備。
在Python眾多庫(kù)中GPIO庫(kù)提供了樹莓派對(duì)傳感器數(shù)據(jù)的傳輸控制,Adafruit_DHT庫(kù)提供了環(huán)境溫濕度的監(jiān)測(cè)API,motion庫(kù)提供了視頻監(jiān)控功能,request 庫(kù)提供了訪問(wèn)遠(yuǎn)程服務(wù)器的能力。本系統(tǒng)合理地使用這些庫(kù),完成了對(duì)環(huán)境數(shù)據(jù)獲取,并進(jìn)行數(shù)據(jù)處理再到數(shù)據(jù)傳輸?shù)椒?wù)器的功能。實(shí)現(xiàn)了智能家庭花卉澆灌系統(tǒng)的核心功能。
3.2 后端設(shè)計(jì)
后端是智能花卉澆灌系統(tǒng)的重要組成部分,主要由數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)兩個(gè)模塊組成。
數(shù)據(jù)處理模塊是對(duì)采集到的數(shù)據(jù)進(jìn)行處理和分析,其中包括對(duì)花卉進(jìn)行自動(dòng)澆水的判斷和對(duì)視頻流進(jìn)行編解碼和傳輸?shù)裙ぷ?。自?dòng)澆水是智能花卉澆灌系統(tǒng)的重要功能之一,通過(guò)對(duì)溫濕度等數(shù)據(jù)的監(jiān)測(cè)和分析,能夠判斷花卉是否需要澆水,從而實(shí)現(xiàn)對(duì)花卉的自動(dòng)化管理。
數(shù)據(jù)存儲(chǔ)模塊則負(fù)責(zé)將處理后的數(shù)據(jù)用Mybatis 持久化框架存儲(chǔ)到數(shù)據(jù)庫(kù)(MySQL) 中,并通過(guò)SpringBoot提供接口供前端調(diào)用。Mybatis是一款優(yōu)秀的持久化框架,能夠快速地將Java對(duì)象映射到數(shù)據(jù)庫(kù)中,從而方便地進(jìn)行數(shù)據(jù)存儲(chǔ)和查詢。同時(shí),Spring Boot 是一款輕量級(jí)的開發(fā)框架,能夠快速地構(gòu)建和開發(fā)后端服務(wù),并提供一系列的自動(dòng)化配置和優(yōu)化,從而提高系統(tǒng)的性能和穩(wěn)定性。
綜上所述,后端是智能花卉澆灌系統(tǒng)的重要組成部分,其中數(shù)據(jù)處理模塊和數(shù)據(jù)存儲(chǔ)模塊分別負(fù)責(zé)對(duì)采集到的數(shù)據(jù)進(jìn)行處理和存儲(chǔ),能夠提高系統(tǒng)的效率和可靠性,從而更好地實(shí)現(xiàn)對(duì)花卉的管理和自動(dòng)化控制。
1) 后端采用了Spring Boot 框架,該框架是基于Java 語(yǔ)言開發(fā),提供了大量的開箱即用的功能和插件,如內(nèi)嵌的 Tomcat 服務(wù)器、Spring Security 等,開發(fā)者可以通過(guò)簡(jiǎn)單的配置和引入依賴,即可使用這些功能。數(shù)據(jù)存儲(chǔ)模塊使用了MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ),并使用了MyBatis框架進(jìn)行數(shù)據(jù)訪問(wèn)。
2) MyBatis是一款輕量級(jí)的持久化框架,可以很容易地集成到Spring、Spring Boot等主流的Java開發(fā)框架中,同時(shí)MyBatis提供了很好的參數(shù)綁定功能,能夠有效地防止SQL注入等安全漏洞,保障了系統(tǒng)的安全性,更好地滿足系統(tǒng)的需求,并提高系統(tǒng)的可靠性和可用性[9]。
3.3 前端設(shè)計(jì)
1) 前端主要包括用戶界面和與后端交互的接口。用戶界面包括了監(jiān)測(cè)頁(yè)面、澆水頁(yè)面和視頻監(jiān)控頁(yè)面,用戶可以在頁(yè)面上實(shí)時(shí)查看環(huán)境溫濕度、花卉土壤濕度、自動(dòng)澆水狀態(tài)和視頻監(jiān)控畫面等信息。
2) 前端使用了UniApp框架進(jìn)行開發(fā),主要基于Vue.js語(yǔ)言開發(fā)。與后端的交互采用了RESTful API 接口進(jìn)行通信,前端通過(guò)調(diào)用接口獲取后端數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行處理和展示[10]。
綜上,本系統(tǒng)的軟件設(shè)計(jì)主要包括樹莓派程序和管理端兩個(gè)部分,后端采用了Spring Boot框架進(jìn)行開發(fā),Python語(yǔ)言編寫傳感器控制代碼,前端采用了Uni?App框架進(jìn)行開發(fā),兩者通過(guò)RESTful API接口進(jìn)行通信。系統(tǒng)流程如圖4所示。
4 系統(tǒng)運(yùn)行截圖及核心代碼
4.1 系統(tǒng)運(yùn)行截圖
微信小程序主要有三個(gè)界面,進(jìn)入頁(yè)面、主頁(yè)面,和視頻監(jiān)控頁(yè)面。進(jìn)入頁(yè)面為系統(tǒng)名稱加系統(tǒng)logo 構(gòu)成,主頁(yè)由banner和花卉環(huán)境,花卉狀態(tài),以及最后一次收集數(shù)據(jù)時(shí)間構(gòu)成,視頻監(jiān)控頁(yè)展示花卉實(shí)時(shí)狀態(tài)。
4.2 系統(tǒng)核心代碼
5 結(jié)束語(yǔ)
物聯(lián)網(wǎng)技術(shù)可以在家庭中發(fā)揮重要的作用,帶來(lái)諸多好處。以智能花卉澆灌為例,智能花卉澆灌系統(tǒng)可以通過(guò)傳感器獲取花卉生長(zhǎng)環(huán)境的溫濕度和土壤濕度等信息,然后通過(guò)物聯(lián)網(wǎng)技術(shù)將這些數(shù)據(jù)傳輸?shù)皆贫诉M(jìn)行分析和處理。在這個(gè)過(guò)程中,智能花卉澆灌系統(tǒng)發(fā)揮了以下好處:
1) 實(shí)現(xiàn)自動(dòng)化控制:智能花卉澆灌系統(tǒng)可以通過(guò)物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)遠(yuǎn)程控制,使花卉澆水的過(guò)程更加自動(dòng)化。用戶可以通過(guò)手機(jī)等終端設(shè)備遠(yuǎn)程監(jiān)控花卉生長(zhǎng)環(huán)境,并控制澆水系統(tǒng)的開關(guān),實(shí)現(xiàn)自動(dòng)化澆水。
2) 實(shí)時(shí)監(jiān)控:通過(guò)物聯(lián)網(wǎng)技術(shù),智能花卉澆灌系統(tǒng)可以實(shí)時(shí)監(jiān)測(cè)花卉生長(zhǎng)環(huán)境的溫濕度和土壤濕度等指標(biāo),并將這些數(shù)據(jù)傳輸?shù)皆贫诉M(jìn)行分析和處理。用戶可以通過(guò)手機(jī)等終端設(shè)備隨時(shí)了解花卉生長(zhǎng)環(huán)境的狀態(tài),并及時(shí)采取措施[11]。
3) 節(jié)省能源:智能花卉澆灌系統(tǒng)可以根據(jù)花卉生長(zhǎng)環(huán)境的需要智能控制澆水,避免水資源的浪費(fèi)。同時(shí),系統(tǒng)還可以通過(guò)物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)遠(yuǎn)程控制,避免了不必要的人工澆水[12]。
4) 提高花卉生長(zhǎng)效果:通過(guò)物聯(lián)網(wǎng)技術(shù)實(shí)時(shí)監(jiān)測(cè)花卉生長(zhǎng)環(huán)境,系統(tǒng)可以根據(jù)花卉的需求進(jìn)行智能化控制,提高花卉的生長(zhǎng)效果。同時(shí),用戶還可以通過(guò)遠(yuǎn)程控制系統(tǒng),及時(shí)對(duì)花卉的生長(zhǎng)環(huán)境進(jìn)行調(diào)整,提高花卉生長(zhǎng)效果。
綜上所述,智能花卉澆灌系統(tǒng)發(fā)揮了重要作用,實(shí)現(xiàn)了花卉生長(zhǎng)環(huán)境的智能監(jiān)測(cè)和控制,節(jié)省了水資源,提高了花卉的生長(zhǎng)效果,為用戶帶來(lái)了更加便捷、高效和智能化的生活體驗(yàn)。