agaclar.net

agaclar.net (http://www.agaclar.net/forum/)
-   Topraksız Tarım (http://www.agaclar.net/forum/topraksiz-tarim/)
-   -   Topraksız Tarım Kontrol Sistemleri (http://www.agaclar.net/forum/topraksiz-tarim/27666.htm)

Potasyum 03-06-2012 16:24

Topraksız Tarım Kontrol Sistemleri
 
5 Eklenti(ler)
Topraksiz tarim toprakli tarima nazaran daha cok kontrol ve incelik istemektedir.Topraksiz tarimda kontrolun avantaji zaman ve kalite acisindan onemli rol oynar.

Topraksiz tarim ticari veya profesyonel yapilacaksa,Serada hava(CO2,O2) orani,nem,isi,isik,bitki icin sudaki besin orani,su asitligi,koklerdeki bakteriyel fonksiyonlarin kontrolu,nft'de suya karismis veya koklerdeki gereksiz gazlarin atilmasi ornegin (alkol),bocek,fungi,kimyasal,gibi kontrol mekanizmalari yetistirmede kaliteyi yukseltmekte zamani en alt seviyeye indirmektedir.

Bu sistemler topraksiz tarimin omurgasini olusturmaktadir.Hobi olarak basladigimda isin ilk olarak kontrolunden basladim.Evimde kullandigim kapali sera icin kurdugum eski sistemin ekran ve tuslar bolumune gelistirme ve yeni eklemeler yapmaktayim.

Video

Sera Kontrol Sistemleri/Gelistirme - YouTube


Eski sistemin programlaridan Ec/co2/ph kontrol Arduino bazli

Alıntı:

#include <LiquidCrystal.h>

#include <stdlib.h> // for itoa() call
#include <EEPROM.h>




/* Temperature/Thermistor Calibration
5v--100k_Therm--input--100k --gnd
y = bit value from input, x = Temperature Value
y = mx +c */
#define TEMPERATURE_M 20
#define TEMPERATURE_C -163

/* Carbon dioxide calibration
y = MLogn(x) + C
x = e^((y-C)/M)

where y is bit value and x is c02 concentration
C02 Bit Value
400 279.98

10000 -0.03
=-87*(LN(N25))+800
*/
#define Carbon_M 0.25//-87//-1.47 // was-87
#define Carbon_C 175//800 //1300 //was 800

/*PH calibration
y = MLogn(x) + C
x = e^((y-C)/M)

where y is bit value and x is c02 concentration
C02 Bit Value
400 279.98

10000 -0.03
=-87*(LN(N25))+800
*/
#define Ph_M 0.25//-87//-1.47 // was-87
#define Ph_C 175//800 //1300 //was 800

#define Ec_M 0.25//-87//-1.47 // was-87
#define Ec_C 175//800 //1300 //was 800
/***********************/
/* Interval Definitions*/
#define INTERVAL 30000 //Define ms INTERVAL in between trigerring
#define SENSOR_INTERVAL 400 // SENSOR INTERVAL
#define BACKLIGHT_TIME 180000 // 1 minute for backlight on after no keypress. NOT BEING USED NOW
#define EE_PROM_INTERVAL 600000 //write data to eeprom every 10minutes

/*******/
/*Define array size to be used for averaging. */
/*In The array, the max value and min value are taken out and the rest averaged*/
/* If 2 or less, it is just averaged*/
#define ARRAY_SIZE 10



/**********************/
/*Hysterisis Intervals*/
#define TEMP_LO 1
#define TEMP_HI 1
#define CO2_LO 10
#define CO2_HI 10
#define PH_LO 10
#define PH_HI 10
#define EC_LO 10
#define EC_HI 10
/**********************/
/* Define input Pins */
//Analog
#define THERM1 1 // Analog 1 Thermistor 1 voltage
#define CARBONDI3 2
#define PH 3
#define EC 4
/// Analog 3


/**********************/
/*Define output Pins */
//Digital
#define RELAY1 12
#define RELAY2 3
#define RELAY3 13
#define RELAY4 11
#define BACKLIGHT 10 //backlight Pin Value
//Can use pins 0 + 1 if serial not being used.. or use an analog pin.

/******Define Size of storage array for values*/
#define ARRAY_STORE 200 //how many lines to store in eeprom. ARRAY_STORE*4 <1k


/*****************************/
/*set Triggers *************/
int heatTrigger1 = 25;
int C02Trigger = 1000;
int PHTrigger = 1000;
int ECTrigger = 1000;
/***************************/
/* Sensor Value initialize */
int thermValue1 = 0;
int carbonDiVal = 0;
int PhVal = 0;
int EcVal = 0;

int therm1[ARRAY_SIZE];
int carbonD[ARRAY_SIZE];
int Ph[ARRAY_SIZE];
int Ec[ARRAY_SIZE];

int Whole, Fract;
int keypad_delay = 10;

/************************/
/*Set time check ms */
long last_check = millis();
long sensor_check = millis();
long backlight = millis();
int timing = millis();
long time_eeprom = millis();

/**************************/
/** LCD Shield */
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
char buf[5]; //used in conversion of int to char for lcd

int configure = 0; //use select as an on/off for configuring
int showReading = 0; //select which value to modify 0-3
int adc_key_in = 1024; //Start with -1 key value

int adc_key_val[5] = {
100, 160, 360, 770, 800 }; //Analog values from Keys on keypad shield


int NUM_KEYS = 5;
int key= -1;

char trigger_names[4][15] = {
"Temp Trigger 1",
"C02 Trigger",
"PH Trigger",
"EC Trigger" };

boolean Heat_on = false;
boolean CO2_on = false;
boolean Ph_on = false;
boolean Ec_on = false;
/* Set up index value for storing values in eeprom*/
int k=0;



void setup()
{
// declare pins as output
//pinMode(LEDPIN, OUTPUT);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);

//Setup averaging arrays
int i;


for(i=0; i< ARRAY_SIZE; i++)
{
therm1[i] = 512;
carbonD[i] = 700;
Ph[i] = 700;
Ec[i] = 700;
}
//pinMode(BACKLIGHT,OUTPUT); Backlight on all the time, so comment out this.

// lcd.init();
// lcd.clear();
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);

pinMode(BACKLIGHT, OUTPUT);
digitalWrite(BACKLIGHT,HIGH);
//Start serial comms with computer
Serial.begin(115200);

delay(100); //delay for sensor setup

}

void loop() {


key = get_key(adc_key_in); //In case

//reset sensor_check if millis() has overflowed
if( millis() < sensor_check ){ sensor_check = millis(); }

/* This is for backlight off delay.
if ( (millis() < backlight) || millis() > (backlight + BACKLIGHT_TIME))
{ digitalWrite(BACKLIGHT,LOW); }
*/


/*Read sensor only after delay of sensor_check*/
if(millis() - sensor_check > SENSOR_INTERVAL )
{
sensor_check = millis();

int i;

for (i=0; i < ARRAY_SIZE -1 ; i++) {
therm1[i] = therm1[i+1];
carbonD[i] = carbonD[i+1];
Ph[i] = Ph[i+1];
Ec[i] = Ec[i+1];
}



/*** Read in sensor values and change to fit actual temp/hum/ppm values*/
therm1[ARRAY_SIZE -1] = analogRead(THERM1);
int temp1 = mov_avg(therm1);
thermValue1 = (temp1 - TEMPERATURE_C)/TEMPERATURE_M; // x = (y-c)/m



int c_temp = analogRead(CARBONDI3);
Serial.print(c_temp);
/*if (( c_temp > 0 ) && (c_temp <300)) //stops unecessary calcs which grind arduino to a halt
{*/
carbonD[ARRAY_SIZE -1] = c_temp;
c_temp = mov_avg(carbonD);
Serial.print(":");
Serial.print(c_temp);
float c_float = c_temp - Carbon_C; // For ease of use in power function
c_float = c_float/Carbon_M;
Serial.print(":");
Serial.print(c_float);
carbonDiVal = pow(2.718,c_float);
//}
Serial.print(":");
Serial.println(carbonDiVal);

////PH////////***////////



int p_temp = analogRead(PH);
Serial.print(p_temp);
/*if (( c_temp > 0 ) && (c_temp <300)) //stops unecessary calcs which grind arduino to a halt
{*/
Ph[ARRAY_SIZE -1] = p_temp;
p_temp = mov_avg(Ph);
Serial.print(":");
Serial.print(p_temp);
float p_float = p_temp - Ph_C; // For ease of use in power function
p_float = p_float/Ph_M;
Serial.print(":");
Serial.print(p_float);
PhVal = pow(2.718,p_float);
//}
Serial.print(":");
Serial.println(PhVal);



int e_temp = analogRead(EC);
Serial.print(3_temp);
/*if (( c_temp > 0 ) && (c_temp <300)) //stops unecessary calcs which grind arduino to a halt
{*/
Ph[ARRAY_SIZE -1] = 3_temp;
3_temp = mov_avg(Ec);
Serial.print(":");
Serial.print(e_temp);
float e_float = e_temp - Ec_C; // For ease of use in power function
e_float = e_float/Ec_M;
Serial.print(":");
Serial.print(e_float);
EcVal = pow(2.718,e_float);
//}
Serial.print(":");
Serial.println(EcVal);
/**Add first line of Display**/
if (configure == 0)
{

lcd.setCursor(0,0);
lcd.print("ISI CO2 PH EC");
}
/**** Add second line of the Display *****/
if (configure == 0)
{
lcd.setCursor(0,1); //
itoa(thermValue1, buf, 10);
lcd.print(buf);

lcd.setCursor(4,1);
Whole = (carbonDiVal / 100); // separate off the whole and fractional portions
Fract = (carbonDiVal % 100);

if (Whole >= 10) {
Whole = 9;
}
lcd.print(Whole, DEC);
delay(keypad_delay);
lcd.print(".");
delay(keypad_delay);
if (Fract < 10){
lcd.print("0");
delay(keypad_delay);
}
lcd.print(Fract, DEC);
delay(keypad_delay);


lcd.setCursor(8,1);
Whole = (PhVal / 100); // separate off the whole and fractional portions
Fract = (PhVal % 100);

if (Whole >= 10) {
Whole = 9;
}
lcd.print(Whole, DEC);
delay(keypad_delay);
lcd.print(".");
delay(keypad_delay);
if (Fract < 10){
lcd.print("0");
delay(keypad_delay);
}
lcd.print(Fract, DEC);
delay(keypad_delay);

lcd.setCursor(11,1);
Whole = (EcVal / 100); // separate off the whole and fractional portions
Fract = (EcVal % 100);

if (Whole >= 10) {
Whole = 9;
}
lcd.print(Whole, DEC);
delay(keypad_delay);
lcd.print(".");
delay(keypad_delay);
if (Fract < 10){
lcd.print("0");
delay(keypad_delay);
}
lcd.print(Fract, DEC);
delay(keypad_delay);



}
//*************************TEST ICIN****************//

// Print Output Values*/

/*Serial.print(thermValue1);
Serial.print(":");
Serial.print(carbonDiVal);
Serial.println(":");

//PRINT ARRAYS THAT ARE AVERAGED
Serial.print("**Therm1*");
Serial.print(thermValue1);
Serial.print("*(");
for( i=0; i<ARRAY_SIZE; i++)
{
Serial.print(therm1[i]);
Serial.print(":");
}
Serial.print(")**carbonD*");
Serial.print(carbonDiVal);
Serial.print("*(");
for( i=0; i<ARRAY_SIZE; i++)
{
Serial.print(carbonD[i]);
Serial.print(":");
}
Serial.println(")");


}

/********************************************/
/*EEPROM STORAGE CODE *********************/
if(millis() < time_eeprom) { time_eeprom = millis(); }
/**Put values into eeprom*/
if(millis() - time_eeprom > EE_PROM_INTERVAL)
{
time_eeprom = millis();
EEPROM.write((k*4),(thermValue1));
EEPROM.write((k*4+1),(carbonDiVal/10));
EEPROM.write((k*4+2),(PhVal/10));
EEPROM.write((k*4+3),(EcVal/10));
k=k+1;
if(k>=ARRAY_STORE) { k=0; }
}/****************************************/


/************************************************** *****/
/*RELAY Changes and value checks, after time INTERVAL***/
if( millis() < last_check ) { last_check = millis(); }

if (millis() - last_check > INTERVAL)
{
last_check = millis(); //left out until final test, no wait 30sec

//Temperature 1 check and Relay Change
if (thermValue1 > (heatTrigger1 +TEMP_HI) ) {
digitalWrite(RELAY1, HIGH);
Heat_on = true;
}

if (thermValue1 < (heatTrigger1 -TEMP_LO) ) {
digitalWrite(RELAY1, LOW);
Heat_on = false;
}


//Carbon Dioxide check and Relay Change

if ( carbonDiVal < C02Trigger- CO2_LO ) {
digitalWrite(RELAY2,HIGH);
CO2_on = true; }
if ( carbonDiVal > C02Trigger+ CO2_HI ) {
digitalWrite(RELAY2, LOW);
CO2_on = false; }


//Carbon Dioxide check and Relay Change

if ( PhVal < PHTrigger- PH_LO ) {
digitalWrite(RELAY3,HIGH);
Ph_on = true; }
if ( PhVal > PHTrigger+ PH_HI ) {
digitalWrite(RELAY3, LOW);
Ph_on = false; }


//Carbon Dioxide check and Relay Change

if ( EcVal < ECTrigger- EC_LO ) {
digitalWrite(RELAY4,HIGH);
CO2_on = true; }
if ( EcVal > ECTrigger+ EC_HI ) {
digitalWrite(RELAY4, LOW);
CO2_on = false; }



/***************************/
/*KEYPAD CODE***************/
adc_key_in = analogRead(0);
key = get_key(adc_key_in); //convert into key press. key = 1-5. -1 for none

if ( (key != -1))
{
digitalWrite(BACKLIGHT,HIGH); //Backlight code taken out
backlight = millis();

if (configure ==1)
{ lcd.clear(); }
delay(20); //debounce
key = get_key(adc_key_in);
delay(200);

/****Select key****/
if ( key == 3 ) //Toggle the configure Key
{
lcd.clear();
if( configure == 1)
{
configure = 0;
lcd.clear();
delay(100);

}
else if ( configure == 0 )
{
configure = 1;
lcd.clear();
delay(100);
}
key = -1;
}
}

/***** Up Key Press ******/
if ( (key == 1) && ( configure == 1 ) )
{
lcd.setCursor(0,1);

switch(showReading)
{
case 0: //heatTrigger1
heatTrigger1 = heatTrigger1 +1;
itoa(heatTrigger1, buf, 10);
lcd.print(buf);
break;
case 1:
C02Trigger = C02Trigger + 100;
itoa(C02Trigger, buf, 10);
lcd.print(buf);
break;
case 2:
PHTrigger = PHTrigger + 100;
itoa(PHTrigger, buf, 10);
lcd.print(buf);
break;
case 3:
ECTrigger = ECTrigger + 100;
itoa(ECTrigger, buf, 10);
lcd.print(buf);
break;
}
}

/**** Keypress down ****/
if ( (key == 2) && ( configure == 1 ))
{
lcd.setCursor(0,1);

switch(showReading)
{
case 0: //heatTrigger1
heatTrigger1 = heatTrigger1 -1;
itoa(heatTrigger1, buf, 10);
lcd.print(buf);
break;
case 1:
C02Trigger = C02Trigger - 100;
itoa(C02Trigger, buf, 10);
lcd.print(buf);
break;
case 2:
PHTrigger = PHTrigger - 100;
itoa(PHTrigger, buf, 10);
lcd.print(buf);
break;
case 3:
ECTrigger = ECTrigger - 100;
itoa(ECTrigger, buf, 10);
lcd.print(buf);
break;
}

}

/***** Keypress Right ****/

if ( (key == 0) && (configure ==1) )
{
lcd.setCursor(0,1); //line 2 x =0

switch(showReading)
{
case 0: //heatTrigger1 to c02
showReading = 1;
itoa(C02Trigger, buf, 10);
lcd.print(buf);
break;
case 1: // C02Trigger to heatTrigger1
showReading = 2;
itoa(heatTrigger1, buf, 10);
lcd.print(buf);
break;
case 2: //heatTrigger2 to ph
showReading = 3;
itoa(PHTrigger, buf, 10);
lcd.print(buf);
break;
case 3: //PH to EC
showReading = 0;
itoa(ECTrigger, buf, 10);
lcd.print(buf);
break;

}
}
/******Dump to serial all EEPROM values if keypress right no config***/
if ( (key == 0) && (configure ==0) )
{
lcd.setCursor(0,0);
lcd.print("Upload");
char buf2[10];
lcd.setCursor(0,1);
lcd.print(" ");

lcd.setCursor(10,1);
lcd.setCursor(0,1);


Serial.println("");
Serial.print("Values end at:");
Serial.println(k+1);
for( k=0; k <=ARRAY_STORE; k++) //l=l+4

{
Serial.print(int(EEPROM.read(k*4)));
Serial.print(",");
Serial.print(int(EEPROM.read(k*4+1)));
Serial.print(",");
Serial.print(int(EEPROM.read(k*4+2)));
Serial.print(",");
Serial.println(int(EEPROM.read(k*4+3)));
}


}



/***** Add the first line of the display******/
lcd.setCursor(0,0); //line 1 x =0

if (configure == 1)
{
lcd.print(trigger_names[showReading]);

lcd.setCursor(0,1);
switch(showReading)
{
case 0:
itoa(heatTrigger1, buf, 10);
lcd.print(buf);
break;
case 1:
itoa(C02Trigger, buf, 10);
lcd.print(buf);
break;
case 2:
itoa(PHTrigger, buf, 10);
lcd.print(buf);
break;
case 3:
itoa(ECTrigger, buf, 10);
lcd.print(buf);
break;
}
}
lcd.setCursor(0,0);
if (Heat_on) {
lcd.print("*");
}
else {
lcd.print(" ");
}

lcd.setCursor(4,0);
if ( CO2_on ) {
lcd.print("*");
}
else {
lcd.print(" ");
}

lcd.setCursor(8,0);
if ( Ph_on ) {
lcd.print("*");
}
else {
lcd.print(" ");
}

lcd.setCursor(11,0);
if ( Ec_on ) {
lcd.print("*");
}
else {
lcd.print(" ");
}
}
}
//End Main loop

int get_key(unsigned int input)
{
int k;

for ( k=0; k < NUM_KEYS; k++)
{
if (input < adc_key_val[k] )
{
return k;
}
}

if ( k >= NUM_KEYS)
{
k = -1;
}
return k;
}

int mov_avg(int averages[ARRAY_SIZE])
{
int summation = averages[0];
int i=1;
for( i=1; i < ARRAY_SIZE; i++)
{
summation = averages[i] + summation;
}
if(ARRAY_SIZE >2)
{
summation = summation - max_array(averages) - min_array(averages);
summation = summation/(ARRAY_SIZE -2);
}
else
{
summation = summation/ARRAY_SIZE;
}
return summation;
}


int max_array(int array[ARRAY_SIZE])
{
int i=0;
int current= array[0];
for( i=1; i<ARRAY_SIZE; i++)
{
if (array[i] > current)
{
current = array[i];
}
}
return current;
}

int min_array(int array[ARRAY_SIZE])
{
int i=0;
int current= array[0];
for( i=1; i<ARRAY_SIZE; i++)
{
if (array[i] < current)
{
current = array[i];
}
}
return current;
}

Hakan Öncü 03-06-2012 23:25

Projenizi beyeni ile izledim.
Bende arduino ile bu işi yapabilme ile ilgili birkaç denemem olmuştu. Tabi benim denemelerim sizinkilerin yanında çok amatör kalır.
Tekrar tebrik ediyorum, çalışmalarınzda başarılar diliyorum.
Çalışmalarınızı buradan paylaşabilirseniz çok memnun olurum.

Kolay gelsin.

ayhan_oz 04-06-2012 00:36

Sayın Potasyum,
Bir süredir bende Arduino ile ilgileniyorum. Henüz edinme şansım olmadı. Ancak topraksız tarımda kontrol kesinlikle çok önemli. Bizim gibi amatörler içinde bu konuda uygulama geliştirmek için sanırım Arduino çok uygun.Sistemde peristaltik pompaları EC ve Ph kontrolü için kullanmışsınız sanırım.

Topraksız tarım birden çok bilgi disiplinini içinde barındıran bir konu. Bu bilgi disiplinlerini kontrol etmenin yolu da otomasyondan geçiyor. Siz de bundan başlamışsın.

Çalışmalarınızı bizimle paylaşırsanız seviniriz.

Çok güzel bir çalışma olmuş. Ellerinize sağlık tebrik ederim.
Çalışmalarınızda başarılar dilerim.

Thracian 07-06-2012 21:06

Çok begendim, tebrikler.

Biraz keninizden ve projenizden bahsedermisiniz?
mesela, ticari amaçlamı yaptınız yoksa seracısınızda kendiniz içinmi gibi detaylardan

Potasyum 10-06-2012 20:15

3 Eklenti(ler)
Selam
Kotrol sistemini hobi amacli olarak seramda nft sisteme uyumlu yaptim.Ticari amacli kullanilabilir yapimi ucuz ve basit.Bu kontrol sistemini buyuk seralara denemedim uygulanabilir.Kullandigim sensorler hasas dijital sensorler,randimanli.6 aydir eklemeler yapiyorum su ana kadar bir sorun cikamadi.Buyuk seralara uygulanirsa haliyle endustriyel-daha buyuk akim ve guc kaldirabilen kontaktorlerle/rolelerle desteklenmeli.

Bu sistem 5 voltluk roleler ile 250V 10A ta kadar
Su pomasini,havalandirma fanlari,(cilekte ozellikle meyve suresinde)ozon makinasini spreyleri,nem emici(dehumadifier),dosaj makinasi,su isitici/sogutucu,lambalari kontrol etmekte.

Cilekleri tohumdan yetistirmekteyim+3 hafta.Seraya girdikten sonra 9 ila 10 hafta meyvelerin cogu hazir.

Son hali bu

Hidroponik Sera Kontrol/Gelistirme - YouTube


Geleceklte bu isi turkiyeye gelip yapmayi dusunuyorum.Bu is icin avusturalyadan bir okuldan sertifika icin online egitim almaktayim.Seneye bitecek insallah.Elimde bazi kaynaklar var,okuldan destek daha gelisik,profesyonel kisilerler ile soru,cevap,kaynak destek aliyorum.Hidroponik basit bir sistem uygulamasi sorumluluk ve kontrol gerektiren ince bir is.

idris şenol 10-06-2012 21:29

Türkiye de sizin gibi çalışkan insanlara her zaman ihtiyaç var ,kapı sonuna kadar açık yeterki gelin hocam:))
bitki yetiştirme lambaları konusunda arştırma yapıyorum
sizin aydınlatma konusunda bilginize ihtiyacımız var
hem hesaplı hem kullanışlı aydınlatmalar nelerdir ,led lambalar bu iş için nedkadar uygun
birde çilek tohumdan üretmeyi anlatırmısınız ,nasıl yapıyorsunuz

ayhan_oz 25-07-2012 13:36

Sayın Postasyum,
Hobi amaçlı bir süredir bende bu konuya merak saldım. Hangi Arduino ile başlamalıyım ve tabiiki programlama, bu konularda bilgi birikiminizden faydalanmak isterim. Programcılık konusunda temel bilgiye sahibim.Ancak bu tür kartlar devreler sensörler hakkında fazla bilgim yok. Arduino ve kullanımı ile ilgili olarak okuyorum şu sıralar.
Tavsiyelerinizi ve deneyimlerinizi paylaşmak isterseniz çok memnun olurum.

Çalışmalarınızda başarılar dilerim.

1nsane 30-07-2012 13:45

Ayakta alkışlıyorum çok ciddi emek verilmiş.

Arduino UNO R3 ile başlanabilir.

Potasyum 30-07-2012 16:15

5 Eklenti(ler)
Selam kullandigim malzemeler Arduino mega2560,mega shield x 2,3.2 inc tft dokunmatik fonksiyonlu lcd ekran,3.2" lcd ekran shield v1.1, Devami....>>

Potasyum 30-07-2012 16:21

5 Eklenti(ler)
<<<<......Geri Kullandigim malzemelerin devami. 8 li 5 volt beslemeli role,ph kiti ve sensoru,dht22 nem ve isi sensoru sera icerisi icin,ds18b20 isi sensoru su icin,Devami.......>>

Potasyum 30-07-2012 16:30

3 Eklenti(ler)
Fan isinin durumuna gore hizini degistiriyor.Altaki roleler omron (japan) bunlar buyuk kontaktorleri yonlendirmek icin ideal,ben kullanmadim gerek duymadigim icin eger endustriyel yapilacaksa bunlar sart.

Selametle.

Potasyum 30-07-2012 16:32

Son hali

HYDROPONIK Sera Kontrol - YouTube

Dima 30-07-2012 16:40

Başarılı bir çalışma olmuş.Ellerine sağlık. Modulleri nereden temin ettin öğrenebilirmiyim ?

ayhan_oz 31-07-2012 13:30

Sayın Potasyum'un belirttiği ürünleri bu linkten bulmanız mümkündür.
Arduino Mega 2560 | eBay

Modülleri temin etmek işin en kolay kısmı sanırım. Modüllerin temininden sonra onların bir menü aracılığı ile kullanımının sağlanması. Belirlenen değerlerde çalıştırılması ve durdurulması , kontrol edilmesi , birbirleriyle etkileşimi ....
asıl iş burası.

Neticede 256 KB Flash Memory si var. Ne kadar kod yazılabilir bilemiyorum.
Sayın Potasyum'un videolarını izlediğimde arkada baya bir kod yazılmış gibi geldi bana. Ayrıca okunan bilgilerin depolanması vs. bir hayli zor geldi bana düşününce.
Ama bir yerden başlamak lazım sanırım.

Potasyum'a paylaşımları için teşekkür etmek isterim.

ayhan_oz 01-08-2012 15:17

Sayın Potasyum,
Aduino ile ilgili ürünler Çin de bulunan sitelerde çok daha ucuz.
Biz hobi amaçlı uğraşacağız. Bu ürünleri kullanmamızı önerir misiniz.

Ben başlangıçta Ph ve EC kontrolü yapabilmeyi istiyorum. Yapabilirsem tabiiki.

Örnek :
e-bay da Arduino Mega 2560 en düşük 65 $ iken
Wholesale - Buy China Wholesale Products from Chinese Wholesalers on DHgate.com Arduino Mega 256 23 $

Potasyum 07-08-2012 12:34

4 Eklenti(ler)
Selam degerli Ayhan Oz

Ben de cogu malzemelerimi cinden aldim,Ph kiti haric,ph devre semalarini cinde bastirttim 10 adet ve kendim insaa ettim.Ec kitini amerikali birinden aldim o kadar randiman alamadim ec yi devre disi biraktim.Internette buldugum EC devre semalari bes para etmez.

Kullandigim kod su anda 100KB yer kaplamakta,su seviyesi kontrolu + ozon-uv kontrol + Ec kontrol + internet/web takip ve kontrol kodu dahil 195KB.Kodu arduino ve benzeri sitelerde arama, arastirma yaparak toplayabildim.Bana uzun bir zamana mal oldu.Sonucta istedigim yere getirebildim. Bazi eklemeler ve degisiklikler......

1nsane 08-08-2012 00:30

Sayın Potasyum,

Serada O2 ölçmemiz neden gerekli?

Saygılarımla

ayhan_oz 08-08-2012 15:52

Sayın Potasyum,
Atlas-Scientific Conductivity Bu adresi bir incelemenizi öneririm. Bana ciddi bir firma ve ürünleri kaliteli gibi geldi. Yavaş yavaş bende malzemeleri almaya başlayacağım. Başlangıçtaki hedefim EC-PH ve selenoid vana kontrolü olacak.
Arduino ile ilgili sitelere bir süredir bende bakıyorum. Henüz kod yazacak aşamaya gelemedim. Ancak bir an önce kartı alıp menü yazarak başlayacağım.

Çalışmalarınızda başarılar dilerim.

Potasyum 24-11-2012 17:15

Selam

Atlas-Scientific Conductivity en ideali aslinda daha profosyonel,Ben denemedim. Su anki sistem bu sezon boyunca sorun cikarmadi ve su anki haliyle beni yeteri kadar tembel yapti bu iste,en azindan ec olayini manuela (not auto) yapiyorum,nede olsa aklin orda kaliyor,
Kod asamasi en guzeli bulmaca cozmek gibi birsey,eglenceli,zamani harcartan,Size basarilar diliyorum,umarim gormek nasib olur. :)

