back to top

Evimizde Tropik Meyve Yetiştirsek 🤔 Arduino İle Otomatik Sera Yaptık!

Bu projede istediğimiz bitkiyi yetiştirmeye olanak sağlayacak bir sera otomasyonu yapacağız.

Örneğin yağmur ormanlarında yetişen bitkiler uzun ağaçlardan dolayı gün ışığının %1 ya da %2′ sini alabilirler. Toprak ise sürekli nemli olmalıdır. Ya da çöl de yetişen bir bitki çok sıcak kurak ortama ihtiyaç duyar ve sert rüzgarı sevmezler. Benim verdiğim sadece iki örnek , siz gerekli ayarlamaları yaparak istediğiniz iklimi, bitki örtüsünü oluşturup mod olarak ekleyebilirsiniz.

Arduino Otomatik Sera Yapımı

Bu proje için ihtiyacınız olan malzemeler:

Ben örnek olması için ışık kaynağını şerit led kullandım. Normal led ışıkların bitki gelişimine etkisi yoktur, bitki gelişimi için uv ışık kaynakları kullanmanız gere.

Bağlantı Şeması

Bu projede kullandığımız sensörlerin veya elemanların detaylı kullanımı ile ilgili bilgileri arduino dersleri ve arduino projeleri serilerinde bulabilirsiniz.

Arduino Projeleri

Arduino Dersleri ve Projeleri

Su pompası çalıştığında lcd ekranınız bozulabilir ya da program reçetelenebilir. Bunun sebebi motor çalıştığında bir frekans gürültüsü oluşturuyor, dolayısı ile lcd ekran bozuluyor ya da arduino hata verebiliyor. Bunu düzeltmek için su motorunun besleme uçlarına paralel 470uF elektronik kondansatör bağlayarak çözdüm. Sorunu 470uF ile çözemez iseniz kondansatör değerini değiştirin.

Kodlar :

#include <LiquidCrystal.h>
#include <DHT.h>
LiquidCrystal lcd(8, 7, 6, 5, 4, 3);
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
int esik1= 600;
int esik2= 300;
int esik3= 800;
int buttonfan= A4;
int buttonfanDurum=0;
int buttonled= A3;
int buttonledDurum=0;
int buttonnem= A5;
int buttonnemDurum=0;
int switch1= 11;
int switch1Durum= 0;
int switch2= 12;
int switch2Durum= 0;
int ldr= A2;
int ldrDurum;
int suseviye= A1;
int suveri;
int topraknem= A0;
int toprakveri;
int fan= 9;
int led= 10;
int sumotoru= 13;
int fanhiz=0;
int ledparlaklik=0;
void setup() {
dht.begin();
lcd.begin(16, 2);
pinMode(buttonfan, INPUT);
pinMode(buttonled, INPUT);
pinMode(buttonnem, INPUT);
pinMode(switch1, INPUT);
pinMode(switch2, INPUT);
pinMode(ldr, INPUT);
pinMode(suseviye, INPUT);
pinMode(topraknem, INPUT);
pinMode(fan, OUTPUT);
pinMode(led, OUTPUT);
pinMode(sumotoru, OUTPUT);
pinMode(1, OUTPUT);
}
void loop() {
 int temp = dht.readTemperature();
 int hum = dht.readHumidity();
  
 buttonledDurum=digitalRead(buttonled);
 buttonfanDurum=digitalRead(buttonfan);
 buttonnemDurum=digitalRead(buttonnem);
 switch1Durum=digitalRead(switch1);
 switch2Durum=digitalRead(switch2);
 ldrDurum=analogRead(ldr);
 suveri=analogRead(suseviye);
 toprakveri=analogRead(topraknem);
 //****su deposu****//
 if(suveri>600){
  digitalWrite(1, HIGH);
 
 }
 if(suveri<300){
  digitalWrite(1, LOW);
 }
//********kullanıcı modu ********//
if(switch1Durum == LOW && switch2Durum==LOW){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("temp:");
lcd.print(temp);
lcd.print("c");
lcd.setCursor(9, 0);
lcd.print("Hum:%");
lcd.print(hum);
lcd.setCursor(0, 1);
lcd.print("L:");
lcd.print(ledparlaklik);
lcd.setCursor(5,1);
lcd.print("F:");
lcd.print(fanhiz);
lcd.setCursor(10, 1);
lcd.print("T:");
lcd.print(esik1);
delay(100);
//******** fan hızı ********//
if(buttonfanDurum == HIGH){
  fanhiz= fanhiz +10;
}
if(fanhiz==260){
  fanhiz=0;
}
analogWrite(fan, fanhiz);
//********led parlaklik********//
if(buttonledDurum == HIGH){
  ledparlaklik= ledparlaklik +10;
}
if(ledparlaklik==260){
  ledparlaklik=0;
}
if(ldrDurum> 900){
  analogWrite(led, ledparlaklik);
}
else{
  analogWrite(led, LOW);
}
//********sulama********//
if(buttonnemDurum==HIGH){
  delay(10);
  esik1= esik1+ 100;
}
if (esik1== 1100){
  esik1=600;
}
if(toprakveri> esik1){
digitalWrite(sumotoru, HIGH);
delay(5000);
digitalWrite(sumotoru, LOW);
delay(5000);
  
}
if(toprakveri<esik1){
  digitalWrite(sumotoru, LOW);
}
 }
 //********yağmur ormanları********//
 if(switch1Durum == HIGH && switch2Durum == LOW){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Yagmur ormani");
lcd.setCursor(0,1);
lcd.print("temp:");
lcd.print(temp);
lcd.print("C");
lcd.setCursor(9, 1);
lcd.print("Hum:%");
lcd.print(hum);
delay(100);
analogWrite(fan, 200);
if (ldrDurum> 900){
  analogWrite( led, 50);
}
  else{
    analogWrite(led, LOW);
    
  }
 //********sulama********//
 if(toprakveri> esik2){
  digitalWrite(sumotoru, HIGH);
  delay(5000);
  digitalWrite(sumotoru, LOW);
  delay(500); 
 }
 if(toprakveri<esik2){
  digitalWrite(sumotoru, LOW);
 }
 }
//********Col********//
 if(switch1Durum == HIGH && switch2Durum == HIGH){
lcd.clear();
lcd.setCursor(5,0);
lcd.print("Col");
lcd.setCursor(0,1);
lcd.print("temp:");
lcd.print(temp);
lcd.print("C");
lcd.setCursor(9, 1);
lcd.print("Hum:%");
lcd.print(hum);
delay(100);
analogWrite(fan, 0);
if (ldrDurum> 900){
  analogWrite( led, 250);
}
  else{
    analogWrite(led, LOW);
    
  }
 //********sulama********//
 if(toprakveri> esik3){
  digitalWrite(sumotoru, HIGH);
  delay(5000);
  digitalWrite(sumotoru, LOW);
  delay(500); 
 }
 if(toprakveri<esik3){
  digitalWrite(sumotoru, LOW);
 }
 
 }
}

