Untuk apa sahaja yang kekal di dalam pasu, beli sensor kelembapan tanah kapasitif. Garpu resistif dua cabang yang murah itu mengalirkan arus DC melalui tanah di antara jari logam yang terdedah, dan perlahan-lahan jari itu terelektrolisis sehingga sensor melaporkan tanah kering walaupun tanahnya basah. Board kapasitif mengesan air melalui salutan pejal dan tidak mengalirkan sebarang arus ke dalam tanah. Garpu resistif masih sesuai untuk demo kelas yang berlangsung satu petang sahaja.
Apa sebenarnya yang diukur oleh setiap jenis sensor kelembapan tanah?
Sensor kelembapan tanah resistif, iaitu garpu dua cabang, mengukur betapa mudahnya arus mengalir melalui tanah. Pada modul LM393 gaya MH, sebuah perintang tetap disambung dari VCC ke output AO dan garpu pula dari AO ke ground, jadi kedua-duanya membentuk pembahagi voltan. Air yang membawa garam terlarut mengalirkan arus: tanah basah merendahkan rintangan garpu dan menarik AO ke arah 0 V, manakala tanah kering hampir tidak mengalirkan arus dan AO naik ke arah VCC. Arus DC itu terus mengalir selagi board dihidupkan.
Sensor kelembapan tanah kapasitif pula mengukur pemalar dielektrik tanah: sekuat mana tanah menyimpan cas elektrik. Trek kuprum di bawah solder mask pada paddle hitam itu membentuk sebuah kapasitor, dengan tanah di sekelilingnya sebagai dielektrik. Pemalar dielektrik air ialah kira-kira 80, berbanding kira-kira 4 untuk tanah mineral dan 1 untuk udara (probe kapasitans), jadi tanah yang basah menggandakan kapasitans itu berkali-kali. Pada board v1.2, cip timer 555 memacu pad dengan gelombang segi empat sekitar 1.5 MHz melalui sebuah perintang. Perintang dan pad itu membentuk penapis RC. Setiap separuh kitaran gelombang segi empat terlalu singkat untuk pad dicas penuh, dan kapasitans yang lebih besar memerlukan lebih banyak cas untuk mencapai voltan yang sama, jadi makin basah tanah, makin kecil ayunan voltan pada pad. Selepas itu, pengesan puncak diod memegang bahagian atas ayunan itu sebagai voltan yang stabil, dan sebab itulah AOUT turun apabila tanah makin basah. Hanya medan ulang-alik yang menembusi salutan; tiada arus yang sampai ke tanah.
| Garpu resistif (SOILMOI, SOMOSEN) | Kapasitif v1.2 (CAPSOIL) | |
|---|---|---|
| Apa yang dikesan | Kekonduksian: air serta garam terlarut | Pemalar dielektrik: kandungan air |
| Arus ke dalam tanah | DC berterusan melalui jari terdedah | Tiada; medan AC melalui salutan |
| Bagaimana ia haus | Jari terelektrolisis; bacaan beralih ke arah kering | Tiada elektrolisis; rosak jika salutan tercalar tembus atau elektronik di bahagian atas terkena air |
| Output | Analog; SOILMOI juga ada DO melalui comparatornya | Analog (AOUT) sahaja |
| Kerja yang sesuai | Probe di dalam tanah untuk satu petang | Pasu, batas tanaman, pam automatik |