Buada sistemin uykuya gecisi .


Ekran koruyucu bolumu+ (ay pozisyonlari) - YouTube

Potasyum 27-11-2012 15:10

Selam


Sudaki o2 orani icin olcum yapiliyor,ornegin nft sistemde sudaki hava diger sistemlere nazaran daha zengin olmali.

ayhan_oz 27-11-2012 15:11

Selam Potasyum,
Kodlama aşaması baya teknik bir konu. İnce detaylar olduğunu öğreniyorum. Zira elektronik kartlara yazılım yapmak kolay iş değil. Henüz arduino ile ilgili dokümanları okumaya devam ediyorum.
Umarım bir gün kod yazmaya başlarım. :)

Çalışmalarınızda başarılar dilerim sayın Potasyum..

koyu yesil 27-11-2012 19:58

Sn Potasyum,
Oncelikle calismalarinizda basarilar dilerim.
Bende arduino ile benzer bir sistem kurmak uzere bir suredir calisiyorum.
Benimki sizinkine gore daha mutevazi bir sistem, atmega328 ve 2*16 lcd displayden ibaret.
Malesef fazla vakit ayiramam sebebi ile simdilik nem ve isi olcumunden ileriye gidemedim.
Aslinda benim planim, arduino ile gelistirecegim, cesitli sensorler icerecek uydular araciligi ile sadece olcum yapmak, bu veriyi bir bilgisayara aktarmak ve gerekli kontrol mantigini burada yurutmek.
Neyse, benim sizden ogrenmek istedigim konu ph olcumu ve kullandiginiz sensor.
kodunuzda anlayabildigim kadari ile bir loop icinde sureklli olarak ph olcumu yapiyorsunuz.
ph sensorleri bu durumda stabil degerler uretebiliyor mu?
yoksa kullandiginiz ozel bir sensor mu?
Cevabiniz icin simdiden tesekkur ederim.
Saygilarimla...

