Capacitive Soil Moisture Sensor v1.2 — เซ็นเซอร์วัดความชื้นดินแบบไม่กัดกร่อน

Capacitive Soil Moisture Sensor — ทางเลือกที่ดีกว่า YL-69

Capacitive Soil Moisture Sensor v1.2 (หรือ Corrosion-Resistant Soil Moisture Sensor) เป็นเซ็นเซอร์วัดความชื้นในดินที่ทำงานบนหลักการ Capacitance — วัดค่าความจุไฟฟ้าที่เปลี่ยนไปตามปริมาณน้ำในดิน

ต่างจาก YL-69 (Resistive) ที่ใช้ขั้วทองแดงเปลือยวัดความต้านทาน — ซึ่งจะกัดกร่อนและพังภายในไม่กี่เดือน เซ็นเซอร์แบบ Capacitive ไม่มีขั้วโลหะเปลือย เคลือบสารกันน้ำ อายุการใช้งานเป็นปี

✅ Capacitive = ไม่กัดกร่อน, อยู่ได้นาน, แม่นยำกว่า, กินไฟน้อย

เปรียบเทียบ YL-69 (Resistive) vs Capacitive v1.2

คุณสมบัติYL-69 / HL-69 (Resistive)Capacitive v1.2
หลักการวัดความต้านทานระหว่างขั้วทองแดงวัดค่าความจุไฟฟ้า (Capacitance)
อายุการใช้งาน❌ 2-6 เดือน (ทองแดงกัดกร่อน)✅ 2-5 ปี
ราคา~20-30 บาท~50-80 บาท
กันน้ำ❌ ไม่กัน — ห้ามจุ่มน้ำ✅ เคลือบ树脂 กันน้ำได้
กระแสไฟ~10-20 mA~5-8 mA
แรงดัน3.3V-5V3.3V-5V
OutputAnalog 0-5V (ผ่าน LM393)Analog 0-3V (ขึ้นกับ VCC)
Accuracyปานกลางดีกว่า — เสถียรกว่า
Calibrationต้อง calibrate บ่อยครั้งเดียวอยู่

ทำไม Capacitive ไม่กัดกร่อน?

YL-69 ใช้หลักการส่งกระแสไฟฟ้าผ่านดินระหว่างขั้วทองแดง 2 ขั้ว — เมื่อมีกระแสไหลผ่านดินชื้น จะเกิด Electrolysis ทำให้ทองแดงค่อย ๆ ละลายและกัดกร่อนภายในไม่กี่เดือน

Capacitive Sensor ใช้หลักการที่แตกต่างกันโดยสิ้นเชิง: สร้างสนามไฟฟ้าระหว่างแผ่นทองแดงที่ เคลือบด้วย Fiberglass (FR-4) — ไม่มีกระแสไฟฟ้าไหลผ่านดิน มีแต่สนามไฟฟ้าที่ทะลุผ่าน Material (Soil + Water) โดยตรง

  • น้ำ มี Dielectric Constant (ε) ≈ 80 — สูงมาก
  • ดินแห้ง มี Dielectric Constant ≈ 3-5 — ต่ำ
  • ดินชื้น มี Dielectric Constant ≈ 10-40 — แปรผันตามปริมาณน้ำ
  • ✅ ยิ่งน้ำมาก → Capacitance สูงขึ้น → ค่า Analog ต่ำลง
Capacitive Sensor = แผ่น PCB รูปหวี (Interdigitated)
                  ──── เคลือบ soldermask + resin กันน้ำ
                  ──── สร้างสนามไฟฟ้าทะลุผ่านดิน
                  ──── วัดความจุที่เปลี่ยนไป (ไม่มีกระแสไหล)
YL-69 = ขั้วทองแดงเปลือย 2 ขั้ว
      ──── กระแสไฟฟ้าไหลผ่านดินชื้น
      ──── เกิด Electrolysis → ทองแดงละลาย

วิธีการต่อวงจร

Capacitive Moisture Sensor v1.2 มี 3 ขา (บางรุ่นมี 4 รวม DO):

Capacitive Sensor v1.2:
  VCC  → Arduino 3.3V หรือ 5V
  GND  → GND
  AOUT → Arduino A0 (Analog Input)
  DO   → (optional) Digital Output — ตั้ง Threshold ด้วย Trimmer Pot
ต่อกับVCCGNDAOUT
Arduino Uno / Nano (5V)5VGNDA0
ESP8266 / ESP32 (3.3V)3.3VGNDA0 / GPIO34
ATtiny85 (3.3V)Pin 8 (VCC)Pin 4 (GND)PB3 (Pin 3)

🔑 สำคัญ: ไฟ 5V ได้ช่วง Analog กว้างกว่า (~0-900) ส่วน 3.3V ได้ช่วงแคบกว่า (~0-650) — แต่ Capacitive Sensor ทน 5V ได้ (ไม่เหมือนเซ็นเซอร์ 3.3V บางตัว) เหมาะกับ Arduino 5V มากกว่า

Source Code — Arduino (Uno / Nano)

