沈周鋒 鄭慧珍
(漳州職業(yè)技術(shù)學(xué)院電子工程學(xué)院 福建漳州 363000)
當(dāng)前國(guó)際形勢(shì)復(fù)雜多變,科技領(lǐng)域合作時(shí)常因?yàn)楦鞣N因素異常中止。我國(guó)急需更多自主可控的核心技術(shù),并應(yīng)用到重要領(lǐng)域當(dāng)中。華為鴻蒙系統(tǒng)是一款全新的面向全場(chǎng)景的分布式操作系統(tǒng),創(chuàng)造一個(gè)超級(jí)虛擬終端互聯(lián)的世界,將人、設(shè)備、場(chǎng)景有機(jī)地聯(lián)系在一起。各大廠商紛紛加入鴻蒙生態(tài),為其存活和發(fā)展注入了強(qiáng)大動(dòng)力。
農(nóng)業(yè)種植領(lǐng)域關(guān)系到經(jīng)濟(jì)和民生,其智慧化和智能化是我國(guó)大力發(fā)展的領(lǐng)域之一。該領(lǐng)域接入鴻蒙生態(tài),既可以進(jìn)一步促進(jìn)農(nóng)業(yè)自動(dòng)化的發(fā)展,又可以保證核心技術(shù)自主可控和大數(shù)據(jù)安全。文獻(xiàn)[1-2]提出了一種基于LoRa WAN技術(shù)的農(nóng)業(yè)監(jiān)控系統(tǒng);文獻(xiàn)[3]設(shè)計(jì)了一種帶有視頻監(jiān)控功能的溫室大棚;文獻(xiàn)[4]提出了一種無(wú)線控制系統(tǒng)實(shí)現(xiàn)水果的半自動(dòng)化采摘,但是未提及終端設(shè)備的電路設(shè)計(jì)方案;文獻(xiàn)[5]提出了基于5G網(wǎng)絡(luò)的農(nóng)業(yè)科技園區(qū)智能化平臺(tái)的建設(shè)方案,未細(xì)化到具體的終端設(shè)計(jì)和通信。目前,將鴻蒙系統(tǒng)引入智慧農(nóng)業(yè)領(lǐng)域的案例寥寥無(wú)幾,是鴻蒙系統(tǒng)的推廣工作急需解決的任務(wù)。
文章以華為海思推出的Hi3861微控制器為主控核心,設(shè)計(jì)了一種土壤綜合參數(shù)和光照度監(jiān)測(cè)的物聯(lián)網(wǎng)傳感器系統(tǒng)。通過(guò)Hi3861芯片內(nèi)置的WiFi單元接入以太網(wǎng),將土壤溫濕度、電導(dǎo)率、pH值、氮磷鉀以及光照度等參數(shù)上傳至華為IOT平臺(tái)。遠(yuǎn)端服務(wù)器可下發(fā)控制命令,開啟和關(guān)閉灌溉系統(tǒng)。
農(nóng)場(chǎng)中一般劃分多個(gè)地塊,各個(gè)地塊的土壤綜合參數(shù)各不相同。如果采用單點(diǎn)測(cè)試的話,無(wú)法真實(shí)反映各個(gè)地塊土壤的狀態(tài)。多個(gè)傳感器分布在不同地塊,與CPU連線多、且傳輸距離遠(yuǎn),極大影響了數(shù)據(jù)采集的可靠性。因此采用RS485通信接口,該接口支持總線結(jié)構(gòu),多個(gè)傳感器接口直接并聯(lián),通過(guò)RS485轉(zhuǎn)RS232模塊接入CPU[6]。原理框架如圖1所示。
圖1 原理框架圖
圖1顯示,土壤綜合傳感器1~n通信端口直接并聯(lián),接入RS485轉(zhuǎn)RS232模塊,然后送入CPU。CPU作為主控核心,同時(shí)連接光照度檢測(cè)電路并采集數(shù)據(jù)。土壤綜合參數(shù)和光照度參數(shù)在CPU中打包后,通過(guò)CPU內(nèi)部集成的WiFi單元發(fā)射至以太網(wǎng),根據(jù)目標(biāo)IP地址和端口號(hào),傳輸至華為云服務(wù)器中。當(dāng)需要施肥或者灌溉時(shí),華為云服務(wù)器命令,通過(guò)以太網(wǎng)傳輸至CPU,CPU開啟相應(yīng)地塊的灌溉和施肥端口,實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)和管理的效果。
CPU和華為云服務(wù)器的通信采用MQTT協(xié)議。MQTT協(xié)議是ISO標(biāo)準(zhǔn)下基于發(fā)布/訂閱范式的消息協(xié)議。MQTT協(xié)議工作在TCP/IP協(xié)議族之上,是為硬件性能低下的遠(yuǎn)程設(shè)備以及網(wǎng)絡(luò)狀況糟糕的情況下而設(shè)計(jì)的消息協(xié)議。以協(xié)議自身輕量、簡(jiǎn)單、開放和易于實(shí)現(xiàn)等優(yōu)點(diǎn),廣泛的應(yīng)用于M2M(機(jī)器與機(jī)器)通信和物聯(lián)網(wǎng)(IOT)中。[7]
2.1土壤綜合傳感器電路
土壤綜合傳感器采用精訊暢通公司推出的多合一傳感器,該傳感器適用于測(cè)量土壤溫度、水分、土壤總鹽量(電導(dǎo)率)、土壤pH以及氨磷鉀。采用國(guó)際上新一代FDR測(cè)量方法,可達(dá)到3%以內(nèi)的測(cè)量精度。精度高、響應(yīng)速度快,輸出穩(wěn)定,適用于各種土質(zhì)。由于傳輸數(shù)據(jù)量小、速率低,RS485通信接口完全滿足通信需求。每個(gè)傳感器采用兩對(duì)雙絞線,即可實(shí)現(xiàn)供電和數(shù)據(jù)通信,實(shí)現(xiàn)較高的抗干擾性能和高達(dá)1200m的傳輸能力。土壤綜合傳感器如圖2所示[8]。
圖2 土壤綜合傳感器電路
S1~Sn為土壤綜合參數(shù)傳感器,采用12V供電,VDD和GND采用一對(duì)雙絞線連接。A和B端子為RS485的差分?jǐn)?shù)據(jù)線,同樣采用雙絞線連接。R7、R8和R9為終端電阻,一般連接在雙絞線兩端,用于消除電纜中由于阻抗不連續(xù)導(dǎo)致的信號(hào)反射。D2和D3為鉗位二極管,用于保護(hù)RS485總線,避免受外界干擾。U3采用ADM2483芯片,實(shí)現(xiàn)RS485接口轉(zhuǎn)換為RS232串口。由于RS232為全雙工接口,RS485為半雙工接口,DE和RE端子短路,作為發(fā)送和接收切換端子,高電平為發(fā)送、低電平為接收。TxD和RxD端子連接CPU的UART引腳。多個(gè)傳感器共用信號(hào)線與CPU通信,采用輪詢方式,分時(shí)共享總線。CPU為通信發(fā)起方,發(fā)送含有傳感器地址碼的問(wèn)詢幀。傳感器接收到問(wèn)詢幀后,檢測(cè)傳感器地址碼是否與本地地址碼一致。若是則回復(fù)測(cè)量數(shù)據(jù)幀,若否則不回應(yīng)。CPU輪流問(wèn)詢各傳感器,分時(shí)傳輸數(shù)據(jù),避免沖突。
2.2光照度檢測(cè)電路
農(nóng)作物光合作用是生長(zhǎng)的重要因素之一,因此實(shí)時(shí)檢測(cè)光照度,具有一定的現(xiàn)實(shí)意義。本設(shè)計(jì)采用BH1750傳感器[9]。它是16位數(shù)字輸出型,環(huán)境光強(qiáng)度傳感器集成電路。采用IIC接口與主控芯片通信,集成度高,外圍電路簡(jiǎn)單,光源依賴性弱,受紅外線影響很小,而且運(yùn)行功耗低,電路圖如圖3所示。VCC和GND連接3.3V電源,C16與電源并聯(lián),實(shí)現(xiàn)電源去耦合。ADDR端子為IIC地址設(shè)置端口,輸入低電平時(shí)器件地址為“0100011”,輸入高電平時(shí)器件地址為“1011100”,使IIC接口可同時(shí)連接多個(gè)BH1750傳感器。SCL為IIC接口的時(shí)鐘端口,SDA為IIC接口的數(shù)據(jù)端口,分別用R2和R3電阻上拉,連接至主控芯片對(duì)應(yīng)的IIC單元引腳。DVI端子作為SDA和SCL的端口參考電壓,同時(shí)是內(nèi)部寄存器的異步重置端口。因此,在上電時(shí)該引腳需要保持至少1us的低電平,然后保持高電平。合理R4和C17參數(shù),使充放電時(shí)間常數(shù)遠(yuǎn)大于1us,即可保證DVI端子足夠的上電低電平時(shí)間。BH1750傳感器作為IIC接口從機(jī),在CPU發(fā)起讀操作時(shí),及時(shí)上報(bào)光照度值。
圖3 光照度檢測(cè)電路
2.3 Hi3861電路和負(fù)載控制電路
主控芯片除了控制外圍電路的運(yùn)行,還需提供穩(wěn)定可靠的聯(lián)網(wǎng)服務(wù),因此采用華為海思公司出品的Hi3861芯片。該芯片是高集成度的2.4GHz WiFi SoC芯片,集成IEEE 802.11b/g/n基帶和RF電路,支持20MHz標(biāo)準(zhǔn)帶寬和5MHz/10MHz窄帶寬。內(nèi)部集成了高性能32bit微處理器、硬件安全引擎以及豐富的外設(shè)接口,包括IIC、UART、GPIO等單元,完全滿足本設(shè)計(jì)的應(yīng)用需求。內(nèi)部可運(yùn)行華為自研的鴻蒙操作系統(tǒng),達(dá)到超高的兼容性。Hi3861最小系統(tǒng)電路如圖4所示。芯片采用3.3V供電,IO控制單元、射頻RF單元和VBAT單元采用不同引腳供電,分別用C1、C2、C3、C6和C8去耦,實(shí)現(xiàn)不同單元供電電路的有效隔離。引腳8連接WiFi天線。引腳15和16連接片外40MHz晶振,為芯片提供系統(tǒng)時(shí)鐘。R1和C7組成復(fù)位電路。J1為程序燒錄和調(diào)試接口,通過(guò)CH430或者PL2303之類的USB轉(zhuǎn)TTL模塊連接電腦,即可實(shí)現(xiàn)程序燒錄或者軟件調(diào)試信息的輸出。使用引腳17和18的UART1復(fù)用功能,讀取土壤綜合參數(shù)。使用引腳2和3的IIC1復(fù)用功能,讀取光照度傳感器的數(shù)值。引腳27設(shè)置為普通GPIO口,控制外圍繼電器的斷開和閉合??刂曝?fù)載較多時(shí),可以啟用其他的GPIO口。
圖4 Hi3861電路
負(fù)載控制電路如圖5所示。采用繼電器控制交流電磁閥的開啟和關(guān)閉,從而實(shí)現(xiàn)自動(dòng)灌溉和施肥。繼電器線圈電流較大,不能直接用Hi3861的IO口驅(qū)動(dòng)。因此,采用9013三極管搭建共射電路。Control節(jié)點(diǎn)為高電平則三極管導(dǎo)通,繼電器吸合;反之,則三極管截止,繼電器斷開。R5為基極限流電阻。R6下拉電阻保證三極管上電瞬間默認(rèn)為截止?fàn)顟B(tài),同時(shí)用于屏蔽工頻干擾,避免繼電器誤動(dòng)作。D1作為繼電器線圈的反向泄流電阻,防止三極管截止瞬間,繼電器線圈產(chǎn)生反向電動(dòng)勢(shì),擊穿三極管。
圖5 負(fù)載控制電路
Hi3861中載入鴻蒙操作系統(tǒng),系統(tǒng)初始化時(shí),創(chuàng)建任務(wù)并進(jìn)行部分初始化工作,流程如圖6所示。芯片上電后,進(jìn)行鴻蒙系統(tǒng)初始化,然后進(jìn)入程序員定制的初始化程序。首先創(chuàng)建消息隊(duì)列,用于多個(gè)任務(wù)和回調(diào)函數(shù)之間的通信。然后創(chuàng)建主任務(wù),主要用于網(wǎng)絡(luò)連接的建立和管理、數(shù)據(jù)上傳和控制負(fù)載。接著創(chuàng)建傳感器讀數(shù)據(jù)任務(wù),用于建立Hi3861與傳感器的數(shù)據(jù)傳輸通道,讀取測(cè)量參數(shù)。最后對(duì)負(fù)載控制IO口進(jìn)行初始化。然后進(jìn)入系統(tǒng)自帶的任務(wù)調(diào)度環(huán)節(jié)。
主任務(wù)流程如圖7所示。首先進(jìn)行WiFi單元初始化和連接以太網(wǎng)。然后根據(jù)華為云服務(wù)器的地址和端口號(hào),建立TCP連接。與服務(wù)器握手成功后,進(jìn)行MQTT協(xié)議的初始化。設(shè)置MQTT消息接收回調(diào)函數(shù)入口地址,然后進(jìn)行MQTT連接,并訂閱指定主題的MQTT消息。每次接收到來(lái)自服務(wù)器的MQTT消息,操作系統(tǒng)自動(dòng)調(diào)用回調(diào)函數(shù),向操作系統(tǒng)申請(qǐng)消息存儲(chǔ)空間并存儲(chǔ),然后將服務(wù)器消息發(fā)送至消息隊(duì)列,供主任務(wù)讀取。主任務(wù)接著進(jìn)入死循環(huán),不斷詢問(wèn)消息隊(duì)列。當(dāng)消息隊(duì)列不為空時(shí),判斷消息類型。若消息要求上傳測(cè)量數(shù)據(jù),則解析出消息中的土壤參數(shù)和光照度數(shù)值,進(jìn)行數(shù)據(jù)拼裝,然后調(diào)用WiFi單元上傳。若消息要求控制負(fù)載,則設(shè)置相應(yīng)IO口電平值,打開或者關(guān)閉灌溉施肥執(zhí)行單元。
圖6 軟件流程圖
圖7 主任務(wù)流程圖
傳感器讀取任務(wù)流程如圖8所示。首先初始化UART單元,用于讀取土壤傳感器。然后初始化芯片內(nèi)的IIC通信單元,用于讀取光照度傳感器。接著程序進(jìn)入死循環(huán),輪詢各個(gè)土壤傳感器測(cè)量值,并保存。調(diào)用IIC單元讀取光照度傳感器測(cè)量值。接著使用結(jié)構(gòu)體鏈表,將多個(gè)測(cè)量值存儲(chǔ)至鏈表中,然后發(fā)送至消息隊(duì)列,供主任務(wù)讀取。接著調(diào)用sleep函數(shù),將任務(wù)掛起5min。該任務(wù)優(yōu)先級(jí)高于主任務(wù),因此操作系統(tǒng)每5min執(zhí)行一次讀取傳感器任務(wù)。在該任務(wù)掛起期間,操作系統(tǒng)運(yùn)行主任務(wù),實(shí)現(xiàn)數(shù)據(jù)上傳和服務(wù)器命令響應(yīng)。主任務(wù)中,每次響應(yīng)隊(duì)列消息后,釋放消息存儲(chǔ)空間,避免芯片內(nèi)存泄露。
圖8 傳感器讀取任務(wù)流程圖
對(duì)監(jiān)測(cè)器進(jìn)行近端測(cè)試和遠(yuǎn)端測(cè)試。設(shè)置兩個(gè)土壤綜合傳感器,分別用于檢測(cè)兩個(gè)地塊的土壤參數(shù)。另外,設(shè)置一個(gè)光照度傳感器和四個(gè)負(fù)載控制,兩個(gè)用于灌溉,兩個(gè)用于施液態(tài)肥料。經(jīng)過(guò)24h全天候運(yùn)行,監(jiān)測(cè)器每隔五分鐘檢測(cè)一次參數(shù)并上傳。服務(wù)器端能夠穩(wěn)定的接收到監(jiān)測(cè)器消息。通過(guò)PC機(jī)操作服務(wù)器頁(yè)面,下發(fā)灌溉和施肥命令,監(jiān)測(cè)器指定地塊的相應(yīng)繼電器能夠?qū)崟r(shí)動(dòng)作。
以Hi3861芯片作為主控芯片,控制傳感器和負(fù)載驅(qū)動(dòng)電路運(yùn)行。采用土壤綜合傳感器和光照度傳感器檢測(cè)農(nóng)作物環(huán)境參數(shù),集成負(fù)載控制電路實(shí)現(xiàn)自動(dòng)灌溉和施肥。Hi3861芯片內(nèi)部采用鴻蒙操作系統(tǒng),穩(wěn)定的實(shí)現(xiàn)了參數(shù)上傳和服務(wù)器命令下發(fā)。測(cè)試表明:監(jiān)測(cè)器能夠穩(wěn)定的運(yùn)行,實(shí)現(xiàn)農(nóng)業(yè)種植的自動(dòng)化和數(shù)字化。核心技術(shù)完全采用自主可控的國(guó)產(chǎn)技術(shù)。該研究的不足在于服務(wù)器端未開發(fā)APP,滿足移動(dòng)端的控制需求,這也為未來(lái)的設(shè)計(jì)和研究提供了一個(gè)方向。