Nano ile Mini Sulama Modülü

Arduino nano ile mini sulama modülü yapmaya karar verdim.

 

Kullandığım parçalar:

Parça İsmi Değeri Not
Nano 17 tl
2 x Kapasitif Toprak Nem Sensörü 20 TL Türkiye’de bulamadığım için AliExpress’den almak zorunda kaldım. Fakat sanırım yapması zor bir parça değil. Tanesi 20TL’ye şuradan getirttim. 5TL lik ucuz toprak sensörleri de mevcut.
Tekli 5v Röle Modülü 6 TL  
12v Pompa 35TL herhangi bir 12v pompayı kullanabilirsiniz ama ben damacanın ağzından geçebilecek kadar ince bir dalgıç pompa buldum çok işime yaradı.
Damlama Sulama Ekipmanı 20TL Hekimoğlu isimli üreticinden damlama sulama setini alabilirsiniz.
Damacana
Su geçirmez kutu 10TL
Güç kaynağı ve kablolar 10TL
TOPLAM 128TL
///////MAIN LIBRARIES
#include <RunningAverage.h>
#include <elapsedMillis.h>
////////////////////////MAIN LIBRARIES///////////////////////


//////////////////DEFAULT
#define RELAY_CALIS 1
#define RELAY_DUR 0
#define SERIAL_DEBUG true // Enables/disables serial debugging
#include <FormattingSerialDebug.h>
//////////////////////////////////////////DEFAULT///////////////////////////////////////////////////////////////



////////////////////////////////*12* PUMP
elapsedMillis SulamaCheckKrono;   //Sulama bekleme suresini kontrol eden kronometre. Bu tamamen sensörün paslanmasını önlemek için sensörü belirli bir süredede bir çalıştırmayı amaçlıyor. O belirli süre SulamaBeklemeSuresi
unsigned int SulamaBeklemeSuresi = 10 * 1 * 1000;   // Tekrar sulamak icin beklenen sure. Maksimum 32.  Misal 32 saniye bekledikten sonra tekrar sulamaya karar veriyoruz bu odur.
unsigned int  PompalamaSuresi = 32 *  1000;  //pompanin calisma suresi. 32 saniye boyunca calisiyor. 
//sulama parametlereleri: Yercekimi sisesi yaklasik 1.5 metre yukarıda iken bu sisseye
//32 saniyede 1140ml su akıyor. 
//16 saniye iken 960ml ??? 
//2 x 32 iken 2000ml


#define RELAY1_ANA_SULAMA_POMPA 3
/////////////////////////////////*12* PUMP ///////////////////////////////////////////////




///////KAPASITIF TOPRAK SENSORU
#define ToprakSensoru A1

const int Toprak_Kuruluk_Tavan_Value = 46;

int ToprakKurulukSensorDegeri = 400;
int Toprak_Kuruluk = 390;
int ToprakKurulukMapDegeri = 30;

//dry boundary : 549
//wet boundary: 270
const int ToprakSensoru_AirValue = 549;   //you need to replace this value with Value_1
const int ToprakSensoru_WaterValue = 260;  //you need to replace this value with Value_2


RunningAverage ToprakNemOrtalama(5);
int ToprakNemSamples = 0;

///////////////////////KAPASITIF TOPRAK SENSORU/////////////////////////////////////////////////




///////KAPASITIF kova su SENSORU
#define KovaSuSensoru A3

const int Kova_Kuruluk_Alt_Value = 12; //sensor 3te birine kadar doluyken KovaSuSensorDegeri287 KovaKuruluk 12 değerini veriyor. Sensor havadayken 555 sensor sudayken ise KovaSuSensorDegeri:264 KovaKuruluk:4

int KovaKurulukSensorDegeri = 400;

int KovaKurulukMapDegeri = 30;
int Kova_Kuruluk = 4;

const int KovaKurulukSensoru_AirValue = 555;   //you need to replace this value with Value_1
const int KovaKurulukSensoru_WaterValue = 264;  //you need to replace this value with Value_2

RunningAverage KovaKurulukOrtalama(5);
int KovaKurulukSamples = 0;

///////////////////////KAPASITIF kova su  SENSORU/////////////////////////////////////////////////





void setup() {  ///---------------------------------------------------------------------------------------------------------SETUP
  Serial.begin(9600); // open serial port, set the baud rate to 9600 bps

  
  //////////////////////////////////////////////  *02* SOIL HUMIDITY SENSOR
  ToprakNemOrtalama.clear();
  //////////////////////////////////////////////////SOIL HUMIDITY SENSOR////////////////////////////////////////////////////////////////////


 //////////////////////////////////////////////  *02* kova su SENSOR
  KovaKurulukOrtalama.clear();
  //////////////////////////////////////////////////kova su SENSOR////////////////////////////////////////////////////////////////////


  /////////////////////////////////////*12* POMPA SETUP
  pinMode(RELAY1_ANA_SULAMA_POMPA, OUTPUT);
  digitalWrite(RELAY1_ANA_SULAMA_POMPA, RELAY_DUR);
  /////////////////////////////////////*12* POMPA SETUP//////////////////////////////////////////////////


}///---------------------------------------------------------------------------------------------------------SETUP----------------------------------------------------------------------------



