Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

25 Nisan 2021 Pazar

Toprak Nemi Sensörü Nasıl Çalışır ve Arduino ile Nasıl Çalışır?

 

Toprak Nemi Sensörü Nasıl Çalışır ve Arduino ile Nasıl Çalışır?





'Akıllı bahçe' terimini duyduğunuzda aklınıza gelenlerden biri de toprak nemini ölçen ve bitkilerinizi otomatik olarak sulayan bir sistemdir.

Bu tür bir sistemle bitkilerinizi sadece ihtiyaç duyulduğunda sulayabilir ve aşırı sulama veya yetersiz sulama yapmazsınız.

Böyle bir sistem kurmak istiyorsanız kesinlikle bir Toprak Nemi Sensörüne ihtiyacınız olacaktır.

Toprak Nemi Sensörü nasıl çalışır?
Toprak Nemi Sensörünün Arduino ile Arayüz Edilmesi Eğitimi

Toprak nem sensörünün çalışması oldukça basittir.

İki açık iletkeni olan çatal şekilli prob , direnci topraktaki su içeriğine göre değişen değişken bir direnç (tıpkı bir potansiyometre gibi) görevi görür .

toprak nem sensörü working.gif

Bu direnç, toprak nemi ile ters orantılıdır:

  • Toprakta ne kadar su varsa, daha iyi iletkenlik anlamına gelir ve daha düşük bir dirençle sonuçlanır.
  • Topraktaki daha az su, zayıf iletkenlik anlamına gelir ve daha yüksek bir dirençle sonuçlanacaktır.

Sensör, dirence göre bir çıkış voltajı üretir, bu da ölçerek nem seviyesini belirleyebiliriz.

Toprak nem sensörü modülünün iki bileşeni vardır.

Prob

Sensör, toprağa veya su içeriğinin ölçülecek başka herhangi bir yere giden iki açık iletkeni olan çatal şeklinde bir sonda içerir.

Daha önce de belirtildiği gibi direnci toprak nemine göre değişen değişken bir direnç görevi görür.

toprak nem sensörü probu

Modül

Sensör ayrıca, probu Arduino ya bağlayan bir elektronik modül içerir.

Modül, probun direncine göre bir çıkış voltajı üretir ve bir Analog Çıkış (AO) pininde bulunur.

Aynı sinyal, sayısallaştırmak için bir LM393 Yüksek Hassasiyet Karşılaştırıcısına beslenir ve bir Dijital Çıkış (DO) pininde sağlanır.

toprak nem sensörü hassasiyet ayarı

Modül, dijital çıkışın (DO) hassasiyet ayarı için dahili bir potansiyometreye sahiptir.

Bir potansiyometre kullanarak bir eşik belirleyebilirsiniz; Böylece nem seviyesi eşik değerini aştığında, modül DÜŞÜK aksi takdirde YÜKSEK çıkacaktır.

Bu kurulum, belirli bir eşiğe ulaşıldığında bir eylemi tetiklemek istediğinizde çok kullanışlıdır. Örneğin, topraktaki nem seviyesi bir eşiği geçtiğinde, su pompalamaya başlamak için bir röleyi etkinleştirebilirsiniz. Anladın!

İpucu: Hassasiyeti artırmak için düğmeyi saat yönünde, azaltmak için saat yönünün tersine çevirin.

toprak nem sensörü gücü ve durum ledleri

Bunun dışında modülün iki LED'i vardır. Modüle güç verildiğinde Güç LED'i yanacaktır. Dijital çıkış DÜŞÜK olduğunda Durum LED'i yanacaktır.

Toprak Nemi Sensörü Pin Çıkışı

Toprak nem sensörünün kullanımı çok kolaydır ve bağlanması gereken sadece 4 pime sahiptir.

toprak nem sensörü pin çıkışı

AO (Analog Çıkış) pin bize 0V ile besleme değeri arasında bir analog sinyal verir ve Arduino'nuzdaki analog girişlerden birine bağlanacaktır.

DO (Dijital Çıkış)pin dahili karşılaştırıcı devresinin Dijital çıkışını verir. Arduino'daki herhangi bir dijital pime veya doğrudan 5V'luk bir röleye veya benzeri bir cihaza bağlayabilirsiniz.

VCCpin sensör için güç sağlar. Sensöre 3,3V - 5V arasında güç sağlanması önerilir. Lütfen analog çıkışın sensör için sağlanan voltaja bağlı olarak değişeceğini unutmayın.

GND bir toprak bağlantısıdır.

