Skip to Content

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örESP32
VCC3V3
AOUTGPIO 34
GNDGND

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:

  1. Sensörü havada tutup ham değeri not edin: DRY_VALUE.
  2. 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