將GSM技術應用到凍土區土壤溫度自動監測中,以滿足惡劣氣候條件下的無人值守、長時間、多點監測需求。詳細闡述了系統結構、施工過程及實驗結果分析。結果表明,該系統測量精度高、可靠性好、功耗低,可實現較大范圍內的多點測溫及超遠距離無線監測。
0 引言
高寒凍土區土壤溫度的監測,無論是對于凍土區斜坡的失穩機理研究,還是對于現代農業生產、建筑及輸油管道等基礎設施的防災御災,都起著至關重要的作用。在環境惡劣的高寒凍土區對地層土壤溫度進行監測時,長期以來都需要人工現場采集數據,勞動強度大、工作環境惡劣、效率低。國內外一些比較先進的監測系統已經利用全球通信系統(Global System for Mobilecommunication,GSM)運營商的短信業務,實現超遠距離的無線數據傳輸與報警[1].為了實現大面積、無人值守、長時間、多點監測,本文提供了一種基于GSM技術的土壤溫度自動監測系統,以滿足實際需求,并詳細介紹了施工過程。通過分析試驗點采集的數據,驗證了本系統的可靠性和實用性。
1 系統硬件設計
1.1 系統架構
系統主要由單片機主控板、GSM 模塊、數據采集模塊等構成,如圖1所示。具有定時采集、數據存儲、箱內溫度控制、電源管理、超遠距離無線數據傳輸、顯示等功能。
單片機控制板的微處理器選用Atmel公司ATmega128L芯片,GSM模塊選用德國Siemens公司的TC35I,數據采集模塊組由AT89C51與TLV2543 ADC芯片組成。
單片機控制板集成了DS1302 時鐘芯片,DS18B20數字溫度傳感器、AT45DB161 FLASH 存儲芯片及繼電器,控制板預留LCD1602的接口,在調試結束后可拔掉顯示屏以降低功耗。主控芯片ATmega128L 是一款基于RISC結構的高性能、低功耗8位微處理器,自帶的看門狗計時器可以有效地防止程序跑飛,具有兩個可編程的串行UART.ATmega128L通過其中一個串行UART,以尋址的方式與數據采集模塊中的AT89C51 進行通信,控制多個數據采集模塊中的一個進行溫度采集。其另一個串行UART與GSM模塊TC35I進行通信,將采集的數據以短信形式發送至目標SIM卡號。ATmega128L的外部晶振選用7.372 8 MHz,以產生精準的9 600 b/s波特率。
由于野外無供電條件,電源由12 V 的蓄電池組及太陽能電池板構成,為系統提供穩定的直流電壓。
1.2 溫度數據采集電路
采集電路原理圖如圖2 所示。溫度傳感器為A 級精度的鉑熱電阻PT100,測量精度[2]為±0.15 ℃。用不銹鋼鋼管進行封裝,并灌入氧化鎂MgO 對鉑熱電阻進行保護,并在屏蔽線與保護套的接口處作防水防腐處理。
鉑熱電阻PT100 的可測量范圍為-200~500 ℃,而土壤的溫度范圍在-50~50 ℃ 之間,因此信號調理電路將-50~50 ℃范圍內的PT100電阻值轉換成4~20 mA的標準電流進行傳輸。PT100選用三線制[3?4],以降低導線電阻對測量結果的影響。而三線制測量方法并不能完全消除導線電阻的影響,因此實際應用中,信號調理電路應盡可能靠近PT100,縮短導線長度。
數據采集模塊由AT89C51與3片TLV2543 ADC 芯片構成,TLV2543是TI公司的一款具有SPI接口的12位11 路模擬輸入通道模數轉換器,具有高速、高精度、低噪聲等特點。由于AT89C51沒有SPI接口,因此需要用普通I/O 口模擬SPI 與TLV2543 進行通信,并選擇TLV2543為高位在先的12位數據輸出格式,并對同一個模擬輸入端口在進行3次采集后做求均值處理,以提高采集精度。
數據采集模塊預留接口為VCC,GND,TX,RX四個管腳,可方便地插接在單片機主控板上。模塊內的AT89C51的E2PROM可通過命令寫入設備ID,通過串口掛接在數據總線上,ATmega128L以尋址的方式與其進行通信。每個數據采集模塊有33個模擬輸入通道,在能源允許的情況下,通過在單片機主控板上擴充數據采集模塊,可進行大范圍土壤溫度監測。
1.3 GSM模塊通信接口電路設計
目前市場常用的GSM 短信模塊有西門子TC35 系列、Wavecome 的WM02 系列、愛立信的DM10/20 系列等,這些模塊的功能、使用方法差別不大。本系統選用德國西門子TC35I GSM短信模塊,其在上述短信模塊中的性價比最高,且具備電子設備入網許可。TC35I可工作在900 MHz/1 800 MHz雙頻段,供電電壓為3.3~4.8 V,空閑狀態電流為25 mA,發射電流為300 mA,峰值電流為2.5 A.工作在GSM1800 頻段時的功耗為1 W,自動波特率范圍為1.2~115 Kb/s,支持Text和PDU兩種格式的短信息,可通過AT指令來實現重啟和故障恢復[5.6].
ATmega128L 通過串行UART 與TC35I 短信模塊進行通信,波特率為9 600 b/s,Text短信模式,并通過PC1口輸出一個200 ms 的低電平來啟動模塊。連接成功后,僅需4 條AT 指令即可將所采集的數據編輯成Text短信發送到目標SIM 卡號。需要特別注意的是,TC35I對電源電壓穩定性要求極高,在供電電壓低于3.3 V的時候會自動關機,同時在模塊發送短信時,電源電壓的壓降不能超過0.4 V.具體連接如圖3所示。
2 軟件設計2.1 系統主程序結構系統主程序開始后,首先對DS1302,DS18B20,LCD 串口、端口寄存器進行初始化配置,并讀取片內E2PROM的時間設定等參數。兩個串行UART所配置的參數均為:9 600 b/s 的波特率,1 位停止位,無奇偶校驗。系統通過設置子程序校正當前DS1302的時間及設定數據采集時間。系統時間及設定的數據采集時間等信息會通過顯示子程序實時顯示在LCD屏上。
當系統時間到達設定的采集時間后,主程序觸發采集子程序,ATmega128L通過串口UART0向數據總線廣播一個采集設備的ID,在接收到設備回應后,向總線上發送采集命令,并接收總線上的數據。采集結束后,將存儲與發送標志位置1,分別調用存儲子程序與發送子程序進行數據的存儲與發送。系統實時獲取板載數字溫度傳感器DS18B20 的溫度數據,以判斷保溫箱內的溫度,當低于設定溫度后,會啟動加熱裝置,以保證系統板各元器件工作在各自的溫度范圍內。程序使用ICCAVR 6.31A軟件編寫,流程圖如圖4所示。
本系統所用的短消息規范為GSM07.05,發送模式為Text模式,發送短信所使用的AT命令主要有:AT+回車,判斷短信模塊是否在線;AT+CMGF=1,設置短信模式為Text模式;AT+CSCA=目標SIM卡號,設置目標SIM卡號;AT+CMGS=短信內容,給短信模塊裝載短信內容。為了判斷短信是否發送成功,程序中在每個AT指令環節都監測TC35I 模塊回傳的信息,如果收到“OK”字符,則表示成功,否則重復操作。當重復操作大于20次時,程序會自動退出本次發送,等待下次發送程序出發時一并發出。
2.2 數據采集設備程序
數據采集設備的微處理器為AT89C51,程序使用軟件Keil μVision 4編寫,其流程圖如圖5所示。
程序開始后,首先對串口進行初始化,并打開串口中斷標志位。用戶通過串口設置設備ID 時,系統會調用ID 設置子程序,并將ID 存儲至片內E2PROM.當ATmega128L在數據總線上廣播的ID與設備ID匹配時,AT89C51通過串口向數據總線進行回答,在接收到采集命令后,首先將設備中其中一片TLV2543的片選拉低,選擇采集通道,輸入轉換的數據格式,并將數據通過串口發送至數據總線。當采集完成后,向數據總線發送一段字符串標志采集結束,并等待下一次采集。
2.3 監測系統上位機軟件
檢測系統上位機軟件使用Visual Basic 6.0 的MSComm通信控件,只需要用戶編寫少量的代碼即可完成與設備的串口通信功能[7 ? 9].MSComm 控件是由Microsoft公司提供的串行通信Activx控件,能夠通過串口發送和接收數據。上位機軟件定期檢查短信模塊中是否有新的短信,并將新短信讀入進行處理后,轉換成溫度數據以圖形化形式顯示出來,如圖6所示。主界面分為數據顯示面板及短信接收面板。操作簡單并能夠以不同形式實時顯示所采集到的溫度數據,方便用戶對數據進行分析。
3 現場試驗
實驗地點選在大興安嶺地區,并進行了104個測溫點的實驗。測試系統單片機主控板上插接4個數據采集模塊,以預留足夠多的采集通道。由于現場地下水位較高,傳感器及信號調理電路均使用防水的封裝形式。
安裝步驟如下:
(1)在預定地點鉆測溫井,測溫井間隔500 cm,直徑為Φ150 cm,深度為7 m,每個測溫井有13個測溫點,共8個測溫井;
(2)將尺寸為Φ100 mm×7 000 mm的鍍鋅保護管插入測溫井后填埋;
(3)在測溫井附近開挖尺寸為2 m×1.5 m×1.5 m 的工作坑;
(4)將尺寸為Φ700 mm×2 000 mm的防水玻璃鋼桶放入工作坑后填埋;
(5)按照順序將傳感器線束放入保護管內,并將管口使用玻璃膠密封好;
(6)在防水玻璃鋼桶附近安裝太陽能電池板;(7)將各條數據線接入系統板后,將各過線孔使用玻璃膠密封;
(8)將系統保溫桶及電池保溫桶放入防水玻璃鋼桶內;
(9)順著各條線束挖深度約為20 cm 的溝槽,將線束埋入地下。
4 數據分析
系統每天在上午5點和下午14點時進行采集。取距離管道3 m處,6#測溫井的2012年8月份數據進行分析。圖7為地下2 m深度范圍內的5個測溫點隨時間變化的溫度曲線圖。圖8為測溫井內13個測溫點在一個月內隨深度變化的曲線圖。
(審核編輯: 智匯李)
分享