郭杰
摘要:傳統(tǒng)植物養(yǎng)護(hù)需要耗費(fèi)大量人力,費(fèi)時(shí)費(fèi)力。隨著物聯(lián)網(wǎng)的發(fā)展和Android智能手機(jī)的普及,基于Wifi的土壤溫度、濕度、光照傳感器、監(jiān)控?cái)z像頭、智能插座價(jià)格低廉,使用方便,該文通過闡述系統(tǒng)的總體設(shè)計(jì)、運(yùn)行流程、軟件功能實(shí)現(xiàn)。提出了通過okhttp框架獲取第三方傳感器數(shù)據(jù)的方法,螢石云平臺獲取監(jiān)控視頻的步驟,以及利用智能插座實(shí)現(xiàn)遠(yuǎn)程控制的方法,給出了一種植物養(yǎng)護(hù)的低成本綜合解決方案。
關(guān)鍵詞:物聯(lián)網(wǎng);傳感器;Android;Okhttp
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)27-0096-03
Design and Implementation of Plant Intelligent Maintenance System Based on Internet of Things
GUO Jie
(School of electronic and information engineering, Nanjing Communications Institute of Technology, Nanjing 211188, China)
Abstract: Traditional plant maintenance requires a lot of manpower and is time consuming and labor intensive. With the development of the Internet of Things and the popularity of Android smartphones, Wifi-based soil temperature, humidity, illumination sensors, surveillance cameras, and smart sockets are inexpensive and easy to use. This article describes the overall design, operation flow, and software functions of the system. The method of obtaining third-party sensor data through okhttp framework, the steps of obtaining monitoring video by fluorite cloud platform, and the method of remote control using smart socket are presented, and a low-cost comprehensive solution for plant maintenance is given.
Key words: Internet of Things; sensor; Android; Okhttp
1 背景
隨著智能手機(jī)和物聯(lián)網(wǎng)的普及,植物種植養(yǎng)護(hù)逐步向智能化、無線聯(lián)網(wǎng)化方向發(fā)展,土壤溫濕度、光照傳感器配備Wifi通訊模組,可以將實(shí)時(shí)采集的數(shù)據(jù)上傳到云端服務(wù)器中,通過智能手機(jī)、平板電腦等移動(dòng)互聯(lián)網(wǎng)智能終端設(shè)備遠(yuǎn)程實(shí)時(shí)獲取數(shù)據(jù),隨時(shí)隨地掌握植物生長數(shù)據(jù),為植物的灌溉、補(bǔ)光提供科學(xué)數(shù)據(jù),切實(shí)減輕種植負(fù)擔(dān)。
2 系統(tǒng)設(shè)計(jì)
2.1 總體設(shè)計(jì)
系統(tǒng)由四大模塊組成,包括:植物支架系統(tǒng)、輔助種植養(yǎng)護(hù)系統(tǒng)、圖像和數(shù)據(jù)采集系統(tǒng)、軟件控制系統(tǒng)。植物支架系統(tǒng)由上層植物、中層控制設(shè)備、下部儲水層組成。輔助種植養(yǎng)護(hù)系統(tǒng)包括:LED補(bǔ)光燈、水泵、皮管噴淋頭、控制器。圖像和數(shù)據(jù)采集系統(tǒng)包括:土壤溫濕度傳感器、光照傳感器、監(jiān)控?cái)z像頭、路由器、云平臺服務(wù)器。傳感器和攝像頭通過Wifi無線網(wǎng)絡(luò)與路由器連接,接入互聯(lián)網(wǎng),經(jīng)過配置數(shù)據(jù)自動(dòng)上傳保存在第三方服務(wù)器中。軟件控制系統(tǒng)包括Android手機(jī)客戶端軟件和Web服務(wù)器網(wǎng)站系統(tǒng),Android手機(jī)App通過調(diào)用第三方開發(fā)的數(shù)據(jù)接口獲取遠(yuǎn)程服務(wù)器中存儲的傳感器數(shù)據(jù)和監(jiān)控視頻,Web服務(wù)器網(wǎng)站提供植物庫,用戶交流系統(tǒng)。系統(tǒng)總體設(shè)計(jì)如圖1所示:
2.2 系統(tǒng)流程
在植物支架中設(shè)置土壤溫濕度傳感器、光照傳感器、監(jiān)控?cái)z像頭,將采集到的傳感器數(shù)據(jù)由變送器發(fā)送到Wifi路由器,通過互聯(lián)網(wǎng)傳遞到指定的Web服務(wù)器中,圖像視頻信息采集后經(jīng)過Wifi路由器上傳到指定的Web服務(wù)器中。軟件控制系統(tǒng)調(diào)用第三方接口獲取服務(wù)器中保存的傳感器數(shù)據(jù)和視頻數(shù)據(jù),根據(jù)設(shè)置的環(huán)境閾值和植物習(xí)性信息,在植物土壤干燥時(shí)啟動(dòng)遠(yuǎn)程控制軟件,開啟Wifi智能插座開關(guān),啟動(dòng)水泵進(jìn)行灌溉。在植物光照不足時(shí)啟動(dòng)紅光LED燈進(jìn)行補(bǔ)光。系統(tǒng)運(yùn)行流程如圖2所示:
3 系統(tǒng)實(shí)現(xiàn)
3.1 軟件功能
Android手機(jī)客戶端包括用戶信息、植物養(yǎng)護(hù)操作、植物信息、互動(dòng)百科四個(gè)模塊,具體功能見圖3。
用戶信息包括:個(gè)人信息、修改密碼、植物環(huán)境數(shù)據(jù)的閾值設(shè)置,登錄、注冊等功能。
植物養(yǎng)護(hù)操作包括:統(tǒng)計(jì)查詢傳感器環(huán)境數(shù)據(jù)、在線監(jiān)控遠(yuǎn)程攝像頭上傳的視頻信息、種植控制遠(yuǎn)程啟動(dòng)智能插座控制程序。根據(jù)設(shè)置的閾值信息,低于最小值,高于最大值時(shí)發(fā)出環(huán)境報(bào)警信息。通過種植選型查看植物的生長習(xí)性和種植方式,在種植交流中可以查看種植的相關(guān)經(jīng)驗(yàn)文章。
植物信息包括:根據(jù)實(shí)際生長的植物新增植物,查看植物列表,查看該植物的溫度、濕度、光照數(shù)據(jù),查看植物名稱、種類、習(xí)性等信息。
互動(dòng)百科包括:種植的種類、種植文章優(yōu)選、植物搭配信息、植物圖片分享信息。
服務(wù)器端部署在MoPaaS服務(wù)器中,運(yùn)行環(huán)境是Tomcat和MySQL數(shù)據(jù)庫。通過后臺管理頁面發(fā)布植物種類、種植文章、互動(dòng)交流等內(nèi)容信息供手機(jī)端訪問。
3.2 界面設(shè)計(jì)
系統(tǒng)客戶端采用Android Fine開源框架,主界面上方為功能按鈕,單擊按鈕切換至相應(yīng)的六大功能頁面,具體設(shè)計(jì)如圖4所示:
3.3 關(guān)鍵技術(shù)實(shí)現(xiàn)
3.3.1 獲取傳感器數(shù)據(jù)
考慮系統(tǒng)的實(shí)用性和較低的成本,硬件傳感器選擇了市場中能夠量產(chǎn)且技術(shù)成熟的廠商產(chǎn)品,配備具有Wifi模組的變送器,將數(shù)據(jù)發(fā)送給無線路由器,再上傳到開放的Web服務(wù)器中,根據(jù)二次開發(fā)接口,在手機(jī)端程序中進(jìn)行調(diào)用,獲取溫度、濕度和光照數(shù)據(jù)。
以獲取傳感器設(shè)備歷史數(shù)據(jù)接口為例,采用Get方式提交Http請求,
請求格式如下:
http:// + IP + : + PORT + /Device/getDevHisData?devKey=xxx&
beginTime=xxxxxxxxxxxx&endTime;=xxxxxxxxxxxx&userID;=xxx&userPassword;=xxx
參數(shù)說明:
IP 為-Key 軟件主機(jī)的IP地址,例如:192.168.2.44;
PORT為-Key軟件主機(jī)的端口號:9001;
devKey為特定設(shè)備的唯一ID;
beginTime為數(shù)據(jù)的起始時(shí)間,時(shí)間格式為12位分別對應(yīng)年月日時(shí)分,如201605280806;
endTime為數(shù)據(jù)的結(jié)束時(shí)間,時(shí)間格式為12位分別對應(yīng)年月日時(shí)分,如201605281506;
userID的值為用戶帳號,userPassword的值為用戶密碼。
應(yīng)答格式:
{"HisData": [
{ "DataID": "2261072",
"TempValue": "23.2",
"HumiValue": "42.3",
"LngValue": "0.0",
"LatValue": "0.0",
"TimeValue": "2016-05-28 07:27:59"},
{"DataID": "2261193",
"TempValue": "23.2",
"HumiValue": "42.3",
"LngValue": "0.0",
"LatValue": "0.0",
"TimeValue": "2016-05-28 07:30:02"}]}
應(yīng)答參數(shù)說明:字符串為Json格式,整體上是一個(gè)Json對象,對象的值是一個(gè)對象數(shù)組。
HisData:只是一個(gè)對象名,用于解析對象值,無具體意義;
DataID:歷史數(shù)據(jù)的唯一ID;
TempValue:模擬量一的值;
HumiValue:模擬量二的值;
LngValue:歷史數(shù)據(jù)緯度值;
LatValue:歷史數(shù)據(jù)經(jīng)度值;
TimeValue:歷史數(shù)據(jù)保存的時(shí)間點(diǎn)。[1]
Android 客戶端應(yīng)用程序編寫?yīng)毩⒌腍ttpClient類,利用Okhttp框架的異步方法enqueue方法調(diào)用開放接口,在enqueue方法的回調(diào)方法中使用Handler將返回的JSON數(shù)據(jù)發(fā)送給主線程。在APP應(yīng)用程序中進(jìn)行JSON數(shù)據(jù)解析,并通過MPAndroidChart圖形框架以折線圖的方式動(dòng)態(tài)展示溫度、濕度、光照數(shù)據(jù),實(shí)現(xiàn)效果如圖5所示。
軟件提供實(shí)時(shí)環(huán)境數(shù)據(jù)查詢和歷史環(huán)境數(shù)據(jù)查詢。實(shí)時(shí)環(huán)境數(shù)據(jù)查詢時(shí),采用了Android Service解決方案,編寫?yīng)毩⒌膶?shí)時(shí)獲取環(huán)境信息服務(wù)類,在該類中利用定時(shí)器Timer和定時(shí)任務(wù)TimerTask,根據(jù)設(shè)置的時(shí)間間隔定時(shí)發(fā)出Http請求,獲取并解析數(shù)據(jù),實(shí)現(xiàn)動(dòng)態(tài)折線圖方式顯示數(shù)據(jù)。
歷史環(huán)境數(shù)據(jù)查詢提供最近一小時(shí),當(dāng)天,昨天,最近一周以及自定義時(shí)間間隔的方式查詢溫度、濕度、光照強(qiáng)度數(shù)據(jù)。
3.3.2 獲取監(jiān)控視頻數(shù)據(jù)
監(jiān)控?cái)z像頭選擇了??低暰哂蠾ifi功能的攝像頭,經(jīng)過配置,該攝像頭將采集到的視頻數(shù)據(jù)通過無線路由器傳遞到Web服務(wù)器中,根據(jù)提供的開放平臺接口,可以在手機(jī)端直接調(diào)用視頻模組,實(shí)時(shí)播放視頻內(nèi)容。
??低曁峁┝薝IKit,是基于螢石開放平臺OpenSDK封裝的UI組件,能以極簡的嵌入方式,快速在應(yīng)用中集成視頻功能。在Android平臺中使用UIKit的基本步驟為:創(chuàng)建應(yīng)用并獲得Appkey,使用Gradle安裝SDK,包括so庫文件以及jar包,在AndroidMainfest.xml 文件中配置 Android 權(quán)限,配置 build.gradle,在需要顯示播放的地方添加UI布局控件EZUIPlayer,編寫播放代碼,獲取EZUIPlayer實(shí)例,初始化EZUIKit,設(shè)置授權(quán)accesstoken,設(shè)置播放回調(diào)callback,設(shè)置播放url,調(diào)用startPlay方法就可以播放視頻。需要注意的是:在界面消失時(shí)調(diào)用停止播放,并且在界面銷毀時(shí)釋放資源。[2]
此外在螢石云開放平臺中還可以設(shè)置HTML5網(wǎng)頁方式進(jìn)行調(diào)用,直接在Android界面中嵌入WebView控件,設(shè)置URL地址即可查看視頻。
3.3.3 遠(yuǎn)程控制設(shè)備
為了實(shí)現(xiàn)低成本高效率的遠(yuǎn)程控制水泵灌溉、LED植物光照補(bǔ)光。系統(tǒng)采用了目前市場占有率最高的BroadLink智能插座,需要在手機(jī)端安裝第三方軟件智慧星App,實(shí)現(xiàn)遠(yuǎn)程開關(guān)控制和定時(shí)開關(guān)控制。
4 結(jié)束語
該文分析了基于物聯(lián)網(wǎng)的植物智能養(yǎng)護(hù)系統(tǒng)的一種低成本綜合解決方案,通過闡述系統(tǒng)設(shè)計(jì)、系統(tǒng)運(yùn)行流程、App軟件功能設(shè)計(jì)、界面設(shè)計(jì)、關(guān)鍵技術(shù)實(shí)現(xiàn)。提出了通過無線網(wǎng)絡(luò)獲取第三方傳感器數(shù)據(jù)的方法,螢石云平臺獲取監(jiān)控視頻的步驟,以及利用智能插座實(shí)現(xiàn)遠(yuǎn)程控制的方案。
參考文獻(xiàn):
[1] 濟(jì)南仁碩電子科技有限公司RS-RJ-K軟件接口說明書[EB/OL]. https://wenku.baidu.com/view/24e3ef0cfd4ffe4733687e21 af45b307e871f9ca.html.
[2] 海康威視螢石開放云平臺使用說明[EB/OL]. https://open.ys7.com/doc/zh/uikit/uikit_android.html.
[通聯(lián)編輯:謝媛媛]