Analog Çıkışı Kullanarak Toprak Nemini Algılama

Modülün hem analog hem de dijital çıkış sağladığını bildiğiniz için ilk deneyimiz için analog çıkışı okuyarak toprak nemini ölçeceğiz.

Kablolama

Toprak nem sensörünü Arduino ya bağlayalım.

Önce sensöre güç sağlamanız gerekir. Bunun için modül üzerindeki VCC pinini Arduino'daki 5V'a bağlayabilirsiniz.

Bununla birlikte, bu sensörlerle ilgili yaygın olarak bilinen bir sorun, nemli bir ortama maruz kaldıklarında kısa ömürlülükleridir. Proba uygulanan gücün olması, sürekli olarak korozyon oranını önemli ölçüde hızlandırır .

Bunun üstesinden gelmek için, sensöre sürekli güç sağlamamanızı, sadece okumaları alırken ona güç vermenizi öneririz.

Bunu başarmanın kolay bir yolu, VCC pinini bir Arduino'nun dijital pinine bağlamak ve ihtiyacınıza göre YÜKSEK veya DÜŞÜK olarak ayarlamaktır.

Ayrıca modül tarafından çekilen toplam güç (her iki LED yanarken) yaklaşık 8 mA'dır, bu nedenle modülü bir Arduino'daki dijital bir pimden kapatmakta sorun yoktur .

O halde modül üzerindeki VCC pinini bir Arduino'nun dijital pin # 7'sine ve GND pinini toprağa bağlayalım.

Son olarak, modül üzerindeki AO pinini Arduino'nuzdaki A0 ADC pinine bağlayın.

Aşağıdaki çizim kablolamayı göstermektedir.

Analog çıkışı okumak için arduino ile toprak nem sensörü kablolama

Kalibrasyon

Toprak nem sensörünüzden doğru okumalar almak için, önce onu izlemeyi planladığınız belirli toprak türü için kalibre etmeniz önerilir.

Farklı toprak türleri sensörü etkileyebilir, bu nedenle kullandığınız toprak türüne bağlı olarak sensörünüz az ya da çok hassas olabilir.

Verileri kaydetmeye veya olayları tetiklemeye başlamadan önce, sensörünüzden gerçekte hangi okumaları aldığınızı görmelisiniz.

Toprak neme tamamen doyduğunda -vs- mümkün olduğunca kuru olduğunda sensörünüzün hangi değerleri çıkardığını not etmek için aşağıdaki çizimi kullanın.

// Sensor pins
#define sensorPower 7
#define sensorPin A0

void setup() {
	pinMode(sensorPower, OUTPUT);
	
	// Initially keep the sensor OFF
	digitalWrite(sensorPower, LOW);
	
	Serial.begin(9600);
}

void loop() {
	//get the reading from the function below and print it
	Serial.print("Analog output: ");
	Serial.println(readSensor());
	
	delay(1000);
}

//  This function returns the analog soil moisture measurement
int readSensor() {
	digitalWrite(sensorPower, HIGH);	// Turn the sensor ON
	delay(10);							// Allow power to settle
	int val = analogRead(sensorPin);	// Read the analog value form sensor
	digitalWrite(sensorPower, LOW);		// Turn the sensor OFF
	return val;							// Return analog moisture value
}

Çizimi çalıştırdığınızda, seri monitörde aşağıdaki okumalara yakın bir değer göreceksiniz:

  • toprak kuruduğunda (~ 850)
  • toprak tamamen ıslandığında (~ 400)
toprak nem sensörünün kalibre edilmesi

Bu test biraz deneme yanılma alabilir. Bu okumaları iyi bir şekilde ele aldığınızda, bir eylemi tetiklemeyi düşünüyorsanız, bunları eşik olarak kullanabilirsiniz.

Son Yapı

Kalibrasyon değerlerine bağlı olarak, aşağıdaki program toprağın durumunu belirlemek için aşağıdaki aralıkları tanımlar:

  • <500 çok ıslak
  • 500-750 hedef aralıktır
  • > 750 sulanacak kadar kuru
/* Change these values based on your calibration values */
#define soilWet 500   // Define max value we consider soil 'wet'
#define soilDry 750   // Define min value we consider soil 'dry'

// Sensor pins
#define sensorPower 7
#define sensorPin A0

void setup() {
	pinMode(sensorPower, OUTPUT);
	
	// Initially keep the sensor OFF
	digitalWrite(sensorPower, LOW);
	
	Serial.begin(9600);
}

