【雕爺學編程】Arduino動手做(70)---土壤溼度傳感器

37款傳感器與執行器的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑑於本人手頭積累了一些傳感器和執行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流爲目的,這裏準備逐一動手嘗試系列實驗,不管成功(程序走通)與否,都會記錄下來---小小的進步或是搞不掂的問題,希望能夠拋磚引玉。

【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)

實驗七十:電容式土壤溼度傳感器模塊不易腐蝕寬電壓工作(TL555I)




TL555I 6位模數轉換器 SOP-8 實時時鐘芯片

電容式傳感器

是以各種類型的電容器作爲傳感元件,將被測物理量或機械量轉換成爲電容量變化的一種轉換裝置,實際上就是一個具有可變參數的電容器。電容式傳感器廣泛用於位移、角度、振動、速度、壓力、成分分析、介質特性等方面的測量。最常用的是平行板型電容器或圓筒型電容器。典型的電容式傳感器由上下電極、絕緣體和襯底構成。當薄膜受壓力作用時,薄膜會發生一定的變形,因此,上下電極之間的距離發生一定的變化,從而使電容發生變化。但電容式壓力傳感器的電容與上下電極之間的距離的關係是非線性關係,因此,要用具有補償功能的測量電路對輸出電容進行非線性補償。


電容式溼度傳感器

是利用溼敏元件的電容值隨溼度變化的原理進行溼度測量的傳感器。此類溼敏元件實際上是一種吸溼性電解質材料的介電常數隨溼度而變化的薄片狀電容器,感溼材料爲聚酰銨樹脂,酰根纖維素和金屬氧化物如AL2O3等。

國外廠家比較優質的溼度傳感器產品主要使用聚酰胺樹脂,產品結構概要爲在硼硅玻璃或藍寶石襯底上真空蒸發製作金電極,再噴鍍感溼介質材料(如前所述)形式平整的感溼膜,再在薄膜上蒸發上金電極,金的原度控制在70Um 左右,以保證水蒸汽順利通過.溼敏元件的電容值與相對溼度成正比關係,線性度約±2%溼敏電容與相對溼度關係圖。

電極金薄膜和感溼膜爲多孔結構薄膜,因此吸溼和脫溼容易,升溼響應小於3S,而脫溼相對慢一些爲10-30S。

特性曲線看出在低溼段容值變化分辨顯著下降,而在高溼段90%RH以上變化過陡非線性現象較重,對於非線性現象,一方面在電路中加以修正,同時可對溼度傳感器作工藝處理,包括激光整補電極,純化處理等,可以收到好的效果。

電容式溼度傳感器線性度較好,重複性好,滯後小,反應快,尺寸小,能在-10℃-60℃溼度環境下使用。但電容式溼度傳感器同時存在質量問題,穩定性不理想,由於容值在單位級變化,1%RH爲0.3PF,容值小的漂移就容易造成%RH值的突變,一般在控制領域使用電容式溼敏傳感器都需要慎重考慮。

這款電容式土壤溼度傳感器區別於市面上絕大部分的電阻式傳感器,採用電容感應原理來檢測土壤溼度。避免了電阻式傳感器極易被腐蝕的問題,極大地延長了它的工作壽命。傳感器內置穩壓芯片,支持3.3~5.5V寬電壓工作環境,這意味着即使在3.3V的Arduino主控板上,它也能正常工作。標誌性的DFRobot-Gravity接口保證了接口的兼容性,可以直接與Gavity IO擴展板相連接。樹莓派之類的微型PC,只需要外接一個ADC(模擬信號轉數字信號)轉換模塊就可以工作。


特點:

模擬輸出

該傳感器兼容DFRobot 3針“重力”接口,可直接連接到重力I / O擴展板

規格:

工作電壓:DC 3.3-5.5V 

輸出電壓:DC 0-3.0V 

接口:PH2.0-3P 

尺寸:99x16mm / 3.9x0.63“ 

應用:

園林植物

水分檢測

智能農業


模塊電原理圖


模塊連接示意圖


實驗開源代碼(校準)

1.在正式檢測土壤溼度前,需要有一個校準過程。

2.上傳校準代碼至Arduino主控板

3.打開串口監視助手

/*

【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)

實驗七十一:電容式土壤溼度傳感器模塊不易腐蝕寬電壓工作(TL555I)

程序之一,溼度測試校驗代碼

*/

void setup() {

 Serial.begin(9600); 

}

void loop() {

 int val;

 val = analogRead(0); 

 Serial.println(val); 

 delay(500);

}


測量乾燥情況下的數值


乾溼度校準

校準說明:通過分別讀取傳感器在空氣中和水中的數值來限定一個測量範圍。

打開串口監視器,將波特率根據程序設置爲9600。

首先請將該傳感器放置在空氣中讀取模擬值,代表乾燥時的讀數。然後拿一杯水,把傳感器插入水中一定深度(做一下標記(紅虛線),此深度爲你將要插入泥土的深度),一定不能超過紅色警戒線(紅實線)!並記錄此時讀到的模擬值,代表100%溼度。(輸出數據與溼度成反比,在水中的輸出量最小)插入深度如圖推薦(紅虛線處)。


傳感器上部零件區最好能做些防水處理,比如防水漆,熱膠等。



區間設定

由於傳感器數值會受到入土深度、土壤鬆緊度的影響,只能檢測到土壤的相對溼度,我們把溼度的範圍分爲三等分,分別表示乾燥、溼潤、非常潮溼。之前記入的兩個數據爲溼度區間。例如:空氣中讀數爲620,水中讀數爲308,這樣就可以分爲【620,516】,【516,412】,【412,308】這三個區間分別代表乾燥、溼潤、非常潮溼。

注意:由於此傳感器會根據電容感應原理來監測土壤溼度,所以放到土壤溼度不同、鬆緊度不同、插入深度不同的地方,會體現出不同的溼度,即使在同一個地方,同樣的深度,在第二次插入時,由於第一次拔出時已經造成了泥土的鬆動,可能讀到的溼度會比第一次低。

備註:溼度與讀數是成反比的。

/*

【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)

實驗七十:電容式土壤溼度傳感器模塊不易腐蝕寬電壓工作(TL555I)

程序之二,土壤溼度測試實驗

三個區間分別爲乾燥、溼潤、非常潮溼

*/


const int AirValue = 620;  

const int WaterValue = 308;  

int intervals = (AirValue - WaterValue)/3;  

int soilMoistureValue = 0;

void setup() {

  Serial.begin(9600);

}

  

void loop() {

soilMoistureValue = analogRead(A0);  

if(soilMoistureValue > WaterValue && soilMoistureValue < (WaterValue + intervals))

{

  Serial.println("非常潮溼");

}

else if(soilMoistureValue > (WaterValue + intervals) && soilMoistureValue < (AirValue - intervals))

{

  Serial.println("溼潤");

}

else if(soilMoistureValue < AirValue && soilMoistureValue > (AirValue - intervals))

{

  Serial.println("乾燥");

}

delay(2000);

}


實驗開源圖形編程(Mind+、編玩邊學)


實驗開源仿真編程(linkboy3.7)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章