Komponen sensor kelembapan tanah apa yang anda perlukan?
Senarai komponen: probe kapasitif dan resistif bersebelahan pada Uno
Parts list
| Item | Price | Qty | |
|---|---|---|---|
Soil Moisture Sensor Module Detection Water Level Capacitive Corrosion Resistant for Arduino DIYSOMOSEN | RM2.35 |
Probe paling murah untuk demo RBT satu sesi: garpu resistif sekeping dengan output analog sahaja (S, +, β) dan tanpa comparator. Sesuai untuk satu petang di dalam tanah, bukan untuk pasu yang dibiarkan berminggu-minggu.
Sensor kelembapan tanah kapasitif v1.2 ialah paddle hitam itu; perkataan “Capaitive” pada silkscreennya ialah salah ejaan daripada reka bentuk asal, bukan tanda barang tiruan. Modul sensor kelembapan tanah MH ialah garpu resistif beserta board comparator LM393 biru, dan garpu gaya Funduino yang merah itu juga resistif. Nilai berdasarkan logamnya: jari perak yang terdedah bermaksud arus melalui tanah.
Beli satu, atau kedua-duanya untuk dibandingkan dalam satu pasu menggunakan Uno. Header pada Uno ialah soket female. Kabel sensor kapasitif berakhir dengan plug female, jadi ia perlukan jumper male-to-male; board LM393 dan garpu merah ada pin male, jadi kedua-duanya perlukan jumper male-to-female.
Kenapa sensor kelembapan tanah resistif membaca kering dalam tanah basah selepas beberapa minggu?
Arus DC pada garpu resistif menjadikannya sebuah sel elektrolisis. Pada jari positif, atom logam melepaskan elektron dan larut sebagai ion, jadi saduran berwarna perak semakin nipis dan kuprum di bawahnya berlubang-lubang serta dilitupi kerak oksida dan garam. Pada jari negatif, arus memecahkan air dan membebaskan hidrogen. Baja mempercepatkan proses ini: lebih banyak ion terlarut membawa lebih banyak arus, dan menurut hukum elektrolisis Faraday, jumlah logam yang hilang berkadar dengan cas yang dilalukan.
Kerosakan ini menaikkan rintangan garpu: makin sedikit saduran yang menyentuh tanah, dan kerak itu sendiri lemah mengalirkan arus. Dalam pembahagi voltan, rintangan garpu yang lebih tinggi bermaksud AO yang lebih tinggi. Ambil perintang tetap 10 kΞ© sebagai contoh: garpu yang membaca 2 kΞ© dalam tanah basah memberi 5 Γ 2 Γ· 12 = 0.83 V, kira-kira 171 pada Uno. Tambah 8 kΞ© akibat kakisan, dan tanah basah yang sama memberi 5 Γ 10 Γ· 20 = 2.5 V, kira-kira 512: separuh jalan ke arah kering. Anjakan ini perlahan dan sehala, jadi tiada apa-apa yang nampak rosak sementara pam terus menyiram pasu yang sudah basah.
Bagaimana nak wayar sensor tanah kapasitif atau resistif ke Arduino?
Setiap sensor kelembapan tanah di sini perlukan tiga sambungan yang sama: ground, bekalan 3.3β5 V, dan output analog ke pin ADC. Hanya board LM393 pada modul MH yang menambah sambungan keempat, iaitu DO, isyarat digital hidup/mati; sensor kapasitif v1.2 dan garpu merah tiada pin DO dan tiada tombol ambang.
| Pin sensor | Uno | ESP32 | Nota |
|---|---|---|---|
| CAPSOIL GND (wayar hitam) | GND |
GND |
|
| CAPSOIL VCC (wayar merah) | 5V |
3V3 |
Sentiasa dihidupkan; tiada kehausan yang perlu dijimatkan |
| CAPSOIL AOUT (wayar kuning) | A0 |
GPIO34 |
Analog 0β3.0 V; lebih rendah = lebih basah |
| Garpu SOILMOI, dua pin | Input dua pin pada board, ikut mana-mana arah | Wayar female-female yang disertakan | |
SOILMOI VCC |
D7 |
GPIO18 |
Dihidupkan hanya semasa membaca |
SOILMOI GND |
GND |
GND |
|
SOILMOI AO |
A1 |
GPIO35 |
Lebih rendah = lebih basah |
SOILMOI DO |
D2 |
GPIO19 |
HIGH = lebih kering daripada ambang tombol |
SOMOSEN + / β / S (sebagai ganti SOILMOI) |
D7 / GND / A1 |
GPIO18 / GND / GPIO35 |
Analog sahaja, jadi abaikan baris DO dalam sketch; lebih tinggi = lebih basah |
Potentiometer biru pada board LM393 hanya mengawal DO. Comparator mengekalkan DO pada HIGH selagi AO berada di atas voltan rujukan tombol, iaitu lebih kering daripada ambang anda, dan menariknya ke LOW apabila tanah lebih basah. Memutar tombol itu tidak mengubah apa-apa yang dibaca oleh analogRead(). Untuk menetapkannya, board perlukan kuasa yang stabil, kerana sketch di bawah menghidupkannya hanya untuk sebahagian kecil daripada sesaat bagi setiap bacaan: alihkan wayar VCC board itu ke 5V (3V3 pada ESP32), cucuk probe ke dalam tanah yang sama kering dengan had yang anda benarkan, dan putar tombol perlahan-lahan sehingga LED DO baru sahaja bertukar keadaan. Kemudian alihkan semula VCC ke pin pensuisan; selepas itu LED pada board hanya berkelip sekali setiap kali bacaan diambil, dan itu normal.
Kenapa board resistif dikuasakan dari pin? Elektrolisis hanya berlaku semasa arus mengalir, jadi sketch menghidupkan garpu hanya semasa ia membaca: 10 ms untuk stabil, kemudian enam belas sampel berselang 2 ms, kira-kira 45 ms setiap bacaan. Baca setiap 10 minit, dan ia dihidupkan hanya 0.045 Γ· 600 daripada masa itu, kurang daripada satu per sepuluh ribu. Cara ini sangat melambatkan kehausan walaupun tidak menghentikannya, dan comparator, pembahagi voltan serta dua LED pada board hanya menarik beberapa miliampere, masih dalam had selesa 20 mA bagi pin Uno.
Bagaimana nak kalibrasi sensor kelembapan tanah, bukan sekadar percaya nombor mentah?
Bacaan mentah sensor kelembapan tanah tidak bermakna apa-apa selagi anda tidak tahu dua hujung sensor itu. analogRead() pada Uno memulangkan 1023 Γ input Γ· 5 V, dan sensor kapasitif v1.2 mengeluarkan paling tinggi 3.0 V, jadi bacaan tertingginya ialah 1023 Γ 3.0 Γ· 5 β 614. Dua perlima daripada skala itu tidak akan tercapai, dan ambang “kering jika melebihi 700” yang disalin daripada tutorial sensor resistif tidak akan tercetus langsung. Oscillator dan pad juga berbeza dari satu board ke board lain, jadi setiap sensor perlukan dua nombornya sendiri:
- Muat naik sketch di bawah tanpa sebarang perubahan dan buka Serial Monitor; nombor mentah yang dicetaknya itulah yang anda perlukan. Pegang probe yang bersih dan kering di udara terbuka dan catat nilai mentahnya: itulah
CAP_DRY(atauRES_DRY). - Rendam probe di dalam segelas air sehingga garisan yang tercetak melintangi board (untuk garpu, rendam sehingga paras bahagian perak berakhir), tunggu beberapa saat, dan catat nilainya:
CAP_WET(atauRES_WET). - Masukkan kedua-dua nilai ke dalam sketch dan muat naik semula. Sketch akan meletakkan setiap bacaan pada garis lurus di antara kedua-duanya: 0% kering, 100% basah.
Board kapasitif dan board MH membaca lebih rendah apabila lebih basah; garpu merah pula menguatkan arus probenya melalui sebuah transistor, jadi outputnya naik. map() berfungsi untuk kedua-dua arah kerana ia hanya perlukan titik hujung, dan constrain() memotong bacaan yang melepasi titik itu. Hasilnya ialah skala relatif: tanah dalam pasu tidak akan sebasah segelas air, jadi tentukan titik “perlu disiram” dengan memerhati pokok anda sendiri mengering. Catat peratusan pada hari beberapa sentimeter teratas tanah terasa kering, dan siram apabila bacaan jatuh di bawah nilai itu. Cucuk probe sekali dan biarkan di situ. Celah udara di sekeliling probe dibaca sebagai tanah kering, kerana pemalar dielektrik udara ialah 1 dan udara tidak mengalirkan arus, jadi mencabut probe dan mencucuknya semula akan mengubah bacaan walaupun keadaan tanah tidak berubah.

