《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 便攜式土壤墑情和土壤溫度測量儀的設計
便攜式土壤墑情和土壤溫度測量儀的設計
來源:電子技術應用2013年第7期
李所林,宋 威,宋良平,黃 正
中國船舶重工集團公司第722研究所,湖北 武漢430079
摘要: 土壤含水量和土壤溫度值對土壤要素起著舉足輕重的作用,是農業(yè)、水利等生產科研的一個重要指標,因此準確地測量這兩個要素值顯得尤為重要。選用LPC1766為核心控制器,設計了一種便攜式測量系統(tǒng),可隨時隨地檢測土壤含水量和土壤溫度值并實時顯示。該系統(tǒng)采用ARM Cortex-M3嵌入式系統(tǒng),具有功耗低、操作簡單、攜帶方便等特點。
中圖分類號: TP212
文獻標識碼: A
文章編號: 0258-7998(2013)07-0028-03
Design of portable soil moisture and soil temperature measuring instrument
Li Suolin,Song Wei,Song Liangping,Huang Zheng
Research Institute 722,China Shipbuilding Industry,Wuhan 430079,China
Abstract: Soil moisture and soil temperature are important soil factors. It is an important indicator of the production and research, such as agriculture, water conservancy and so on. Therefore, accurate measurement of these two elements is particularly important. LPC1766 is choosen as CPU to design a portable data collection system. The soil moisture and soil temperature can be detected anywhere and be displayed real-timely. The ARM Cortex-M3 embedded systems is chosen as the processor. The portable instrument is low power consumption, easy for operation and carry.
Key words : portable;soil moisture;soil temperature;DS18B20

    土壤墑情是指土壤含水量及土壤濕度,即土壤干濕程度[1]。在水利科研、農業(yè)生產、園林種植、旱情預報等方面,土壤的含水量和溫度起著不可忽略的作用,準確地測量土壤含水量和溫度有助于科學指導生產科研工作,合理利用水資源,減少不必要的浪費。傳統(tǒng)的測量土壤含水量的方法是采用烘干法,這種方法效率低,對操作者要求高,而且操作繁瑣。傳統(tǒng)的測量土壤溫度的方法則是采用溫度計來測量溫度值。隨著科學的不斷進步,市面上也有一些多要素的自動墑情站用于測量土壤墑情和溫度,但這些設備的不足之處就是只能測量固定位置的要素值,要測量其他沒有安裝自動墑情站地方的要素值很不方便。而便攜式土壤墑情和土壤溫度兩要素測量儀,能夠方便、準確地測量待測地點的要素值,這樣可以減少自動墑情站的安裝,節(jié)約成本,方便使用,并且具有功耗低、攜帶方便、穩(wěn)定可靠等優(yōu)點。

1 系統(tǒng)總體結構
    便攜式采集器是一款輕小便捷的兩要素手持設備采集器,主要采集土壤含水量和土壤溫度值。硬件總體框圖如圖1所示。系統(tǒng)初始化完成后,GPS模塊獲取待采集位置的地理信息和時間,并將時間更新到系統(tǒng)時鐘。使用時只需將插針式墑情傳感器和溫度傳感器插入待測土壤中便可采集要素。采集的要素值可存儲在EEPROM中,并在LCD上顯示測量值,實現即用即測。同時可讀出EEPROM的數據并顯示某一段時間內的墑情和溫度特性曲線圖。設備上的USB接口有兩個功能:一是通過USB可以將EEPROM中存儲的數據導入到計算機中,便于分析和比較;二是 USB接口可供系統(tǒng)充電。

2 微處理器
    ARM Cortex-M3 LPC1766是一個低成本、低功耗并且具有極高運行能力和中斷響應能力的處理器[2]。其操作頻率可達100 MHz,具有3級流水線和哈佛結構,帶獨立的本地指令和數據總線以及用于外設的低性能的第3條總線,其外設組建包含512 KB的Flash存儲器、64 KB的數據存儲、以太網MAC、USB接口、10位DAC、內部RTC等功能。LPC1766還有許多新的特征,包括Thumb-2指令集、低中斷延時、硬件除法、可中斷可持續(xù)的多次加載和存放指令、對中斷的自動狀態(tài)進行保存和恢復、緊密結合中斷控制器與喚醒中斷控制器、多條內核總線可同時訪問等[3]。
3 土壤墑情傳感器接口電路
    土壤墑情測量接口電路如圖2所示。微控制器通過GPIO口控制墑情傳感器的電源。當需要進行墑情要素采集時才給傳感器供電,這樣降低了功耗,減少了傳感器插入土壤中的探針發(fā)生電解的時間[4],延長了傳感器的使用壽命。傳感器采集到的電壓信號(ΔV=VT_H-VT_L)經過放大后由微控制器進行A/D轉換得到采樣值,在0~50%范圍內可通過以下三次多項式得到土壤含水量的轉換結果。

4 溫度傳感器接口電路
    DS18B20是單總線的工作方式,即在一根數據線上實現數據的雙向傳輸,所以DS18B20的外接電路也相對簡單。典型的電路有兩種:一種是采用寄生電源供電,另一種是采用外接電源供電。無論采用哪一種方式,其DQ引腳都要外接一個上拉電阻。本文選取采用外接電源供電的方式,VCC外接3 V~5.5 V電源,GND引腳接地,DQ引腳通過上拉電阻接微控制器的I/O端口,其原理圖如圖3所示。

5 RT-Thread操作系統(tǒng)的移植
    為保證系統(tǒng)的穩(wěn)定性和實時性,選用開源RT-Thread操作系統(tǒng)。RT-Thread 內核大致可分為對象管理、實時調度器、線程管理、線程間通信、時鐘管理、設備驅動6個部分[5]。移植的軟件編譯平臺為Keil MDK 4.23,具體操作步驟如下:
    (1)打開Keil編譯環(huán)境,新建一個Keil編譯工程文件命名并保存,系統(tǒng)提示選擇具體的芯片型號,選擇CPU為LPC1766。
    (2)添加RT-Thread內核組件,將Keil工程瀏覽目錄下的Target 1更名為RT-Thread LPC1766,將RT-Thread LPC1766下的文件夾Source Group1更名為Kernel,同時新建文件夾System、Cortex-M3、finsh、Driver、Lwip。在Kernel中加入RT-Thread內核組件;在Cortex-M3中加入內核自帶并針對LPC176x移植的匯編文件;在Driver文件中添加設備相應的驅動函數;在System中添加相應的啟動文件、中斷向量表、核心板文件等;在finsh中添加finsh shell組件;在App中添加用戶編寫的一些應用文件;在Lwip中添加TCP/IP協議文件。同時可以根據實際需求,在Rtconfig.h中配置系統(tǒng)時鐘、最大優(yōu)先級、是否啟用finsh等。
    (3)在Project->Options for Targe′ RT-Thread LPC1766′中選擇C/C++選項卡,添加系統(tǒng)所需頭文件的路徑,包括內核、驅動以及用戶定義的所需頭文件的路徑。
    至此,RT-Thread移植基本完成,用戶可以編寫相應的應用程序并執(zhí)行。
6 DS18B20在RT-Thread驅動的實現
6.1 DS18B20簡介

    DS18B20是一款數字式的溫度傳感器,它是一個單總線的器件,測量溫度范圍在-55 ℃~+125 ℃,在-10 ℃~
+85 ℃范圍內的測量精度能夠達到±0.5 ℃,測量精度相對較高。通過編程可實現9~12位精度的數字讀方式,并且具有溫度上下限報警功能。在一個系統(tǒng)中可以掛接多個DS18B20器件,每個器件都有一個唯一的序列號存儲在ROM中,DS18B20提供了5種ROM指令供識別器件,同時還提供了6種RAM指令來操作DS18B20。
6.2 DS18B20驅動實現
    一般來說,在一個測溫系統(tǒng)中,DS18B20都是作為從機供主機訪問,微控制器通過單總線訪問DS18B20一般需要以下3個步驟[6]:
    (1)復位初始化DS18B20。
    (2)執(zhí)行ROM指令(器件識別),對于設備上只有一個DS18B20的系統(tǒng)來說,無需讀序列號來匹配設備,可以省略讀ROM指令,直接執(zhí)行功能指令。
    (3)執(zhí)行RAM指令,包括寫命令到DS18B20,啟動溫度轉換,從DS18B20讀數據。
