王新龍,陳 偉
(長治學(xué)院 計算機系,山西 長治 046011)
在農(nóng)業(yè)現(xiàn)代化進(jìn)程中,傳統(tǒng)的作業(yè)質(zhì)量檢測方式有很多缺陷,如測量數(shù)據(jù)誤差大、測量不及時等。為了檢測農(nóng)機深松作業(yè)的達(dá)標(biāo)情況,需要對農(nóng)機深松作業(yè)時的深度進(jìn)行實時監(jiān)測,并且將測量數(shù)據(jù)通過無線網(wǎng)絡(luò)傳輸至后臺服務(wù)器,在后臺服務(wù)器再進(jìn)一步進(jìn)行相應(yīng)處理。文章研究了利用超聲波傳感器測距原理進(jìn)行農(nóng)機深松作業(yè)深度自動檢測的技術(shù)和方法,通過GPRS將測量數(shù)據(jù)無線傳輸至網(wǎng)絡(luò)服務(wù)器,同時可以方便地在客戶端進(jìn)行及時查看。
本系統(tǒng)主要由超聲波深度檢測數(shù)據(jù)采集模塊、GPRS數(shù)據(jù)傳輸模塊、云服務(wù)器搭建模塊組成。系統(tǒng)總體框圖如圖1所示。
其中,超聲波深度檢測數(shù)據(jù)采集可以對農(nóng)機深松作業(yè)的深度進(jìn)行實時檢測;GPRS數(shù)據(jù)傳輸模塊可以將采集到的數(shù)據(jù)同步上傳至云服務(wù)器。
實驗系統(tǒng)的硬件主要由M26四頻段GSM/GPRS無線模塊、HC-SR04超聲波測距模塊組成[1]。對于HC-SR04超聲波測距模塊以及M26模塊都是作為分模塊完成其各自功能,為實現(xiàn)硬件整合需要一個主控模塊。在綜合考慮性能、成本、功耗的因素的影響后,實驗采用了STM32系列中的STM32F103C8T6作為本次研究的主控芯片模塊。
實驗選用HC-SR04的超聲波測距模塊,HC-SR04超聲波測距模塊能夠?qū)崿F(xiàn)2 cm-400 cm的非接觸式距離感測功能,測距精度可達(dá)高到3 mm,該模塊由超聲波發(fā)射器,接收器和控制電路組成。
在對HC-SR04超聲波測距模塊進(jìn)行控制時,基于Arduino電子平臺的便捷性與靈活性,該實驗選用了一款基于ATmega328處理器型號為nano的Arduino開發(fā)板作為HC-SR04超聲波測距模塊的控制板,以接受HC-SR04超聲波測距模塊所測量的數(shù)據(jù)。
對于作業(yè)點的經(jīng)緯度獲取及GPRS無線數(shù)據(jù)傳輸功能,試驗中采用了移遠(yuǎn)通信技術(shù)有限公司研發(fā)的M26模塊,該模塊是一款工業(yè)級的四頻段GSM/GPRS無線模塊。它的工作頻段是:GSM850 MHz,GSM900 MHz,DCS1800 MHz和 PCS1900 MHz。M26提供GPRS數(shù)據(jù)傳輸,GSM短信業(yè)務(wù),并支持GPRS multi-slot class1~12(默認(rèn)為 class12)、GPRS 編碼格式 CS-1、CS-2、CS-3 和 CS-4。
后臺云服務(wù)器的運行與搭建主要基于java平臺以及騰訊云服務(wù)器平臺,通過java提供的TCP/IP網(wǎng)絡(luò)服務(wù)支持及數(shù)據(jù)庫接入,搭建基本的服務(wù)器平臺,再通過基于騰訊云服務(wù)器平臺的外網(wǎng)接入功能,實現(xiàn)遠(yuǎn)程客戶端接入及GPRS數(shù)據(jù)傳輸功能,進(jìn)行農(nóng)機深松作業(yè)中的深度測量研究。
實驗中選擇了騰訊云服務(wù)器平臺,并在申請的云服務(wù)器平臺上搭建了實驗所用云主機,以便實現(xiàn)深度測量數(shù)據(jù)接收。
HC-SR04超聲波測距模塊在實際運用時,根據(jù)其模塊使用時序圖(圖2),分為如下三個步驟:
(1)使用IO口中的TRIG引腳口觸發(fā)測距,即給該IO口輸入10 us以上的高電平信號。
(2)HC-SR04超聲波測距模塊接收到觸發(fā)信號后能夠自動通過超聲波發(fā)射口發(fā)送8個40 khz的方波,同時在超聲波接收口自動檢測是否有信號返回;
(3)當(dāng)有信號返回時,通過IO口ECHO口輸出一個高電平方波,高電平方波持續(xù)的時間就是超聲波從發(fā)射到返回的時間。因此測量距離公式為:測試距離=(高電平時間*聲速(340M/S))/2。實際測量深度時,作業(yè)深度=機手長度-測試距離。

圖2 HC-SR04超聲波測距模塊時序圖
實驗采用了STM32系列中的STM32F103C8T6作為本次研究的主控芯片模塊,將HC-SR04超聲波測距模塊以及M26模塊通過硬件線路連線接入STM32F103C8T6芯片,正確連接后,運行控制程序?qū)崿F(xiàn)模塊各自功能。