// Sensor kelembapan tanah kapasitif vs resistif, bersebelahan
// Kapasitif v1.2 (AOUT) dan modul resistif MH (AO + DO) pada satu board
#if defined(ARDUINO_ARCH_ESP32)
const int CAP_PIN = 34; // pin ADC1: masih boleh dibaca walaupun Wi-Fi hidup
const int RES_PIN = 35; // pin ADC1
const int RES_PWR = 18; // menghidupkan board resistif hanya semasa membaca
const int DO_PIN = 19;
#else
const int CAP_PIN = A0;
const int RES_PIN = A1;
const int RES_PWR = 7;
const int DO_PIN = 2;
#endif
// Kalibrasi: gantikan dengan nombor sensor ANDA (nilai contoh ini daripada Uno)
const int CAP_DRY = 600; // kapasitif, probe di udara kering
const int CAP_WET = 280; // kapasitif, di dalam air sehingga garisan
const int RES_DRY = 1015; // garpu resistif, di udara kering
const int RES_WET = 330; // garpu resistif, di dalam air
const unsigned long READ_EVERY_MS = 2000; // 600000 (10 minit) untuk pasu yang dibiarkan berminggu-minggu
const int SAMPLES = 16;
int readAverage(int pin) {
long sum = 0;
for (int i = 0; i < SAMPLES; i++) {
sum += analogRead(pin);
delay(2);
}
return sum / SAMPLES;
}
// map() berfungsi tidak kira ke arah mana sensor bergerak: 0% di hujung kering, 100% di hujung basah
int toPercent(int raw, int dry, int wet) {
long pct = map(raw, dry, wet, 0, 100);
return constrain(pct, 0, 100);
}
void setup() {
Serial.begin(115200);
pinMode(RES_PWR, OUTPUT);
digitalWrite(RES_PWR, LOW); // garpu tanpa kuasa antara bacaan: tiada arus, tiada elektrolisis
pinMode(DO_PIN, INPUT);
#if defined(ARDUINO_ARCH_ESP32)
analogReadResolution(12); // 0-4095
analogSetAttenuation(ADC_11db); // mengukur kira-kira 0.15-3.1 V
#endif
}
void loop() {
int capRaw = readAverage(CAP_PIN);
digitalWrite(RES_PWR, HIGH); // hidupkan board resistif
delay(10); // biar pembahagi voltan dan comparator stabil
int resRaw = readAverage(RES_PIN);
bool resDry = (digitalRead(DO_PIN) == HIGH); // HIGH = lebih kering daripada ambang tombol
digitalWrite(RES_PWR, LOW); // dan matikan semula
Serial.print("capacitive raw ");
Serial.print(capRaw);
Serial.print(" = ");
Serial.print(toPercent(capRaw, CAP_DRY, CAP_WET));
Serial.print("% | resistive raw ");
Serial.print(resRaw);
Serial.print(" = ");
Serial.print(toPercent(resRaw, RES_DRY, RES_WET));
Serial.print("% DO: ");
Serial.println(resDry ? "dry" : "wet");
delay(READ_EVERY_MS);
}
Buka Serial Monitor pada 115200 baud. Untuk menukar bacaan yang sudah dikalibrasi kepada penyiraman, projek siram pokok automatik menambah relay dan pam pada sensor kapasitif yang sama ini; panduan pengawal paras air dan pam automatik serta panduan pam air mini pula meliputi bahagian pam, termasuk sebab pam tidak boleh sekali-kali diwayar terus ke pin Arduino: ia menarik arus beberapa kali ganda daripada apa yang boleh dibekalkan oleh pin dengan selamat.
Apa yang berubah apabila anda membaca sensor kelembapan tanah pada ESP32?
Pada ESP32, baca sensor tanah pada pin ADC1, iaitu GPIO32β39. Pin ADC2 berkongsi penukarnya dengan pemacu Wi-Fi, jadi sebaik sahaja Wi-Fi dimulakan, bacaan ADC2 gagal, sedangkan kebanyakan projek tanah dengan ESP32 dibuat semata-mata untuk menghantar bacaan melalui Wi-Fi. Sketch ini menggunakan GPIO34 dan GPIO35, yang memang pin input sahaja.
Kuasakan sensor daripada 3.3 V. Pin ESP32 tidak boleh menerima voltan melebihi bekalan 3.3 V-nya, dan AO pada board LM393 berayun sehingga voltan apa sahaja yang membekalkannya: apabila dikuasakan dari GPIO18, ia tidak boleh melebihi 3.3 V, sedangkan bekalan 5 V boleh meletakkan 5 V pada pin. Board ESP-32S (atau varian lain) membaca 0β4095 dan, pada atenuasi 11 dB, mengukur kira-kira 0.15β3.1 V, jadi output sensor kapasitif masih dalam julat, tetapi nombor mentahnya berbeza daripada Uno: kalibrasi semula. ESP-32S ada pin header male, jadi jantina jumper terbalik berbanding Uno: plug sensor kapasitif perlukan jumper male-to-female, manakala pin male pada board LM393 dan garpu merah perlukan jumper female-to-female.
Bagaimana nak pastikan sensor tanah kapasitif terus berfungsi sepanjang satu musim?
Sensor kapasitif v1.2 hanya terselamat daripada kehausan selagi salutannya utuh. Solder mask di atas pad hanyalah lapisan lakuer yang nipis; kalau tercalar tembus oleh batu, kuprum yang terdedah akan menyentuh tanah basah, jadi pad itu membocorkan arus seperti perintang di samping bertindak sebagai kapasitor, bacaan beralih, dan kuprum yang terdedah itu terhakis. Gemburkan tanah yang keras dahulu, jangan paksa probe masuk.
Garisan putih nipis yang melintangi board, betul-betul di bawah komponen, ialah had tanam. Di atasnya terletak cip timer, regulator dan penyambung, dan tiada satu pun yang kedap air; kalau tertanam atau terpercik, air akan merentangi pin-pinnya dan output menjadi tidak menentu atau board terus mati. Tepi board yang dipotong ialah gentian kaca yang terdedah, dan air meresap di sepanjang gentian kaca itu ke dalam board, menambah kapasitans pad sehingga bacaan perlahan-lahan menjalar ke arah basah dari minggu ke minggu. Untuk musim yang panjang, kedapkan bahagian tepi dan elektronik di atas dengan epoksi atau heat-shrink, pastikan bahan pengedap tidak terkena pad pengesan, dan kalibrasi semula selepas itu.
Board v1.2 yang elok berayun beberapa ratus kiraan pada Uno antara udara kering dan air, jadi kalibrasi dua titik itu juga menjadi ujian untuk setiap board baharu. Kalau bacaannya hampir tidak bergerak, baca tanda pada cip timer lapan pin itu: reka bentuknya menetapkan TLC555, timer CMOS yang dirating sehingga serendah 2 V. Sesetengah klon menggunakan NE555, yang dispesifikasikan mulai 4.5 V dan berada di luar spesifikasi pada rel 3.3 V terkawal board itu; Cave Pearl Project mendapati separuh daripada board sebegitu bermasalah walaupun pada 5 V.