6.2.1 DS18B20復位流程
    在對DS18B20進行初始化時,最主要的一點就是對時序的控制,若延時控制不當,DS18B20將不能工作或不能正確測量溫度值。DS18B20初始化流程如下:
    (1)設置總線為輸入狀態(tài)。
    (2)拉低總線約480 ?滋s~960 ?滋s。
    (3)釋放總線,外部上拉電阻拉高總線15 ?滋s~60 ?滋s,隨后DS18B20會拉低總線約60 ?滋s~240 ?滋s來應答主控制器。
    (4)設置總線狀態(tài)為輸出,主控制器讀取總線電平,如果為低電平則表示初始化完成。
    (5)釋放總線,初始化完成之后控制器就可對DS18B20進行操作訪問。
6.2.2 DS18B20寫流程
    寫一個操作命令字節(jié)到DS18B20需循環(huán)8次,因為DS18B20是一個單總線的設備,所以只能逐位操作。DS18B20的寫操作流程如下:
    (1)設置總線為輸入狀態(tài)。
    (2)拉低總線并延時約10 ?滋s~15 ?滋s。
    (3)寫入數據,寫入的是“1”,則拉高總線約15 ?滋s~40 ?滋s;寫入的是“0”,則拉低總線約15 ?滋s~40 ?滋s。
    (4)字節(jié)數寫入完成后釋放總線,等待約3 ?滋s。
6.2.3 DS18B20讀流程
    讀DS18B20與寫操作類似,也是要循環(huán)8次。若檢測到DQ的狀態(tài)為高電平,則將數據data的最高位置1,通過逐次向右移位來獲得DS18B20檢測的溫度值。DS18B20的讀數據流程如下:

 


    (1)拉低總線約1 ?滋s。
    (2)釋放總線,讀取總線電平狀態(tài)。
    (3)如果讀到的是低電平,則表示讀到的是“0”;如果讀到的是高電平,則讀到的是“1”。
    (4)延時約30 ?滋s~45 ?滋s。
    完成以上步驟后,將驅動移植到RT-Thread驅動中,其公共接口的實現代碼如下:
void rt_hw_ds18b20_init(void)
{
    ……
    ds18b20->parent.init        = rt_ds18b20_init;
    ds18b20->parent.open        = rt_ds18b20_open;
    ds18b20->parent.close        = rt_ds18b20_close;
    ds18b20->parent.read        = rt_ds18b20_read;
    ds18b20->parent.write        = RT_NULL;
    ds18b20->parent.control        = RT_NULL;
    ds18b20->parent.user_data    = RT_NULL;
    rt_device_register(&ds18b20->parent,  "ds18b20",
RT_DEVICE_FLAG_RDWR );
}
    上述函數中,在rt_ds18b20_read函數中讀取DS18B20的溫度值的過程中就包含初始化設備,而獲取總線、釋放總線的功能與打開設備、關閉設備類似,因此rt_ds18b20_