Potasyum 29-11-2012 17:38

Alıntı:

Orijinal Mesaj Sahibi koyu yesil (Mesaj 1055523)
Sn Potasyum,
Oncelikle calismalarinizda basarilar dilerim.
Bende arduino ile benzer bir sistem kurmak uzere bir suredir calisiyorum.
Benimki sizinkine gore daha mutevazi bir sistem, atmega328 ve 2*16 lcd displayden ibaret.
Malesef fazla vakit ayiramam sebebi ile simdilik nem ve isi olcumunden ileriye gidemedim.
Aslinda benim planim, arduino ile gelistirecegim, cesitli sensorler icerecek uydular araciligi ile sadece olcum yapmak, bu veriyi bir bilgisayara aktarmak ve gerekli kontrol mantigini burada yurutmek.
Neyse, benim sizden ogrenmek istedigim konu ph olcumu ve kullandiginiz sensor.
kodunuzda anlayabildigim kadari ile bir loop icinde sureklli olarak ph olcumu yapiyorsunuz.
ph sensorleri bu durumda stabil degerler uretebiliyor mu?
yoksa kullandiginiz ozel bir sensor mu?
Cevabiniz icin simdiden tesekkur ederim.
Saygilarimla...

Selam

Bendeki sensoru cin mali 12sterlin maliyetinde , ebay marketten 0.05-+ kayma tolaransli yani ph 6.01 bi sonraki olcum 6.06 bunlarin 0.01+- toleranslilarida var,sonucta kaliteye gore degisiyor. Bendeki sensoru okuyan devre anolog ,1-5v arasinda dogru akimli voltaji kontrol devresine okutup degerleri ve kontrolleri saglatiyorum.