Son Çıkan Yazılar

12 YORUMLAR

  1. biz kızımla bu projeyi yapmak istiyoruz. Öneri ve destek verebilir misiniz? Bu çapta bi akvaryum içine yapacağız. Ne yetiştirebiliriz? tabi bir önce yetişsin tavrımız yok. Kızım henüz 1.sınıf Ziraat fakültesinde. Babası olarak isteğim gerçekten yetiştiğini test ederek görüp öğrensin istiyorum.
    Destek verirseniz seviniriz. Teşekkürler.

  2. Elektrik ve elektronikte yeteri bilgi ve tecrübeye sahibim arduinoya yeni başladım 1 aydır gece gündüz yaptığım araştırmalarda şunu anladım ki türkiyede arduino nun A sını bilen yok buton aç led yak delay inpup output servo çizgi izleme vb. türlerden başka bişey yapabilen yok herkez hazırda olanı birbirinden gördüğünü yapmış oysa bu sistem oyuncak yapmaktan daha öte profesyonel bişey birsürü proje yapmış kişilere iki satırlık kod soruyorum cevap yok malesef ki yabancı kaynakları araştırarak kod yazmayı öğrendim internet alemini malesef çöp yığınına çevirmişler düzinelerce pfd dökümanlarında sadece led açıp kapatma işlenmiş kod anlamları karakter anlamı yazılış şekli hakkında bişey bilen yok 2 satır kod öğrenen paylaşım yapmış

    • Siz işe Ardunıo tarafından bakıyorsanız zaten alanda çok profesyonel değilsinizdir. Ayrıca birisi size Ardunıo’yu tam bildiğini söylüyorsa onu temel yapısına kadar biliyor demektir. Esasen sizde de belli bir temel olması gerekir ki anlayasınız. Bu da bir aylık bir iş değildir. Araştırdığınız kaynaklar neler mesela ? Facebook, youtube gibi boş konuşanların takdir edilip iş icra edenlerin yüzüne dahi bakılmadığı platformlarda araştırma yaptıysanız elbette ki bulmakta zorlanırsınız. Tam anlamıyla bilen kişiler bu mecralarda çok fazla gezinmezler zira işin şovunu yapmaktan hoşlanmazlar. Naçizane paylaşmayı seven ve değer görenler elbetteki müstesna. Binaenaleyh led açıp kapatmayı da basit görmeyin. Elektronikte karmaşık olarak nazar ettiğiniz pek çok şey aslında elekriksel açıp kapatmadan ibarettir. Acizane tavsiyem Ardunio’ ya da çok takılmayın. PIC tatbikatı ve datasheet okuma üzerinde gelişin. Çeşitli yazılım dillerini öğrenin. Mesela C++ dili ki Ardunio da bu dil tabanlıdır. C++ dilini bilen birisi için de Ardunio’ yu tanımak hiç de zor olmayacaktır. Ayrıca bu alanda yazılmış olan kitapları bilhassa da eski kitapları karıştırın. Emin olun çok şeyler öğreneceksiniz. Başarmak iyi de olsa kötü de olsa ortaya size ait bir işi koymaktır.

  3. Merhaba, yaptığınız proje çok güzel ben de yapmak istiyorum ama sizin kadar profesyonel değilim, henüz başlangıç aşamasındayım. Devre elemanlarının kartlara yerleşimi, lehimlenmesi, montajlar çok hızlı geçilmiş, detay yok, nasıl yapılacağını göremiyorum. Bu konuda nasıl yardımcı olabilirsiniz…

  4. bağlantı yı yaparken cok güzel anlatmışsın kendim kafa yorarak ne yi nereye bağladıgını anlamaya çalıştım baya iyisiniz cok teşekkür ederim baya …

  5. Merhabalar, ben bu projedeki herşeyi eksiksiz yaptım fakat ledim yanmıyor, yani 9. Pinde fan, 10.pinde led var, fan gayet düzgün çalışıyor fakat led yanmıyor. Ve ledi fanın çalıştığı yere bağladığım zamanda(9.pine) çalışıyor fan ile birlikte, ardunio arızaladır diye yeni bitanede daha aldım yine olmadı yardımcı olabilirmisiniz?

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz