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-5V | 3.3V-5V |
| Output | Analog 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
| ต่อกับ | VCC | GND | AOUT |
|---|---|---|---|
| Arduino Uno / Nano (5V) | 5V | GND | A0 |
| ESP8266 / ESP32 (3.3V) | 3.3V | GND | A0 / 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
- ค่าวิธีเปียกที่สุด (Wet Value): จุ่มเซ็นเซอร์ลงในน้ำสะอาดลึก ~3-5 ซม. (อย่าจุ่มถึงขั้วต่อ!) รอ 10 วินาที อ่านค่า → ค่านี้คือ Wet Value
- ค่าแห้งที่สุด (Dry Value): วางเซ็นเซอร์ไว้กลางแจ้ง (ไม่ต้องแช่) ทิ้งไว้ 10 นาที อ่านค่า → ค่านี้คือ Dry Value
- คำนวณ 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 นาที
}
การติดตั้งในกระถางต้นไม้
- ตำแหน่ง: เสียบเซ็นเซอร์ลงดินเฉียง 45° ห่างจากโคนต้น ~3-5 ซม. ลึก ~5-7 ซม.
- อย่าจุ่มลึกเกิน: เส้นกันน้ำบน PCB ต้องอยู่เหนือดิน — ถ้าจุ่มถึงขั้วต่อจะเสียหาย
- กันน้ำตรงรอยต่อ: ใช้ Liquid Tape หรือ Tesa 4651 พันรอบจุดต่อ Dupont กับเซ็นเซอร์
- สายเซ็นเซอร์ยาว: ใช้สาย Siamese หรือเพิ่ม Capacitor 0.1µF ใกล้หัวเซ็นเซอร์
- ดินร่วนซุย: กดดินเบา ๆ รอบเซ็นเซอร์ให้แน่น — อากาศในดินทำให้ค่าผิดเพี้ยน
💡 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-5V | Analog + Digital | นิยมที่สุด, กันน้ำดี, Capacitive แท้ |
| v2.0 (Waterproof) | ~100-150 บาท | 3.3-5V | Analog | เคลือบพลาสติกทั้งตัว, ใช้ในน้ำได้ |
| I2C Capacitive (AHT20-based) | ~200-350 บาท | 3.3V | I2C | อ่านแบบ Digital, แม่นยำสูง |
| DIY Copper-Clad Board | ~5-10 บาท | 3.3-5V | Analog | ทำเองด้วย 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 — ข้อมูลทางเทคนิคควรตรวจสอบก่อนนำไปใช้งานจริง ราคาและรุ่นอาจเปลี่ยนแปลงตามเวลา