Ph'i hep ayni dongude (loop) aktif tutuyorum.Sistem,ph'i istedigim oranda sudaki degisime gore up ve down dozaj pompalarindan gerekli olani belli zaman surelerinde tetikleyerek ve keserek dengeyi tutuyor.

Sistem 6 ay suresince calisirken hemen hemen her gun, sabah ve aksam baslangiclarinda ph'i, sivi olcum ile kontrol ettim.Sabit isidaki suyumu ilk ay filtrelemedim.Sapmlari suyu sivi olcum sonuclari ile orantiladim ve ayarladim Sapmalar, Baslangicta ortalama 4 gunde bir 0.10 kayiyordu. Ph 6.10 olmasi gereken 4 gun sonra 6.20 ye sapiyordu .Filtreden sonra sapmlar hemen hemen 6 gunde bire kadar cikti.Bitkinin donemlerinde degisiklik gosterebilir.

Ayari,Bitki icin tanktaki suyun,sivi olcumlerin verdigi sonuc dogrultusunda, devrede bulunan iki ayar trimpotundan sadece T1 potunu kullanarak dengeliyordum.T2 potu her "yeni" sensor degisimde 1 kereye mahsus kullaniyordum.Ozel kalibrasyon sivilari kullanmadim (sensorun ilk ayari haric)Yeni sensor+gercek sivilarla yapilan kalibrasyon.(sabit ayar T2,),Sitemin,kontrol devresinin prosesteki ph programinda bir degisiklik yapmiyorum.Sensoru gerektiginde saf su ile temizliyorum.

