譚虎成,趙承志
(長江大學電子信息學院,湖北荊州,434000)
白蟻危害各類木質(zhì)結構及建筑,是國際公認的五大害蟲之一,在全球范圍內(nèi)造成了巨大的經(jīng)濟損失[1]。近年來,隨著萬物互聯(lián)的理念的提出,物聯(lián)網(wǎng)得到了飛速發(fā)展,利用物聯(lián)網(wǎng)技術對白蟻進行偵測和預警,及時通知相關部門采取有效措施防治白蟻給古建筑帶來的危害?,F(xiàn)有的ZigBee技術和NB-IoT技術的集成設計[2]解決了ZigBee通信距離短的問題,需提高終端的射頻功率,集中器反而讓系統(tǒng)功耗變大,一旦集中器的電量耗盡,所有的終端會出現(xiàn)癱瘓現(xiàn)象,給工作人員帶來困擾。LoRa技術[3]的通信距離可達10km以上,且傳輸數(shù)據(jù)多層加密為傳輸做了安全保障,但是LoRa技術需要集中器且安裝非常麻煩,成本上也不適用于本項目場景。
本文采用窄帶物聯(lián)網(wǎng)技術的OpenCPU方案,Open CPU是一種嵌入式的開發(fā)解決方案,面向模組,可以簡化開發(fā)流程。由NB-IoT通信芯片BC20采集傳感器數(shù)據(jù)并上傳至云端服務器[4],實現(xiàn)實時自主休眠喚醒功能,利用干簧管傳感器的開關特性判斷附近是否有白蟻存在。NB-IoT技術是一種窄帶蜂窩通信LPWAN低功耗廣域網(wǎng)通信技術[5],此技術已廣泛用于無線抄表、共享單車、智能家電和環(huán)境監(jiān)測等各個行業(yè),以提供數(shù)據(jù)傳輸服務。本系統(tǒng)將NB-IoT模塊設計為主處理器,即采用OpenCPU開發(fā)應用到NB-IoT無線通信模塊上,用戶可通過模塊內(nèi)的處理器和FLASH資源來進行模塊設計、I/O設計等,可快捷開發(fā)嵌入式應用,從而縮短產(chǎn)品的開發(fā)周期,現(xiàn)今的NB-IoT模塊在成本上已經(jīng)得到大幅下降,從而提升了模塊的競爭力。
本方案的設計框圖如圖1所示,本系統(tǒng)設計主要分為多個數(shù)據(jù)終端和云端服務器。
圖1 系統(tǒng)設計框圖
數(shù)據(jù)采集終端是由BC20芯片為主體的一塊集成的電路板,負責連接傳感器以及收發(fā)數(shù)據(jù);云端服務器采用的是阿里云的服務器,輸入用戶名和密碼即可使用。
數(shù)據(jù)采集終端由BC20模塊、干簧管傳感器和電池組成,BC20采集干簧管的開關量、電源電池量、以及模塊的IMEI標識號。兩邊的干簧管用于判斷白蟻的存在,中間的干簧管是此數(shù)據(jù)采集終端電池的開關,電池采用的是3.6V鋰電池,如圖2所示。
圖2 數(shù)據(jù)采集終端組成圖
干簧管1上有磁鐵,導通給模塊上電。干簧管2和干簧管3下面也有磁鐵[2],所以也是導通的,但是磁鐵下面是玻璃沙珠,由白松木將它們包裹,白蟻喜食白松木,如果白松木被啃食,里面的玻璃沙珠就會漏出,從而磁鐵就會掉落,干簧管失去磁力,就會斷開,這樣就實現(xiàn)了“白蟻報警”。
本系統(tǒng)是基于NB-IoT模塊的OpenCPU方案開發(fā)的,NB-IoT模塊采用的是上海移遠公司的BC20模塊,OpenCPU是一種將模塊作為主處理器的解決方案,在成本與功耗方面占據(jù)巨大優(yōu)勢,BC20模塊外圍電路圖如圖3所示,圖中包括電源控制電路、電壓采集電路、數(shù)據(jù)采集電路等。
圖3 BC20電路設計圖
BC20模塊提供一個10位模數(shù)轉換輸入接口用來采集電壓值,而引腳電壓采集范圍在1.4V以內(nèi),故需使用電壓采集電路對電源電壓進行分壓,電壓采集電路包括電阻R20、電阻R21、電容C36。其中,電阻R20和電阻R21用于分壓電源電壓,電容C36可濾去電壓和電流中高頻雜志成分,保證電源輸出的穩(wěn)定性。
數(shù)據(jù)采集電路包括R22、R23、干簧管傳感器S2、干簧管傳感器S3,其中,R22以及R23用于限流,干簧管傳感器S2和干簧管傳感器S3用于判斷開關狀態(tài),當S2斷開,S3斷開時,BC20模組的兩個引腳S2和S3采集電平為低電平,代表有白蟻出現(xiàn);當S2斷開,S3閉合時,BC20模組引腳S2為低電平,引腳S3為高電平,代表有白蟻出現(xiàn);當S2閉合,S3閉合時,BC20模組引腳S2為高電平,引腳S3為高電平,代表無白蟻出現(xiàn)。
干簧管傳感器在斷開時不會產(chǎn)生任何形式的功耗,適合作為低功耗裝置的傳感器,可用于控制設備的電源開關。本設計使用三個干簧管傳感器,其中一個作為裝置的電源開關,另外兩個用于采集白蟻數(shù)據(jù)。BC20模塊的VDD_EXT接口為干簧管供電,如果干簧管2或干簧管3引腳電平為高電平,代表沒有白蟻;反之,如果干簧管2或干簧管3引腳電平為低電平,代表有白蟻存在。本系統(tǒng)的采集電路具有巨大優(yōu)勢,因干簧管傳感器屬于長期閉合狀態(tài),如使用電源供電上拉電路,會讓干簧管傳感器處于灌電流狀態(tài),從而達不到低功耗效果。BC20模塊在斷電的狀態(tài)下,VDD_EXT端口無電壓輸出,從而減少了不必要的電流消耗。
數(shù)據(jù)采集終端的軟件設計流程如圖4所示。BC20上電后初始化,入網(wǎng)后開啟定時器,若沒有入網(wǎng),則重新注冊入網(wǎng);然后接受數(shù)據(jù)并通過AT指令來進行數(shù)據(jù)上傳,上傳數(shù)據(jù)至服務器后,模塊定時時間到進入PSM休眠狀態(tài),若定時時間沒有到,則重新上傳數(shù)據(jù),直到定時時間到,最后等待休眠喚醒。
圖4 軟件流程圖
此次實驗所需要的調(diào)試工具有Sublimetext和串口助手,BC20芯片開發(fā)OPENCPU需要獲得上海BC20芯片的SDK文件,SDK為開發(fā)人員提供編譯環(huán)境、開發(fā)指南以及其他相關文檔、頭文件(定義所有API函數(shù)和類型聲明)、一些示例源代碼、開發(fā)源代碼的RIL、下載程序的工具。本文所使用的SDK文件為BC20_OpenCPU_NB1_SDK_V1.0。
先要對BC20芯片進行固件升級,需要在芯片上調(diào)試串口RXD_DBG和TXD_DBG上,用USB轉TTL串口數(shù)據(jù)線,連接然后選擇固件升級包進行升級。固件升級后的BC20模塊可進行編程處理,需完成固件升級和程序下載兩個步驟,編寫代碼工具Sublimetext,是一款跨平臺代碼編譯器,支持多種語言開發(fā),功能非常強大。打開Sublimetext編譯器就可添加SDK文件夾,SDK文件夾中包含不同的文件,移遠公司為了方便開發(fā)人員開發(fā)OpenCPU,SDK文件夾為用戶提供代碼例程。本文使用的是BC20模塊,其中包含TCP、UDP等協(xié)議連接,還有與Onenet云端、阿里云端連接的例程。本系統(tǒng)通過TCP協(xié)議將采集數(shù)據(jù)傳輸至監(jiān)控云端服務器,可使用Example_tcpclient.c文件進行程序編寫,還可通過Example_adc.c文件實現(xiàn)ADC采集任務。
完成代碼編寫工作后,查找SDK文件夾下的Make子文件夾,其中包含Gcc_makefile文件,此文件用于編譯編寫代碼的文件。設置C_PREDEF=-D __EXAMPLE_TCPCLIENT__可編譯Example_tcpclient.文件,每個文件中都包含一個條件編譯#ifdef的頭文件,這樣在預編譯時可區(qū)分每個文件。
程序下載完成后,將BC20電路板用USB轉TTL數(shù)據(jù)線連SDK文件夾中的build文件夾下的App_image_bin.cfg文件在編譯完成后生成,此文件是用于燒寫程序的文件。SDK中包含多個Example文件,使用make clean指令可擦除先前編譯好的cfg文件,make new指令用于重新編譯cfg文件。下載程序使用QFlash_V4.10工具,選擇配置文件app_image_bin.cfg可完成程序下載。
程序下載完成后,將BC20電路板用USB轉TTL數(shù)據(jù)線連接電腦,并用串口進行調(diào)試,查看串口輸出信息。
接電腦,并用串口進行調(diào)試,查看串口輸出信息。
獲取到的GPS信息為$GNRMC,074220.00,A,3020.08 49,N,11212.4592,E,0.750,,280222,,,A,V*12。
需要查看GPS協(xié)議,如下:
<0>$GPRMC,語句ID,表明該語句為Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦最小定位信息
<1>定位時UTC時間hhmmss.sss格式
<2>狀態(tài)A=定位V=導航
<3>緯度ddmm.mmm 格式(前導位數(shù)不足則補0)
<4>緯度方向N(北緯)或S(南緯)
<5>經(jīng)度dddmm.mmmm (前導位數(shù)不足則補0)
<6>經(jīng)度方向E(東經(jīng))或W(西經(jīng))
<7>速率,節(jié),Knots
<8>方位角(二維方向指向,相當于二維羅盤)
<9>當前UTC日期ddmmyy 格式
<10>磁偏角,(000- 180)度(前導位數(shù)不足則補0)
<11>磁偏角方向,E=東經(jīng),W=西經(jīng)
根據(jù)此參數(shù)設定得知,本實驗板獲取的位置信息的經(jīng)緯度3020.0849,N,11212,4592,E。 此經(jīng)緯度是度分秒的表示形式,需要進行一次轉化,變成坐標形式的經(jīng)緯度,坐標式的經(jīng)度為112.219943,緯度為30.338475,用百度地圖查看此經(jīng)緯度,恰好就是本實驗的地點位置,長江大學。
在云平臺監(jiān)控信息,看此芯片是否發(fā)送數(shù)據(jù)成功,如圖5所示,由圖可知,本實驗的數(shù)據(jù)在云監(jiān)控平臺上顯示出來,數(shù)據(jù)為043836323137303431353035383837180000,04為公司設備號,后面的3開頭為芯片的IMEI標識號,最后的10為干簧管的開關量,此為“白蟻報警”量。
圖5 云平臺數(shù)據(jù)顯示圖
基于BC20的白蟻監(jiān)測系統(tǒng)在穩(wěn)定性、功耗上具有巨大優(yōu)勢,所以本系統(tǒng)使用基于BC20的偵測方案對白蟻進行監(jiān)測。本系統(tǒng)中的終端節(jié)點可部署于復雜且潮濕的環(huán)境下,主要用于環(huán)境監(jiān)測白蟻,終端節(jié)點還可根據(jù)搭載不同類型的傳感器以實現(xiàn)特定監(jiān)測功能,如水質(zhì)污染、山體滑坡、橋梁隧道,高層建筑等監(jiān)測的應用場景。