init、rt_ds18b20_open、rt_ds18b20_close 3個函數的函數體可以直接返回RT_EOK。而其他函數在采樣時沒有涉及到這些功能,因此可以為RT_NULL。rt_device_register函數用于注冊設備并設置相應的屬性,注冊的設備可以通過查找設備名稱來找到設備,并獲得相應的設備控制塊。整個DS18B20驅動中,所有對DS18B20的操作都是在rt_ds18b20_read函數中完成的。rt_ds18b20_read函數中進行了設備的初始化、執(zhí)行相應的ROM指令和執(zhí)行相應的RAM指令操作來實現DS18B20的溫度測量,rt_ds18b20_read函數的主要功能如下:
static rt_size_t rt_ds18b20_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size)
{
    ........
    rt_enter_critical();        //調度器上鎖,僅響應中斷
    InitDS18B20 ();        //設備初始化
    WriteOneChar(0xCC);    //跳過讀序列號操作
    WriteOneChar(0x44);    //啟動溫度轉換
    InitDS18B20 ();
    WriteOneChar(0xCC);
    WriteOneChar(0xBE);    //讀取溫度寄存器操作
    lsb = ReadOneChar();    //讀低字節(jié)
    msb = ReadOneChar();    //讀高字節(jié)
    rt_exit_critical();        //調度器解鎖
    Temperature = ((msb << 8) | lsb) * 6.25;
//DS18B20 的溫度操作的分辨率是0.062 5
    &hellip;&hellip;
}
    t/100為溫度值的整數部分,而(t % 100)/10為溫度值的小數部分。在上層的應用中,軟件只需調用rt_device_read函數就能獲取相應的溫度值,該函數的返回值是讀到數據的大小(以字節(jié)為單位),如果返回值是0,則需要讀取當前線程的errno來判斷錯誤狀態(tài)。
7 土壤墑情測量
7.1 傳感器原理[4]

    干燥土壤的介電常數一般在2~4之間,而水的介電常數一般為80。可以把含水的土壤看作為一種由干燥土壤和水混合在一起的介質,因此介電常數就會隨含水量的變化而變化。本文選用的土壤傳感器為ASW100F,它由一個100 MHz的信號源、探針以及電纜組成。根據傳輸線原理,電纜和探頭連接處的阻抗用下式表示:

 
式中,Zc為探頭在空氣中的特征阻抗;l為探針的長度;?姿o為正弦波在空氣中的波長;?著為探針周圍土壤的介電常數;j為虛數部分的表示因子。由式(2)可知,阻抗Zi與探針周圍土壤的介電常數?著有關,阻抗Zi隨著土壤介電常數的不斷變化而變化,導致探針和電纜的阻抗不匹配,這會在電纜中產生駐波,而駐波的波峰和波谷也會隨著土壤介電常數的變化而變化。因此,駐波包絡的電壓就反應了土壤含水量的情況,因此可以通過測量電纜上的電壓差得出土壤的含水量情況。
7.2 土壤墑情的采樣
    土壤墑情的采樣主要是將采集的電壓信號放大,然后通過微控制器的A/D轉換來實現的。A/D讀取的數據通過式(1)得到土壤墑情值,具體的采樣流程為:(1)微控制器通過控制GPIO口為墑情傳感器供電。(2)墑情傳感器進行數據采樣。(3)采樣的電壓信號經過放大器進行放大。(4)將放大器放大的電壓信號通過微控制器進行A/D轉換。(5)A/D轉后的值經過軟件運算處理后得到土壤含水量的值。
    在測量的過程中,難免會出現測量偏差。為此在采樣時連續(xù)測量3次,比較兩個測量值之間的差值。如果兩次測量誤差大于1%,則認為測量失敗,反之則認為測量值有效。然后將測量的3次有效值求平均來獲取本次測量值。軟件過濾無效值的代碼如下:
void SoilDataDetec(void)
{
    &hellip;&hellip;
    for (j = 0; j < 3; j++) {
        value = Multi_Detect();  //從A/D讀出采樣值
        &hellip;&hellip;
        value = 0.111 * pow(value, 3) - 0.2338 * pow
(value, 2)+ 0.2756 * value - 0.0211;
        &hellip;&hellip;//依據式(1)計算
        temp[cnt++] =value;
    }
    if (cnt == 3) {
//3次測得的值都有效,兩兩測量值之間不大于1% 則
//認為有效
    if ((fabs(temp[0] - temp[1]) > 0.01f) || (fabs(temp[0]
- temp[2]) > 0.01f) ||
(fabs(temp[1] - temp[2]) > 0.01f) )  {
        SoilValue = Pre_SoilValue;
//無效值,則選用前一次采集到的值
    } else {
        avgvalue = (temp[0] + temp[1] + temp[2]) / cnt;
//取平均值
        SoilValue = avgvalue;
        &hellip;&hellip;
    }
    &hellip;&hellip;
  }
    本文所設計的基于ARM Cortex-M3的嵌入式便攜機能夠實現土壤墑情和土壤溫度兩要素的實時采集,采集的數據存儲到EEPROM并在LCD界面上實時顯示,同時可以顯示一段時間內的墑情和溫度曲線圖??赏ㄟ^USB將存儲的數據導入計算機中進行分析和比較。實踐結果表明,該設備具有操作簡單、攜帶方便、功耗較低等特點。
參考文獻
[1] 陳天華,唐海弢,鄭文剛.基于S3C2410的土壤墑情檢測系統(tǒng)設計[J].電子技術應用,2011,37(7):89-92.
[2] 周立功.深入淺出Cortex-M3&mdash;&mdash;LPC1700[M].廣州:廣州致遠電子有限公司,2010.
[3] 廣州周立功單片機發(fā)展有限公司.LPC1766使用手冊[Z].2010.
[4] 彭曾愉,趙燕東.基于&mu;C/OS-II操作系統(tǒng)的土壤水分實時監(jiān)測系統(tǒng)[J].北京林業(yè)大學學報,2010,32(11):114-119.
[5] 朱志國.RT-Thread操作系統(tǒng)在STM32中移植的研究[J].計算機光盤軟件與應用,2012(22):119-120.
[6] 鄭宏軍,黎昕,孟祥國.1-Wire單總線器件技術規(guī)范及應用研究[J].電子技術,2004(9):39-42.

此內容為AET網站原創(chuàng),未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品入口日韩视频大尺度| 黄色亚洲大片免费在线观看| 久久久www成人免费无遮挡大片| 亚洲色在线视频| 亚洲精品欧美在线| 亚洲国产天堂久久综合网| 欧美在线首页| 欧美一区二区三区四区在线观看| 亚洲一区二区视频| 亚洲一区二区不卡免费| 一区二区日韩伦理片| 日韩视频永久免费| 99精品国产一区二区青青牛奶| 亚洲精品影视在线观看| 亚洲精品久久久久久下一站 | 国产欧美韩国高清| 国产日韩在线亚洲字幕中文| 国产欧美日韩伦理| 国产亚洲综合在线| 经典三级久久| 亚洲国产精彩中文乱码av在线播放| 一区在线播放视频| 亚洲成色www8888| 亚洲国产精品久久人人爱蜜臀| 亚洲国产欧美一区二区三区同亚洲| 亚洲国产精品成人| 亚洲精品资源美女情侣酒店| 夜色激情一区二区| 亚洲综合色自拍一区| 欧美在线电影| 亚洲人www| 日韩视频免费观看高清完整版| 亚洲作爱视频| 亚洲欧美亚洲| 久久精品国产清高在天天线| 久久综合伊人77777蜜臀| 欧美成年人视频| 欧美日本一区二区三区| 欧美视频一区二| 国产欧美在线播放| 黄色av日韩| 亚洲激情在线视频| 一本色道久久综合亚洲精品不 | 久久成人在线| 蜜桃av一区二区| 欧美日韩一区二区欧美激情 | 欧美日韩国产一区二区三区| 欧美视频一区| 国产视频一区在线观看| 精品96久久久久久中文字幕无| 亚洲国产美国国产综合一区二区 | 日韩一级裸体免费视频| 亚洲欧美国产制服动漫| 欧美在线3区| 99re热这里只有精品免费视频| 亚洲欧美国产毛片在线| 久久久久一本一区二区青青蜜月| 欧美国产视频在线| 国产精品亚洲综合| 亚洲国产精品成人| 亚洲一区自拍| 亚洲精品国产精品国自产观看浪潮| 一区二区三区久久网| 久久精品理论片| 欧美激情1区2区3区| 国产伦精品一区二区三区在线观看| 一色屋精品亚洲香蕉网站| 一区二区三区国产精品| 亚洲成色www久久网站| 亚洲午夜免费福利视频| 久久人人爽国产| 欧美日韩一区二区三区在线视频 | 亚洲伊人观看| 久热爱精品视频线路一| 国产精品久久777777毛茸茸| 在线观看91精品国产麻豆| 亚洲视频自拍偷拍| 亚洲黄色成人| 欧美一区二区视频在线观看2020| 欧美高清视频在线播放| 国产欧美日韩不卡| 99re66热这里只有精品4| 亚洲高清在线视频| 亚洲欧美日韩国产一区二区| 欧美成人精品h版在线观看| 国产精品一区久久久| 亚洲国产精品ⅴa在线观看| 午夜伦理片一区| 亚洲先锋成人| 欧美激情视频一区二区三区不卡| 国产日韩在线播放| 亚洲无线视频| 99国产成+人+综合+亚洲欧美| 久久久久久久91| 国产精品色一区二区三区| 日韩网站免费观看| 最新日韩在线| 久久久久久黄| 国产伦精品一区二区三| 国产精品99久久久久久有的能看| 日韩视频在线免费| 欧美α欧美αv大片| 狠狠久久亚洲欧美专区| 欧美一区二区高清| 亚洲欧美日韩精品久久| 欧美日韩亚洲视频| 亚洲精品国产欧美| 亚洲麻豆国产自偷在线| 免费试看一区| 黄色小说综合网站| 欧美在线观看视频一区二区三区| 午夜精品免费视频| 国产精品99一区| 亚洲美女视频在线观看| 亚洲美女视频在线观看| 翔田千里一区二区| 欧美一区成人| 国产欧美韩日| 香蕉久久国产| 欧美中文字幕在线| 国产视频精品网| 午夜一区二区三区不卡视频| 西西裸体人体做爰大胆久久久| 国产精品久久久久9999高清| 在线午夜精品自拍| 亚洲一级网站| 国产精品高潮呻吟久久av无限| 一个色综合av| 亚洲欧美成人| 国产精品三级视频| 亚洲欧美日韩另类精品一区二区三区 | 久久天天狠狠| 黄色亚洲在线| 亚洲经典一区| 欧美激情一二区| 日韩一区二区福利| 亚洲欧美激情一区二区| 国产精品拍天天在线| 亚洲女人av| 久久久亚洲高清| 亚洲国产婷婷综合在线精品 | 欧美国产亚洲精品久久久8v| 亚洲欧洲三级| 在线视频亚洲一区| 国产精品国产成人国产三级| 亚洲一区二区av电影| 久久精品国产99国产精品| 好吊成人免视频| 亚洲精品一区在线观看香蕉| 欧美日韩福利视频| 亚洲一区二区视频在线| 久久成人18免费观看| 一区二区视频在线观看| 亚洲免费观看高清完整版在线观看熊 | 国产精品视频导航| 久久国产天堂福利天堂| 欧美高清不卡在线| 一区二区三区**美女毛片 | 久久精品一区二区三区四区| 一区二区三区中文在线观看| 亚洲免费观看视频| 国产精品青草久久| 亚洲福利一区| 欧美三区在线视频| 欧美一二三视频| 欧美承认网站| 亚洲视屏一区| 卡通动漫国产精品| 99国产精品99久久久久久| 久久爱www.| 亚洲日本精品国产第一区| 午夜在线精品| 亚洲国产精品传媒在线观看| 亚洲摸下面视频| 在线不卡中文字幕| 亚洲中字在线| 在线观看亚洲视频| 午夜精品成人在线视频| 亚洲成人资源| 欧美亚洲在线| 最新国产乱人伦偷精品免费网站 | 亚洲国产三级网| 国产精品地址| 亚洲国产精品久久91精品| 欧美午夜精品久久久久免费视| 久久精品国产99精品国产亚洲性色 | 六月天综合网| 在线亚洲欧美专区二区| 老鸭窝91久久精品色噜噜导演| 99pao成人国产永久免费视频| 久久精品九九| 夜夜夜精品看看| 鲁大师成人一区二区三区| 夜夜爽www精品| 欧美freesex交免费视频| 亚洲免费中文| 欧美日韩在线直播| 91久久精品网| 国产视频在线观看一区二区三区| 在线一区日本视频|