// Capacitive Soil Moisture Sensor v1.2 — Arduino
// ค่าแปรผกผัน: ยิ่งชื้น → ค่ายิ่งต่ำ

const int SENSOR_PIN = A0;

void setup() {
  Serial.begin(9600);
  Serial.println("Capacitive Moisture Sensor Ready");
  Serial.println("wet,dry,raw,percent");
}

void loop() {
  int raw = analogRead(SENSOR_PIN);
  int percent = map(raw, 750, 300, 0, 100);  // ปรับตามเซ็นเซอร์
  percent = constrain(percent, 0, 100);

  Serial.print("Raw: ");
  Serial.print(raw);
  Serial.print(" | ความชื้น: ");
  Serial.print(percent);
  Serial.println(" %");

  if (percent < 30) {
    Serial.println("⚠️ ดินแห้ง — ควรรดน้ำ!");
  } else if (percent < 60) {
    Serial.println("🌿 ดินชื้นปานกลาง");
  } else {
    Serial.println("💧 ดินชื้นดี");
  }

  delay(2000);
}

Source Code — ESP32 (ADC1 + WiFi)

// Capacitive Moisture Sensor + ESP32
// ใช้ ADC1 (GPIO34) — แม่นยำกว่า ADC2 ตอน WiFi on

#define SOIL_PIN 34   // ADC1_CH6

// ค่า Calibration (ปรับตามเซ็นเซอร์ของคุณ)
int dry_val = 3200;    // ค่าตอนแห้งสนิท (กลางแจ้ง)
int wet_val = 1200;    // ค่าตอนแช่น้ำจนชุ่ม

void setup() {
  Serial.begin(115200);
  analogReadResolution(12);  // ESP32 = 12-bit (0-4095)
}

void loop() {
  int raw = analogRead(SOIL_PIN);

  // ESP32 ใช้ 12-bit → map(0-4095)
  float percent = (float)(dry_val - raw) / (dry_val - wet_val) * 100;
  percent = constrain(percent, 0, 100);

  Serial.printf("Raw: %4d | %.0f%%\n", raw, percent);

  if (percent < 30) {
    Serial.println("💧 รดน้ำ!");
    // digitalWrite(RELAY, LOW);  // เปิด Solenoid Valve
  }

  delay(5000);
}

วิธีการ Calibrate

  1. ค่าวิธีเปียกที่สุด (Wet Value): จุ่มเซ็นเซอร์ลงในน้ำสะอาดลึก ~3-5 ซม. (อย่าจุ่มถึงขั้วต่อ!) รอ 10 วินาที อ่านค่า → ค่านี้คือ Wet Value
  2. ค่าแห้งที่สุด (Dry Value): วางเซ็นเซอร์ไว้กลางแจ้ง (ไม่ต้องแช่) ทิ้งไว้ 10 นาที อ่านค่า → ค่านี้คือ Dry Value
  3. คำนวณ percent: percent = (dry - raw) * 100 / (dry - wet)
// Calibration Script — Arduino Serial Plotter
// ค่าแห้ง = 720, เปียก = 260 (ตัวอย่าง สำหรับ 5V)

void setup() {
  Serial.begin(9600);
}

void loop() {
  int raw = analogRead(A0);
  // สำหรับ Serial Plotter: ส่งค่าเดียวแบบไม่ขึ้นบรรทัดใหม่
  Serial.println(raw);
  delay(500);
}

เปิด Tools → Serial Plotter → จุ่มเซ็นเซอร์ในน้ำ → ค่อย ๆ ดึงขึ้นมา → อ่านค่าแห้งและเปียก

แหล่งจ่ายไฟและการประหยัดพลังงาน

ข้อดีของ Capacitive Sensor คือกินไฟน้อย — เหมาะกับระบบที่ใช้แบตเตอรี่:

โหมดกระแส (ที่ 5V)
วัดตลอดเวลา~5-8 mA
เปิดเฉพาะตอนวัด (ผ่าน MOSFET)~5 mA (100ms) + 0 mA ตอนปิด
Deep Sleep MCU + ปิดเซ็นเซอร์~5 µA (MCU) + 0 mA (Sensor off)

ต่อเซ็นเซอร์ผ่าน MOSFET เพื่อปิดไฟตอนไม่ใช้

// ESP8266 — ควบคุม VCC เซ็นเซอร์ผ่าน GPIO
#define SENSOR_POWER 5   // D1
#define SENSOR_PIN A0

void setup() {
  pinMode(SENSOR_POWER, OUTPUT);
}

void loop() {
  digitalWrite(SENSOR_POWER, HIGH);  // เปิดเซ็นเซอร์
  delay(50);

  int moisture = analogRead(SENSOR_PIN);

  digitalWrite(SENSOR_POWER, LOW);   // ปิดเซ็นเซอร์ → เหลือ 0 mA
  // ...
  delay(300000);  // วัดทุก 5 นาที
}