Selametle

ekizilaslan 19-12-2012 21:28

izlemedeyim ama pek üst seviyeymiş yahu

vetman996 19-12-2012 23:15

Sayın Potasyum kardeş merhaba.
çalışmalarınızı ilgiyle takip ediyorum.288 metrekare çilek için deneme serası yaptık.(çalışma linki aşağıda) Ec ölçümü için Sayın Kudret hocamda sera bekçisi aldık. ama ısı-nem kontrol otomasyon sistemimiz eksik. bir süre manuel çalışacaktık ama bu bizi zorlayacak. sizin çalışmalarınızı bizim serada deneyebilirmiyiz acaba. biz masrafını karşılamaya hazırız. selamlar... saygılar...

http://www.agaclar.net/forum/topraksiz-tarim/29441.htm

SAGEN 20-12-2012 09:11

Alıntı:

Orijinal Mesaj Sahibi Potasyum (Mesaj 1006716)
Selam degerli Ayhan Oz

Ben de cogu malzemelerimi cinden aldim,Ph kiti haric,ph devre semalarini cinde bastirttim 10 adet ve kendim insaa ettim.Ec kitini amerikali birinden aldim o kadar randiman alamadim ec yi devre disi biraktim.Internette buldugum EC devre semalari bes para etmez.