void loop() {
	//get the reading from the function below and print it
	int moisture = readSensor();
	Serial.print("Analog Output: ");
	Serial.println(moisture);

	// Determine status of our soil
	if (moisture < soilWet) {
		Serial.println("Status: Soil is too wet");
	} else if (moisture >= soilWet && moisture < soilDry) {
		Serial.println("Status: Soil moisture is perfect");
	} else {
		Serial.println("Status: Soil is too dry - time to water!");
	}
	
	delay(1000);	// Take a reading every second for testing
					// Normally you should take reading perhaps once or twice a day
	Serial.println();
}

//  This function returns the analog soil moisture measurement
int readSensor() {
	digitalWrite(sensorPower, HIGH);	// Turn the sensor ON
	delay(10);							// Allow power to settle
	int val = analogRead(sensorPin);	// Read the analog value form sensor
	digitalWrite(sensorPower, LOW);		// Turn the sensor OFF
	return val;							// Return analog moisture value
}

Her şey yolundaysa, aşağıdaki çıktıyı seri monitörde görmelisiniz.

toprak nem sensörü analog çıkışı

Dijital Çıkış Kullanarak Toprak Nemini Algılama

İkinci deneyimiz için dijital çıktıyı kullanarak toprağın durumunu belirleyeceğiz.

Kablolama

Devreyi önceki örnekten kullanacağız. Bu sefer sadece ADC pinine olan bağlantıyı kaldırmamız ve modül üzerindeki DO pinini Arduino'daki dijital pin # 8'e bağlamamız gerekiyor.

Devrenizi aşağıda gösterildiği gibi bağlayın:

dijital çıkışı okumak için arduino ile toprak nem sensörü kablolama

Kalibrasyon

Modül, dijital çıkışı (DO) kalibre etmek için dahili bir potansiyometreye sahiptir.

Potansiyometrenin düğmesini çevirerek bir eşik ayarlayabilirsiniz. Böylece nem seviyesi eşik değerini aştığında, Durum LED'i yanacak ve modül DÜŞÜK çıkacaktır.

toprak nem sensörünün dijital çıkışı

Şimdi sensörü kalibre etmek için, bitkiniz sulanmaya hazır olduğunda probu toprağa yerleştirin ve Durum LED'i AÇIK olacak şekilde tencereyi saat yönünde ayarlayın ve ardından sadece LED KAPALI olana kadar tencereyi saat yönünün tersine ayarlayın.

İşte bu, sensörünüz artık kalibre edilmiş ve kullanıma hazırdır.

Arduino Kodu

Devre kurulduktan sonra, aşağıdaki çizimi Arduino'nuza yükleyin.

// Sensor pins
#define sensorPower 7
#define sensorPin 8

void setup() {
	pinMode(sensorPower, OUTPUT);

	// Initially keep the sensor OFF
	digitalWrite(sensorPower, LOW);

	Serial.begin(9600);
}

void loop() {
	//get the reading from the function below and print it
	int val = readSensor();
	Serial.print("Digital Output: ");
	Serial.println(val);

	// Determine status of our soil moisture situation
	if (val) {
		Serial.println("Status: Soil is too dry - time to water!");
	} else {
		Serial.println("Status: Soil moisture is perfect");
	}

	delay(1000);	// Take a reading every second for testing
					// Normally you shoul take reading perhaps every 12 hours
	Serial.println();
}

//  This function returns the analog soil moisture measurement
int readSensor() {
	digitalWrite(sensorPower, HIGH);  // Turn the sensor ON
	delay(10);              // Allow power to settle
	int val = digitalRead(sensorPin); // Read the analog value form sensor
	digitalWrite(sensorPower, LOW);   // Turn the sensor OFF
	return val;             // Return analog moisture value
}

Her şey yolundaysa, aşağıdaki çıktıyı seri monitörde görmelisiniz.


toprak nem sensörü dijital çıkışı
Fikir olması bakımından bu devrenin de girişleri farklı ilave olarak seviyeyi led ile gösterebiliriz.


Bu devre de indicatör yani gösterge olarak Led yerine Buzzer ile bir sistem oluşturulmuştur.Giriş ve çıkış portları farklıdır.





Buradaki devrede de yine fikir olması için hem led hem de buzzer kullanılmıştır.


Aşağıdaki devrede de OLED ekran ile tasarım yapılmıştır.

Bahadır ÖZGEN

Electronic Robotic Coding Research and Development 1975 - ∞

Learn Forever...  
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com



Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.