圖3STM32F103C8T6與M26模塊連線圖
實驗通過串口連接傳輸相應(yīng)AT指令至M26模塊之中,以使M26模塊對應(yīng)完成基站定位獲取經(jīng)緯度及GPRS數(shù)據(jù)傳輸功能,如圖3所示。將STM32F103C8T6芯片與M26進(jìn)行線路連接,主要是進(jìn)行串口連線,即將M26模塊的TX引腳與STM32F103C8T6的RX引腳相連。將M26模塊的RX引腳與STM32F103C8T6的TX引腳,再將兩個芯片共同接地線,即可進(jìn)行M26模塊與STM32F103C8T6芯片的串口通信,可通過串口由STM32F103C8T6芯片向M26模塊發(fā)送AT指令,使M26模塊進(jìn)行相應(yīng)工作。
將超聲波測距模塊也接入STM32F103C8T6芯片上,由于在進(jìn)行超聲波測距時,對于HC-SR04超聲波測距模塊的控制芯片是Arduino nano開發(fā)板,因此直接與STM32F103C8T6芯片相連線的并不是HC-SR04超聲波測距模塊,而是這款基于ATmega328處理器的Arduino nano開發(fā)板,其基本工作原理是:開發(fā)板控制HC-SR04超聲波測距模塊進(jìn)行測距并得到測量數(shù)據(jù),通過串口將得到的測量數(shù)據(jù)傳輸至STM32F103C8T6主控芯片。主要連線同樣是進(jìn)行串口連線,將Arduino nano開發(fā)板的TX引腳與STM32F103C8T6的RX引腳相連,將Arduino nano開發(fā)板的RX引腳與STM32F103C8T6的TX引腳,再將兩個芯片共同接地線,即可進(jìn)行Arduino nano開發(fā)板與STM32F103C8T6芯片的串口通信[2][3]。
由于STM32F103C8T6芯片具有5個USART,實驗中同時將M26模塊和Arduino nano開發(fā)板與STM32F103C8T6主控芯片進(jìn)行串口連線,因此可以進(jìn)行多個串口通信,而在進(jìn)行多個串口通信時只需設(shè)置好串口響應(yīng)優(yōu)先級及搶占優(yōu)先級即可。在進(jìn)行兩個串口同時通信時,采用了關(guān)閉響應(yīng)原理,在進(jìn)行一個串口通信時,人為關(guān)閉另一個串口響應(yīng),如此交替進(jìn)行串口數(shù)據(jù)傳輸,避免了因串口中斷搶占問題引發(fā)的數(shù)據(jù)丟失、出錯等問題。
(1)STM32F103C8T6主控芯片在得到了Arduino nano開發(fā)板通過串口傳來的深度數(shù)據(jù)之后,啟動M26模塊的基站定位獲取經(jīng)緯度服務(wù)以得到經(jīng)緯度數(shù)據(jù),同時將經(jīng)緯度數(shù)據(jù)與深度數(shù)據(jù)打包,通過M26模塊的GPRS數(shù)據(jù)傳輸服務(wù)即可將打包數(shù)據(jù)傳輸至后臺服務(wù)器[4]。
通過M26模塊進(jìn)行數(shù)據(jù)傳輸,其AT指令為:“AT+QIOPEN=[
在測試實驗經(jīng)緯度獲取及GPRS數(shù)據(jù)發(fā)送時,通過使用網(wǎng)絡(luò)調(diào)試助手這款軟件直接進(jìn)行網(wǎng)絡(luò)協(xié)議、IP地址及端口號的相應(yīng)設(shè)置,從云主機上即可正常接收數(shù)據(jù)[5]。
通過java語言開發(fā)平臺,引入相應(yīng)封裝類“java.net.ServerSocket”啟動一個服務(wù)器,在此類的變量后,通過語句“new ServerSocket(端口號)”便可開放相應(yīng)的服務(wù)器端口以實現(xiàn)數(shù)據(jù)收發(fā)[6-8]。
(2)客戶端設(shè)備連接云主機服務(wù)器成功后,即可向服務(wù)器發(fā)送處理打包好的數(shù)據(jù)。
(3)實驗測得:在長時間連續(xù)進(jìn)行下,設(shè)備仍能進(jìn)行正常工作,服務(wù)器同時可以正常接受并處理數(shù)據(jù),并在服務(wù)器端動態(tài)顯示數(shù)據(jù)庫中最新存入的十個由設(shè)備發(fā)送來的數(shù)據(jù),測試結(jié)果見圖4。

圖4 服務(wù)器端動態(tài)顯示最十個數(shù)據(jù)
文章提出了一種農(nóng)機松作業(yè)時作業(yè)深度的檢測方法,并且結(jié)合物聯(lián)網(wǎng)技術(shù)對測試過程進(jìn)行了聯(lián)網(wǎng)監(jiān)測,從測試數(shù)據(jù)與實際作業(yè)數(shù)據(jù)對比來看,測量數(shù)據(jù)準(zhǔn)確,測量效果較理想。該研究所采用的方法技術(shù),未來可以在其他測距監(jiān)控場合得以應(yīng)用,這種方法是可行且高效的。