Kullandigim kod su anda 100KB yer kaplamakta,su seviyesi kontrolu + ozon-uv kontrol + Ec kontrol + internet/web takip ve kontrol kodu dahil 195KB.Kodu arduino ve benzeri sitelerde arama, arastirma yaparak toplayabildim.Bana uzun bir zamana mal oldu.Sonucta istedigim yere getirebildim. Bazi eklemeler ve degisiklikler......

Sayın POTASYUM;

Konuya ortasından atladım ama heyecanımı mazur görün. Sistemi tamamen sizmi yaptınız?
Eğer öyle ise süper bir iş olmuş.

SAYGILARIMLA.

SAGEN 20-12-2012 09:15

Alıntı:

Orijinal Mesaj Sahibi Potasyum (Mesaj 1053652)
Selam

Atlas-Scientific Conductivity en ideali aslinda daha profosyonel,Ben denemedim. Su anki sistem bu sezon boyunca sorun cikarmadi ve su anki haliyle beni yeteri kadar tembel yapti bu iste,en azindan ec olayini manuela (not auto) yapiyorum,nede olsa aklin orda kaliyor,
Kod asamasi en guzeli bulmaca cozmek gibi birsey,eglenceli,zamani harcartan,Size basarilar diliyorum,umarim gormek nasib olur. :)

