---
# System prepended metadata

title: Capacitive Soil Moisture Sensor v2.0 電容式土壤濕度感測器

---

# Capacitive Soil Moisture Sensor v2.0 電容式土壤濕度感測器
![](https://i.imgur.com/B2QHQwu.png)

## 基礎小知識
> ### HC-SR04 超聲波感測器
> 
> 技術規格：
> * 工作電壓： 3.3 ~ 5.5 VDC.
> * 工作電流：5mA
> * 接口：PH2.54-3P
> * 尺寸 長x寬x高）： 98 x 23 x 4 mm
> * 輸出：模擬輸出。
> * 重量：15g
> * 附註：支援3針重力感測器
> 

## 簡單實作
### 接線表：
 
> GND  -- GND
> VCC  -- 5V
> AUOT -- A0
### 程式碼：
``` c
void setup(){
    Serial.begin(9600);    //  設定序列埠通訊頻率
}

void loop(){
  int val;
  val = analogRead(0);     // 設定變數值為 A0 接口讀取值
  Serial.println(val);     // 在序列埠中顯示變數值（輸出完換行）
  delay(100);
}  
```
### 實作程式碼：
``` c =
const int AirValue = 520;   // 宣告AirValue替換530
const int WaterValue = 260;  // 宣告WaterValue替換260
// 感測器檢測範圍為 530 - 260

int intervals = (AirValue - WaterValue) / 3; // 計算濕度等級的級距 約90
int soilMoistureValue = 0;

//    乾燥數值範圍： 520 - 430 
//    潮濕數值範圍： 430 - 350
// 非常潮濕數值範圍： 350 - 260 

void setup()
{
  Serial.begin(9600); // 開啟串行通訊並將鮑率設為9600 
}

void loop()
{
  soilMoistureValue = analogRead(A0);  // 將感測器插入土壤並讀取濕度值

  
  if (soilMoistureValue > WaterValue && soilMoistureValue < (WaterValue + intervals))
  {
    Serial.println("非常潮濕");
  }
  else if  (soilMoistureValue < WaterValue )
  { Serial.println("幾乎在水中");
  }
  else if (soilMoistureValue > (WaterValue + intervals) && soilMoistureValue < (AirValue - intervals))
  {
    Serial.println("潮濕");
  }
  else if (soilMoistureValue < AirValue && soilMoistureValue > (AirValue - intervals))
  {
    Serial.println("乾燥");
  }
  else if  (soilMoistureValue > AirValue )
  { Serial.println("在空氣中");
  }
  // 判斷濕度等級並在串行監視器上顯示
    
  delay(100); // 延遲100毫秒以避免讀取太頻繁
}
```