void loop() { ///---------------------------------------------------------------------------------------------------------LOOP

GetKovaSuDegeri();
GetToprakNemDegeri();
  Serial.print("SulamaCheckKrono:");  Serial.println(SulamaCheckKrono / 1000);
Sulama();

delay(100);
} ///---------------------------------------------------------------------------------------------------------LOOP



void GetKovaSuDegeri()
{
     KovaKurulukSensorDegeri = analogRead(KovaSuSensoru); 
        Serial.print("KovaSuSensorDegeri = " );Serial.println(KovaKurulukSensorDegeri);
    KovaKurulukMapDegeri = map(KovaKurulukSensorDegeri, (KovaKurulukSensoru_WaterValue*0.95), (KovaKurulukSensoru_AirValue*1.04), 0, 100);
        Serial.print("KovaSuSensoru urulukMapDegeri = " );Serial.println(KovaKurulukMapDegeri);
    KovaKurulukOrtalama.addValue(KovaKurulukMapDegeri);
    KovaKurulukSamples++;
    Kova_Kuruluk = KovaKurulukOrtalama.getAverage();
       Serial.print("Kova_Kuruluk: ");    Serial.println(Kova_Kuruluk);
  
  };




void GetToprakNemDegeri()
{
     ToprakKurulukSensorDegeri = analogRead(ToprakSensoru); 
        Serial.print("Toprak_Nem_Sensor_Degeri = " );Serial.println(ToprakKurulukSensorDegeri);
    ToprakKurulukMapDegeri = map(ToprakKurulukSensorDegeri, (ToprakSensoru_WaterValue*0.95), (ToprakSensoru_AirValue*1.05), 0, 100);
        Serial.print("ToprakKurulukMapDegeri = " );Serial.println(ToprakKurulukMapDegeri);
    ToprakNemOrtalama.addValue(ToprakKurulukMapDegeri);
    ToprakNemSamples++;
    Toprak_Kuruluk = ToprakNemOrtalama.getAverage();
       Serial.print("Toprak_Nem: ");    Serial.println(Toprak_Kuruluk);
  
  };

  ///////////////////////////////////////////////////////////////////////////////   *12* POMPA SETUP
void Sulama() 
{
  if (SulamaCheckKrono > SulamaBeklemeSuresi && Toprak_Kuruluk > Toprak_Kuruluk_Tavan_Value && Kova_Kuruluk<Kova_Kuruluk_Alt_Value  )  //eğer pompanın zamanının gelip gelmediğini kontrol eden kronometre belirttigimiz bekleme süesi olan 60 saniyeyi geçtiyse, kontrole basla
  {
      elapsedMillis PompalamaKrono;    //pompanin calisma suresini kontrol eden kronometre
      while ( PompalamaKrono < PompalamaSuresi)
      {
        digitalWrite(RELAY1_ANA_SULAMA_POMPA, RELAY_CALIS);
        Serial.print("PompalamaKrono:");   Serial.println(PompalamaKrono / 1000);
     
      };
      PompalamaKrono = 0;
      digitalWrite(RELAY1_ANA_SULAMA_POMPA, RELAY_DUR);
      ToprakNemOrtalama.clear();
      SulamaCheckKrono = 0;
    
  };
};
  ////////////////////////////////////////////////////////////// *12* POMPA SETUP ////////////////////////////////////////////////////

  

MiniSulamaModulu_bcc

 

 

Watering Tomato Plants

Water slowly, water deeply –

The number one rule of watering tomatoes is to make sure that you go slow and easy. Never rush watering tomato plants. Use a drip hose or other forms of drip irrigation to deliver water to your tomato plants slowly.

Water regularly –

How often should you water tomato plants? There is no hard and fast rule to this. It depends on how hot it is and if the plant is actively growing. A good rule of thumb is to supply water once every two or three days at the height of summer. Remember that water supplied by Mother Nature counts towards watering tomato plants in the garden. Once the weather cools and fruit has set, scale back watering to once a week.

Water at the roots –

When watering tomatoes, make sure you get the water straight to the roots. Do not water from above as this can cause disease and pests to attack the plants. Watering tomato plants from above also encourages premature evaporation and unnecessarily wastes water.

Mulch –

Using mulch help to keep water where the plants need it. Use mulch to slow down evaporation

Leave a Reply