Buada sistemin uykuya gecisi .


Ekran koruyucu bolumu+ (ay pozisyonlari) - YouTube

Sayın POTASYUM;

http://www.agaclar.net/forum/orkide/28889.htm

Linkini verdiğim orkide sistemimde benimde böyle bir şey kullanma planım var. Güzel çalışma ellerinize sağlık.

SAYGILARIMLA.

Potasyum 24-12-2012 19:37

Alıntı:

Orijinal Mesaj Sahibi vetman996 (Mesaj 1071424)
Sayın Potasyum kardeş merhaba.
çalışmalarınızı ilgiyle takip ediyorum.288 metrekare çilek için deneme serası yaptık.(çalışma linki aşağıda) Ec ölçümü için Sayın Kudret hocamda sera bekçisi aldık. ama ısı-nem kontrol otomasyon sistemimiz eksik. bir süre manuel çalışacaktık ama bu bizi zorlayacak. sizin çalışmalarınızı bizim serada deneyebilirmiyiz acaba. biz masrafını karşılamaya hazırız. selamlar... saygılar...

http://www.agaclar.net/forum/topraksiz-tarim/29441.htm


Selam

Yaptigim bu sistemi sizin seranizda denemeyi cok isterim,lakin ben yurtdisinda yasamaktayim turkiyeye yaz tatillerinde gelmekteyim.Sistemi bir sekilde bir 20 X 20cm pvc kutunun icine yerlestirmem gerek,tasinmasi ve kurulmasi acisindan kolaylik,sonrasinda gerekirse kontaktorlerle donanimli panonun icine adapte edilebilsin.Mayis ayinda turkiyeye 2 haftaligina gelme ihtimalim var.Bu zamana ragmen isteginize gore gerekirse getirim ve detaylari ozelden konusuruz.

Kontroller Nem+isi+su isi+ co2+ph+pompalar+zaman ayarli priz (isiklar)
Saygilar.

Halil Balaban 24-12-2012 20:16

Sayın potosyum,
İsmail Bey'e yazdığım mesajı yanlışlıkla size göndermişim. Onun için sildim. Kusura bakmayın.
Halil Balaban

Potasyum 17-01-2013 14:37

5 Eklenti(ler)
Selam

Sistem tanklardaki sivilarin seviyesini gostermekte.Internetten takip ozelligi kullanimi cok basit kalibrasyon ve intenete baglanma kolayligi Cosm.com dan uye olup bedava internetten takip edebilirsiniz.

Arduino uno,ethernet shield ve ultrasonic sensorler.Bu kitleri temin etmek kolay bu gunlerde.Sistemin resimlerini burya ekledim yapmak isteyen ilgilenen olursa kodlari email yolu ile gonderebilirim.


Forum saati Türkiye saatine göredir. GMT +2. Şu an saat: 17:46.
(Türkiye için GMT +2 seçilmelidir.)

Forum vBulletin Version 3.8.5 Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
agaclar.net © 2004 - 2024