趙麗+張信民+張寶芳+田會(huì)峰
摘要:針對(duì)傳統(tǒng)溫室系統(tǒng)存在的問(wèn)題,設(shè)計(jì)1種基于微信平臺(tái)的智能溫室監(jiān)控系統(tǒng)。利用微信公眾平臺(tái)進(jìn)行遠(yuǎn)程監(jiān)控與管理,以新浪云服務(wù)器為中介,通過(guò)WiFi模塊實(shí)現(xiàn)單片機(jī)Arduino與微信服務(wù)器的數(shù)據(jù)交互。借助微信實(shí)現(xiàn)遠(yuǎn)距離監(jiān)控,這樣可以隨時(shí)隨地讀取溫室環(huán)境信息參數(shù),然后根據(jù)相關(guān)參數(shù),發(fā)送目標(biāo)指令,啟動(dòng)相應(yīng)的調(diào)節(jié)設(shè)備如噴水機(jī)、送風(fēng)機(jī)、加熱器、降溫器等,調(diào)節(jié)大棚內(nèi)的環(huán)境參數(shù),以達(dá)到最適宜條件,實(shí)現(xiàn)對(duì)溫室內(nèi)設(shè)備的遠(yuǎn)程操作。
關(guān)鍵詞:微信平臺(tái);智能溫室;WiFi模塊;數(shù)據(jù)交換;遠(yuǎn)距離監(jiān)控
中圖分類號(hào): YP277.2文獻(xiàn)標(biāo)志碼: A文章編號(hào):1002-1302(2017)23-0231-04
目前我國(guó)智能手機(jī)普及率較高,微信簡(jiǎn)單、方便操作,利用手機(jī)微信平臺(tái)可以實(shí)時(shí)監(jiān)控溫室系統(tǒng)。微信平臺(tái)與傳感器技術(shù)、網(wǎng)絡(luò)技術(shù)相結(jié)合,可實(shí)現(xiàn)溫室監(jiān)控系統(tǒng)的無(wú)線化、網(wǎng)絡(luò)化、智能化。
1溫室監(jiān)控系統(tǒng)總體方案設(shè)計(jì)
智能溫室控制系統(tǒng)采用分布式的體系結(jié)構(gòu),與以往的主機(jī)-終端模式相比,具有分布靈活、成本較低的優(yōu)點(diǎn)。本系統(tǒng)采用計(jì)算機(jī)作為監(jiān)控中心,主要負(fù)責(zé)溫室控制器上傳數(shù)據(jù)的存儲(chǔ)、顯示,可與多個(gè)溫室控制器組網(wǎng)通信,實(shí)現(xiàn)一機(jī)控制多溫室的集中管理模式。溫室控制器、數(shù)據(jù)采集模塊、開(kāi)關(guān)量控制模塊都是基于單片機(jī)的嵌入式系統(tǒng),計(jì)算機(jī)通過(guò)無(wú)線傳輸與溫室控制器通信,解決了現(xiàn)場(chǎng)布線不方便的問(wèn)題,溫室控制器通過(guò)現(xiàn)場(chǎng)控制器局域網(wǎng)絡(luò)(controller area network,簡(jiǎn)稱CAN)總線與數(shù)據(jù)采集模塊和開(kāi)關(guān)量控制模塊通信。在本系統(tǒng)中每個(gè)溫室都有1個(gè)溫室控制器,可完成對(duì)數(shù)據(jù)的采集和控制,有獨(dú)立的液晶顯示器和鍵盤(pán)系統(tǒng),可獨(dú)立地完成智能控制,同時(shí)把本溫室的各種環(huán)境參數(shù)和系統(tǒng)的運(yùn)行狀態(tài)傳輸給上位機(jī)的計(jì)算機(jī)系統(tǒng)。溫室監(jiān)控系統(tǒng)總結(jié)構(gòu)如圖1所示。
2智能溫室系統(tǒng)硬件設(shè)計(jì)
2.1系統(tǒng)硬件組成與工作原理
智能溫室系統(tǒng)主要由單片機(jī)、串口WiFi、溫濕度、光照、CO2濃度、有機(jī)發(fā)光二極管(organic light-emitting diode,簡(jiǎn)稱OLED)顯示、電機(jī)驅(qū)動(dòng)等模塊構(gòu)成[3],系統(tǒng)組成框架如圖2所示。
根據(jù)農(nóng)作物最佳生長(zhǎng)環(huán)境條件的需求,通過(guò)Arduino單片機(jī)[4-6]將傳感器感應(yīng)檢測(cè)到的溫室大棚環(huán)境信息參數(shù),如空氣、土壤溫濕度、二氧化碳濃度、光照度等參數(shù),傳輸給顯示屏,再通過(guò)單片機(jī)實(shí)時(shí)顯示在微信上,同時(shí)將編程里設(shè)定好的農(nóng)作物最佳生長(zhǎng)環(huán)境參數(shù)與實(shí)際環(huán)境參數(shù)范圍進(jìn)行比較,如果存在偏差,則可以通過(guò)由單片機(jī)控制的外圍設(shè)備(水泵、通風(fēng)扇、遮陽(yáng)簾、電磁閥、補(bǔ)光燈、暖風(fēng)機(jī)等)工作來(lái)改善環(huán)境信息參數(shù),當(dāng)達(dá)到農(nóng)作物最佳生長(zhǎng)條件時(shí),設(shè)備則會(huì)停止工作。
2.2智能溫室系統(tǒng)硬件電路設(shè)計(jì)
2.2.1串口WiFi模塊硬件設(shè)計(jì)本設(shè)計(jì)中的ESP8266WiFi模塊用于連接路由器,然后接收手機(jī)端發(fā)送的信號(hào),對(duì)單片機(jī)進(jìn)行控制。ESP8266是一款超低功耗的模塊,擁有業(yè)內(nèi)極富競(jìng)爭(zhēng)力的封裝尺寸和超低能耗技術(shù),專為移動(dòng)設(shè)備和互聯(lián)網(wǎng)的應(yīng)用設(shè)計(jì),可將用戶的物理設(shè)備連接到WiFi無(wú)線網(wǎng)絡(luò)上,進(jìn)行互聯(lián)網(wǎng)或局域網(wǎng)通信,實(shí)現(xiàn)聯(lián)網(wǎng)功能。ESP8266可廣泛應(yīng)用于智能電網(wǎng)、智能交通、智能家具、手持設(shè)備、工業(yè)控制等領(lǐng)域。溫室系統(tǒng)硬件連接情況如圖3所示。
2.2.2CO2模塊硬件設(shè)計(jì)CO2模塊選用的是MG811。MG811是常用于家庭環(huán)境二氧化碳探測(cè)的裝置,二氧化碳?xì)怏w敏感元件測(cè)試濃度的范圍為0~10 000 μmol/mol。CO2模塊原理如圖4所示。
2.2.3OLED模塊硬件設(shè)計(jì)與陰極射線管(cathode ray tube,簡(jiǎn)稱CRT)相比,OLED具有驅(qū)動(dòng)電壓低、體積小、質(zhì)量輕等優(yōu)點(diǎn),OLED顯示屏的響應(yīng)時(shí)間超過(guò)薄膜晶體管液晶顯示器(thin film transistor-liquid crystal display,簡(jiǎn)稱TFT-LCD)液晶屏。TFT-LCD的響應(yīng)時(shí)間為幾十毫秒,現(xiàn)在做得最好的TFT-LCD 響應(yīng)時(shí)間也只有12 ms。而 OLED顯示屏的響應(yīng)時(shí)間是幾微秒到幾十微秒。OLED與單片機(jī)的連接線如圖5所示。
3智能溫室系統(tǒng)軟件設(shè)計(jì)
3.1下位機(jī)軟件設(shè)計(jì)
智能溫室系統(tǒng)通過(guò)傳感器實(shí)時(shí)檢測(cè)溫室的信息,如溫濕度、CO2濃度、光照度等,當(dāng)這些參數(shù)與系統(tǒng)設(shè)定參數(shù)有偏差,即不是農(nóng)作物生長(zhǎng)的最有利條件時(shí),可以通過(guò)由單片機(jī)控制的外圍設(shè)備(水泵、通風(fēng)扇、遮陽(yáng)簾、電磁閥、補(bǔ)光燈、暖風(fēng)機(jī)等)工作來(lái)改善環(huán)境信息參數(shù),當(dāng)達(dá)到農(nóng)作物最佳生長(zhǎng)條件時(shí),設(shè)備就會(huì)停止工作。主程序流程如圖6所示。
3.2微信平臺(tái)的設(shè)計(jì)[7-8]
3.2.1訂閱號(hào)的建立(1)在瀏覽器地址欄中輸入https://mp.weixin.qq.com進(jìn)入頁(yè)面后點(diǎn)擊右上角“立即注冊(cè)”鏈接,如圖7所示。
(2)輸入郵箱、密碼及驗(yàn)證碼,勾選“我同意并遵守《微信公眾平臺(tái)服務(wù)協(xié)議》”進(jìn)行注冊(cè)。
(3)登錄注冊(cè)時(shí)在填寫(xiě)的郵箱里查找微信激活郵件,點(diǎn)擊其中的鏈接激活微信公眾賬號(hào)。
(4)根據(jù)需要選擇訂閱號(hào)、服務(wù)號(hào)、企業(yè)號(hào)。在這里選擇注冊(cè)訂閱號(hào),如圖8所示。
(5)提交完成后進(jìn)入微信公眾賬號(hào)信息注冊(cè)界面,填寫(xiě)公眾賬號(hào)名稱、上傳賬號(hào)頭像、生成訂閱號(hào)二維碼等相關(guān)信息。
(6)為與新浪應(yīng)用引擎(sina app engine,簡(jiǎn)稱SAE)關(guān)聯(lián),即實(shí)現(xiàn)通過(guò)在SAE中編寫(xiě)程序來(lái)檢測(cè)微信接收端接收到的信息并發(fā)送相關(guān)內(nèi)容,必須在訂閱號(hào)中設(shè)置為開(kāi)發(fā)者模式來(lái)進(jìn)行自定義菜單(控制訂閱號(hào)接收信息及發(fā)送內(nèi)容)并獲取相關(guān)APP ID(應(yīng)用ID)和APP secret,兩者的作用相當(dāng)于密碼,只有知道兩者參數(shù),才能在新浪SAE服務(wù)器中編寫(xiě)程序,然后正確的關(guān)聯(lián)到該賬號(hào)。如圖9所示。endprint
3.2.2新浪云的搭建新浪SAE的地址為http://sae.sina.
com.cn/,進(jìn)入界面選擇“注冊(cè)賬號(hào)”鏈接,開(kāi)始進(jìn)入注冊(cè)新浪云賬號(hào)流程,該流程與微信公眾賬號(hào)注冊(cè)流程一致,在此就不再累贅,填寫(xiě)完賬戶信息之后,進(jìn)入賬戶信息界面。
在控制臺(tái)界面,點(diǎn)擊“創(chuàng)建新應(yīng)用”按鈕,SAE可以免費(fèi)申請(qǐng)10個(gè)應(yīng)用。創(chuàng)建后選擇二級(jí)域名和應(yīng)用名稱,開(kāi)發(fā)語(yǔ)言選擇超文本預(yù)處理器(hypertext preprocessor,簡(jiǎn)稱PHP)編寫(xiě)。SAE中的應(yīng)用即為服務(wù)器,可以在服務(wù)器中編寫(xiě)程序并建立數(shù)據(jù)庫(kù),將其他軟件平臺(tái)鏈接到該應(yīng)用對(duì)應(yīng)的域名,即可根據(jù)程序反饋相應(yīng)信息并改變或者記錄信息到數(shù)據(jù)庫(kù)內(nèi)部。創(chuàng)建完成后生成的應(yīng)用界面如圖10所示。在微信開(kāi)發(fā)界面中填寫(xiě)參數(shù)如圖11所示。URL為服務(wù)器域名,Token填寫(xiě)為weixin,Token的作用是作為通信密碼在PHP編程中使用。
3.3.3數(shù)據(jù)庫(kù)的設(shè)計(jì)在SAE中建立數(shù)據(jù)庫(kù)的目的是當(dāng)用戶發(fā)送控制信號(hào)到公眾平臺(tái)時(shí),使數(shù)據(jù)庫(kù)中的參數(shù)發(fā)生改變,
然后通過(guò)WiFi模塊傳輸?shù)絾纹瑱C(jī)當(dāng)中作為控制信號(hào)。數(shù)據(jù)庫(kù)內(nèi)包含兩大部分內(nèi)容,一方面為各種傳感器采集的信息,另一方面為控制量當(dāng)前的狀態(tài)值(0位和1位)建立過(guò)程。
3.3.3.1傳感器信息數(shù)據(jù)庫(kù)建立在控制臺(tái),選中左側(cè)菜單欄中的“數(shù)據(jù)庫(kù)與緩存服務(wù)”,進(jìn)入界面之后點(diǎn)擊管理MySQL,進(jìn)入數(shù)據(jù)庫(kù)建立界面如圖12所示。根據(jù)傳感器采集的參數(shù)信息,定義變量,建立數(shù)據(jù)如圖13所示。
3.3.3.2控制變量數(shù)據(jù)庫(kù)建立按照與傳感器數(shù)據(jù)建立一致的方式建立如圖14所示變量數(shù)據(jù)庫(kù),各個(gè)變量代表的含義:TF為通風(fēng)扇;YL為遮陽(yáng)簾;NF為暖風(fēng)機(jī);BG為補(bǔ)光燈;PT為噴頭。變量類型選擇int,當(dāng)變量值為1時(shí), 表示該變量
控制下的機(jī)器為打開(kāi)狀態(tài);當(dāng)變量為0時(shí),表示該變量控制下的機(jī)器為關(guān)閉狀態(tài)。
3.3.4PHP語(yǔ)言編寫(xiě)[9]點(diǎn)擊應(yīng)用中的代碼管理,然后進(jìn)入編寫(xiě)代碼界面(圖15),當(dāng)然也可以用專門(mén)的應(yīng)用編譯軟件,如dreamweaver、zend studio。
編程步驟如下:(1)首先利用上述獲得的APP ID和APP secret獲取access_token進(jìn)行代碼和微信公眾賬號(hào)的關(guān)聯(lián),程序如下:
//curl模擬GET請(qǐng)求,獲取access_token
$appid=“wx1715b63756afcceb”;
$appsecret=“4c4b23176296723f43d0403b7307bac3”;
$access_token_url=“https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}”;
$access_token_arr=json_decode($outopt,true);
$access_token=$access_token_arr[‘a(chǎn)ccess_token];
(2)當(dāng)用戶發(fā)送“查詢參數(shù)”文本時(shí),反饋信息內(nèi)容編程,部分程序如下:
function receiveText($obj){
$content=$obj->Content;
$content1=“溫度”;//溫度查看
if (strstr($content,“查詢參數(shù)”))
{$con=mysql_connect(SAE_MYSQL_HOST_M.′:′.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
mysql_select_db(“app_mao18862601272”,$con);//修改數(shù)據(jù)庫(kù)名
$result=mysql_query(“SELECT*FROM sensor”);//“SELECT*FROM humidity”
(3)當(dāng)用戶發(fā)送控制信號(hào)時(shí)改變數(shù)據(jù)庫(kù)變量如下程序所示:if (strstr($content,“打開(kāi)通風(fēng)扇”)){$con=mysql_connect(SAE_MYSQL_HOST_M.′:′.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
$dati=date(“h:i:sa”);
mysql_select_db(“app_mao18862601272”,$con);//修改數(shù)據(jù)庫(kù)名
$sql=“UPDATE switch SET timestamp=‘$dati,TF=‘1
WHERE ID=‘1”;//修改開(kāi)關(guān)狀態(tài)值
if(!mysql_query($sql,$con))
{
die(‘Error: . mysql_error());
}
else{
mysql_close($con);
$reply=“好的?。?n已經(jīng)打開(kāi)!”;
}
}
(4)其他控制方式與(3)類似,當(dāng)接收相關(guān)信息時(shí),改變數(shù)據(jù)變量狀態(tài),并且反饋給用戶界面。
4系統(tǒng)運(yùn)行與改進(jìn)
對(duì)系統(tǒng)進(jìn)行測(cè)試發(fā)現(xiàn),系統(tǒng)運(yùn)行良好,微信平臺(tái)能正常實(shí)時(shí)顯示數(shù)據(jù),同時(shí)能利用微信控制相應(yīng)的調(diào)節(jié)設(shè)備,如水泵、暖風(fēng)機(jī)等。本系統(tǒng)還有許多不足需要下一步的改進(jìn):(1)無(wú)線通信的傳輸速率在穩(wěn)定性方面須要進(jìn)一步加強(qiáng),傳輸?shù)木嚯x受環(huán)境的影響較大,可根據(jù)情況采用有線的方式實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信,改進(jìn)無(wú)線傳輸模塊,采用具有自組網(wǎng)和路
由功能的ZigBee模塊進(jìn)行數(shù)據(jù)無(wú)線傳輸。(2)可以選用更高級(jí)的微信公眾賬號(hào),如企業(yè)號(hào),讓微信二級(jí)菜單更加形象化,而不是使用測(cè)試號(hào)推廣應(yīng)用產(chǎn)品。(3)在上位機(jī)上建立不同農(nóng)作物的專家系統(tǒng),可以根據(jù)不同作物的生長(zhǎng)階段自動(dòng)地修改系統(tǒng)控制參數(shù)以達(dá)到適宜作物生長(zhǎng)的最佳環(huán)境,這可能與微信有一定的沖突。
5結(jié)論
設(shè)計(jì)1種以Arduino UNO R3單片機(jī)為控制核心,基于微信公眾平臺(tái)遠(yuǎn)程監(jiān)視和控制,將采集數(shù)據(jù)實(shí)時(shí)通過(guò)WiFi傳到新浪云服務(wù)器數(shù)據(jù)庫(kù)中,用戶實(shí)時(shí)通過(guò)移動(dòng)終端遠(yuǎn)程操作的現(xiàn)代農(nóng)業(yè)智能監(jiān)控系統(tǒng)。采用物聯(lián)網(wǎng)技術(shù),突破傳統(tǒng)方式,方便及時(shí)獲得監(jiān)控?cái)?shù)據(jù),便于溫室的管理。
參考文獻(xiàn):
[1]馬增煒,馬錦儒,李亞敏. 基于WIFI的智能溫室監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 農(nóng)機(jī)化研究,2011(2):154-157.
[2]秦琳琳,陸林箭,石春,等. 基于物聯(lián)網(wǎng)的溫室智能監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào),2015,46(3):261-267.
[3]盛夕清. 數(shù)字化溫室智能監(jiān)控系統(tǒng)的設(shè)計(jì)與應(yīng)用[J]. 農(nóng)業(yè)網(wǎng)絡(luò)信息,2006(6):21-23.
[4]李永華,高英,陳青云. Arduino軟硬件協(xié)同設(shè)計(jì)實(shí)戰(zhàn)指南[M]. 1版. 北京:清華大學(xué)出版社,2015.
[5]李明亮. Arduino項(xiàng)目DIY[M]. 1版. 北京:清華大學(xué)出版社,2015.
[6]Margolis M. Arduino權(quán)威指南[M]. 2版. 北京:人民郵電出版社,2015.
[7]易偉. 微信公眾平臺(tái)搭建與開(kāi)發(fā)揭秘[M]. 2版. 北京:機(jī)械工業(yè)出版社,2015.
[8]方倍工作室. 微信公眾平臺(tái)開(kāi)發(fā)最佳實(shí)踐[M]. 2版. 北京:機(jī)械工業(yè)出版社,2015.
[9]劉中華,潘凱華. PHP編程寶典[M]. 北京:人民郵電出版社,2011.江蘇農(nóng)業(yè)科學(xué)2017年第45卷第23期高雄,湯巖,陳鐵英,等. 基于圖像處理的甘藍(lán)蟲(chóng)害識(shí)別研究[J]. 江蘇農(nóng)業(yè)科學(xué),2017,45(23):235-238.endprint