Adakah masih ada sebab yang munasabah untuk membeli sensor kelembapan tanah resistif?
Ya: sensor kelembapan tanah resistif ialah pilihan yang tepat untuk demonstrasi singkat. Dalam kelas RBT, garpu dicucuk ke dalam secawan tanah, murid memerhati bacaan berubah apabila air dituang, dan garpu dicabut pada petang yang sama. Oleh sebab kehilangan logam mengikut cas yang dilalukan, empat jam hanya bersamaan 4 Γ· 720, kurang daripada 1% berbanding sebulan di dalam pasu. Bilas dan keringkan untuk kelas seterusnya. Garpu merah paling mudah, dengan tiga pin dan tiada apa-apa untuk dilaras; modul MH pula menambah DO, jadi murid boleh menyuis LED dengan digitalRead() terlebih dahulu.
Modul relay kelembapan tanah jenis plug-and-play menyuis pam DC kecil tanpa kod, tetapi probenya ialah garpu resistif yang sentiasa berkuasa, jadi ia terhakis lebih cepat daripada garpu yang disuis melalui pin: sesuai untuk projek pendek, bukan untuk satu musim. Kekalkan pada DC voltan rendah; 250 VAC yang tercetak pada relaynya bukan alasan untuk membuat pendawaian mains di sebelah tanah basah. Kalau projek anda menggabungkan tanaman dengan ikan, projek akuaponik sekolah menanamnya dalam bebola tanah liat yang dibanjiri air mengikut pemasa, tanpa sensor tanah langsung.
Peraturannya: apa sahaja yang dibiarkan di dalam pasu lebih daripada beberapa hari, atau yang memacu pam automatik, guna sensor kapasitif. Demo RBT satu sesi boleh guna mana-mana satu.
Kesilapan biasa yang kami lihat
Menilai probe berdasarkan namanya. Garpu dua cabang dijual dengan nama “capacitive” atau “corrosion-resistant” di seluruh pasaran. Jari perak yang terdedah bermaksud arus melalui tanah, walau apa pun labelnya; board kapasitif ada pad licin yang bersalut sepenuhnya tanpa sebarang logam kelihatan.
Menyalin ambang orang lain. Nombor daripada tutorial lain hanya terpakai untuk sensor itu pada ADC board itu. Dua minit dengan segelas air sudah memberi anda nombor anda sendiri.
Membeli DHT11 untuk mengukur tanah. Dalam bahasa Melayu, perkataan kelembapan digunakan untuk kelembapan udara dan juga kelembapan tanah, jadi carian “sensor kelembapan” boleh berakhir dengan DHT11. DHT11 mengukur wap air di udara sekelilingnya dan tidak memberitahu apa-apa tentang air yang tersimpan di dalam tanah (DHT11 vs DHT22).
Soalan Lazim
Mana lebih bagus, sensor kelembapan tanah kapasitif atau resistif?
Kapasitif, untuk apa sahaja yang dibiarkan di dalam tanah lebih daripada beberapa hari: tiada arus masuk ke dalam tanah, jadi tiada apa-apa yang terelektrolisis. Resistif sesuai untuk demo singkat.
Kenapa sensor kelembapan tanah saya tunjuk kering walaupun tanahnya basah?
Pada garpu resistif, puncanya kakisan: elektrolisis menaikkan rintangan jari dan menolak bacaan ke arah kering. Tukar ke sensor kapasitif. Pada board kapasitif, padatkan tanah di sekeliling pad, kerana celah udara dibaca sebagai kering, dan kalibrasi berdasarkan bacaan kering dan basah anda sendiri.
Boleh tak guna sensor kelembapan tanah kapasitif dengan ESP32?
Boleh. Kuasakan dari 3.3 V, baca pada pin ADC1 (GPIO32β39) kerana ADC2 gagal sebaik sahaja Wi-Fi dimulakan, dan kalibrasi pada ESP32 itu sendiri.
Adakah sensor kelembapan tanah kapasitif v1.2 ada pin DO?
Tiada. Ia hanya ada GND, VCC dan AOUT. Pin DO dan tombol ambang itu milik board comparator LM393 yang datang bersama garpu resistif.
Sensor saya tertulis “Capaitive Soil Moisture Sensor”. Adakah ia palsu?
Bukan, salah ejaan itu memang ada pada silkscreen reka bentuk v1.2. Periksa cip timernya sebagai ganti: TLC555 ialah yang betul.
Kemas kini terakhir Oktober 2026. Tersangkut? Chat dengan kami di WhatsApp.



Capacitive Soil Moisture Sensor V1.2 Corrosion Resistant with Cable For Arduino IOT Application
MH Soil Moisture Sensor Module Hygrometer Detection Moisture Sensor for Arduino Plant Watering System
Arduino Uno Compatible SMD UNO R3 with Type B Cable - ATMEGA328P with CH340G-Microcontroller Project
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-M 20CM
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-F 30CM
Soil Moisture Sensor Module Detection Water Level Capacitive Corrosion Resistant for Arduino DIY