การติดตั้งในกระถางต้นไม้

  1. ตำแหน่ง: เสียบเซ็นเซอร์ลงดินเฉียง 45° ห่างจากโคนต้น ~3-5 ซม. ลึก ~5-7 ซม.
  2. อย่าจุ่มลึกเกิน: เส้นกันน้ำบน PCB ต้องอยู่เหนือดิน — ถ้าจุ่มถึงขั้วต่อจะเสียหาย
  3. กันน้ำตรงรอยต่อ: ใช้ Liquid Tape หรือ Tesa 4651 พันรอบจุดต่อ Dupont กับเซ็นเซอร์
  4. สายเซ็นเซอร์ยาว: ใช้สาย Siamese หรือเพิ่ม Capacitor 0.1µF ใกล้หัวเซ็นเซอร์
  5. ดินร่วนซุย: กดดินเบา ๆ รอบเซ็นเซอร์ให้แน่น — อากาศในดินทำให้ค่าผิดเพี้ยน

💡 Tip: Capacitive Sensor v1.2 ไม่เหมาะกับน้ำบริสุทธิ์ (RO/DI Water) เพราะมีไอออนต่ำมาก — ค่าจะไม่ต่างจากดินแห้ง ถ้าใช้กับ Hydroponics ให้ผสมปุ๋ยเล็กน้อยก่อน

ปัญหาและแนวทางแก้ไข

ปัญหาสาเหตุวิธีแก้
ค่า Analog = 0 หรือ 1023 ตลอดAOUT ไม่ได้ต่อ / Sensor เสียตรวจสอบสาย, ลองเปลี่ยน Pin
ค่าไม่เปลี่ยนแปลงเวลาเปลี่ยนดินเซ็นเซอร์แห้งเกาะแน่น / ดินอัดแข็งขุดเซ็นเซอร์ออก ทำความสะอาด เสียบใหม่
ค่าลอย (Noisy) ขึ้นลงตลอดสายยาว / WiFi รบกวนเพิ่ม Capacitor 0.1µF ที่ AOUT↔GND, ถอยห่าง WiFi Antenna
ค่าค่อย ๆ ลดลงทุกวัน (แม้ไม่ได้รดน้ำ)ดินอัดแน่นรอบเซ็นเซอร์ดึงออก ล้าง ใส่ใหม่ — หรือตั้ง Recalibration เดือนละครั้ง
Sensor ทำงานบน 3.3V แต่ค่าช่วงแคบADC Reference 3.3Vใช้ ADC External Reference (AREF) หรือเปลี่ยนเป็น 5V
น้ำเข้าขั้วต่อ Sensorรดน้ำโดนจุดต่อใช้ Heat Shrink + Liquid Tape ปิดรอยต่อ

เปรียบเทียบรุ่น Capacitive Sensor ในตลาด

รุ่นราคาแรงดันOutputจุดเด่น
v1.2 (Corrosion-Resistant)~50-80 บาท3.3-5VAnalog + Digitalนิยมที่สุด, กันน้ำดี, Capacitive แท้
v2.0 (Waterproof)~100-150 บาท3.3-5VAnalogเคลือบพลาสติกทั้งตัว, ใช้ในน้ำได้
I2C Capacitive (AHT20-based)~200-350 บาท3.3VI2Cอ่านแบบ Digital, แม่นยำสูง
DIY Copper-Clad Board~5-10 บาท3.3-5VAnalogทำเองด้วย Copper PCB + Op-Amp

โปรเจกต์แนะนำ

  • 🌱 ระบบรดน้ำอัตโนมัติ 1 กระถาง — Arduino Nano + Capacitive + Relay + ปั๊มน้ำ DC 12V
  • 🌿 ระบบรดน้ำ 6 กระถาง (I2C Mux) — ESP32 + CD74HC4067 MUX + Capacitive 6 ตัว + Solenoid Valve 6 ตัว
  • ☀️ สวน Solar + LiFePO4 — ESP32 Deep Sleep + Capacitive + Solar Panel 6V + LiFePO4 12V
  • 📊 Data Logger ความชื้นดิน — ESP8266 + Capacitive + MicroSD Card Module + RTC DS3231
  • 📱 แจ้ง Line/Telegram — ESP32 + Capacitive + Blynk / Line Notify / Telegram Bot

แหล่งซื้อ

  • Shopee / Lazada: ค้นหา "Capacitive Soil Moisture Sensor v1.2" — ~50-80 บาท
  • AliExpress: ค้นหา "Corrosion Resistant Soil Moisture Sensor" — ~$1.5-3
  • Thai Robot / INEX: มีขายในไทย ~80-120 บาท

⚠️ หมายเหตุ: เนื้อหานี้ค้นคว้าและเรียบเรียงโดย Hermes AI — ข้อมูลทางเทคนิคควรตรวจสอบก่อนนำไปใช้งานจริง ราคาและรุ่นอาจเปลี่ยนแปลงตามเวลา

⚠️ เนื้อหาถูกสร้างโดย AI (Hermes AI) — ข้อมูลทางเทคนิคอาจต้องตรวจสอบก่อนนำไปใช้งานจริง