9. Toprak Nemi Takibi
Kapasitif sensörün analog çıkışını kuru ve ıslak referans değerleri arasında yüzdeye dönüştürün. Her sensör ve toprak türü farklı olduğu için kalibrasyon kodun ayrılmaz parçasıdır.
Seviye: Başlangıç · Süre: 30 dakika
Gerekenler ve bağlantılar
- ESP32 DevKit V1
- 3,3 V ile uyumlu kapasitif toprak nem sensörü
| Sensör | ESP32 |
|---|---|
| VCC | 3V3 |
| AOUT | GPIO 34 |
| GND | GND |
Sensörünüzün analog çıkışının 3,3 V’u aşmadığını üretici belgesinden doğrulayın.
Kalibrasyon
Kod içindeki örnek DRY_VALUE ve WET_VALUE değerlerini doğrudan kullanmayın:
- Sensörü havada tutup ham değeri not edin:
DRY_VALUE. - Sensörün elektronik kısmını ıslatmadan prob bölümünü suya veya tamamen ıslak toprağa yerleştirip değeri not edin:
WET_VALUE.
Tam kod
#include <PxServ.h>
const char* WIFI_SSID = "wifi_ssid";
const char* WIFI_PASSWORD = "wifi_sifre";
const char* PXSERV_API_KEY = "pxserv_api_anahtariniz";
const int SOIL_PIN = 34;
const int DRY_VALUE = 3000; // Kendi olcumunuzle degistirin
const int WET_VALUE = 1400; // Kendi olcumunuzle degistirin
PxServ client(PXSERV_API_KEY);
void setup() {
Serial.begin(115200);
analogReadResolution(12);
PxServ::connectWifi(WIFI_SSID, WIFI_PASSWORD);
}
void loop() {
long total = 0;
for (int i = 0; i < 10; i++) {
total += analogRead(SOIL_PIN);
delay(20);
}
int rawValue = total / 10;
int moisture = map(rawValue, DRY_VALUE, WET_VALUE, 0, 100);
moisture = constrain(moisture, 0, 100);
client.setData("toprak/ham", String(rawValue));
client.setData("toprak/nem-yuzde", String(moisture));
Serial.print("Toprak nemi: %");
Serial.println(moisture);
delay(15000);
}Test ve yorumlama
Sensörü kuru ve nemli toprağa sırayla yerleştirin. Yüzde kuru ortamda sıfıra, ıslak ortamda 100’e yaklaşmalıdır. Sensörü farklı derinlik veya sıkılıkta yerleştirmek sonucu değiştirebilir; karşılaştırmalı ölçümlerde aynı yerleşimi koruyun.
Kullandığınız probeye ait kalibrasyon değerlerini koruyun; aynı devre bile toprak türü ve üretim farkı nedeniyle farklı sonuç verebilir.
Son güncelleme