www.elektronik.si
Arduino UNO R3 - Gojenje rastlin v nadzorovanem okolju
Pojdi na stran 1, 2  Naslednja  :||:
www.elektronik.si -> Arduino sekcija

Avtor: MatejKKraj: Maribor-Radvanje PrispevekObjavljeno: Pon Okt 30, 2017 8:50 pm    Naslov sporočila:  Arduino UNO R3 - Gojenje rastlin v nadzorovanem okolju
----------------------------------------------------------------------------
Pozdravljeni,

ta tema se bo nanašala na razvoj in programiranje Arduino-ta za potrebe vzgoje rastlin v nadzorovanem okolju. Sem na tem področju popoln začetnik. Se pa hitro učim in me te stvari veselijo, prav tako imam pomoč dveh prijateljev, ki se spoznata na te stvari bolj kot jaz, je pa tako, da seveda več glav več ve, in je prav tako vsaka pomoč dobrodošla! Zakaj rastline? Sem diplomiran botanik!Mr. Green Wink

Ideja je narediti box, ki je popolnoma neodvisen od človeškega faktorja v naprej nastavljenih programih ali pa popolna kontrola na vsemi parametri v nadaljnji fazi razvoja projekta preko aplikacije na PC ali mobilni napravi.

Se pravi:

Kontrola LED luči;
(imitacija sončnega dneva 24H -vzhod,jutro,opoldne,popoldne,zahod,noč- z DIMM funkcijo in 2 različni barvi LED modulov -2200K-4400K-, prav tako z UV LED modulom) Prilagojeno glede na območje v katerem želimo da rastlina raste - ekvator ali proti severu))

Kontrola vlage;
(ozračje, zemlja), možnost imitacije različnih pogojev glede na podnebje v katero postavimo rastlino, avtomatsko zalivanje zemlje, pršenje))

Kontrola temperature;
Imitacija temperature različnih regij(povprečna vrednost) ali pa enostavno ročno nastavljanje temperature in vzdrževanje le te z pomočjo termostata.

Kontrola zračenja;
Kontrola ventilatorjev za dovod svežega zraka in odvod starega(popolno avtomatsko glede na določene parametre ali pa popolnoma ročno)

Seveda je še veliko drugih stvari,ki bom jih dodajal sproti in bodo vplivale na rast rastlin in skrbeli za najboljše možne pogoje, vendar je za začetek že to dovolj.

KAJ TRENUTNO UPORABLJAM


HARDWARE, KI BO UPORABLJEN ZA VES PROJEKT


Koda se bo sproti dopolnjevala in objavljala!

KODA 30.10.17
Ta del kode bere samo senzor za temperature in nam vrača signal!

Koda:
#include <LiquidCrystal.h>         

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Digitalni pini na keterega smo vezali LCD
const int inPin = 0;                   // A0 je povezan senzor
void setup()
{
  lcd.begin(16,2);
}
void loop()
{
  int value = analogRead(inPin); // Bere vrednost sezorja
  lcd.setCursor(0,1);
  float millivolts = (value / 1024.0) * 5000;
  float celsius = (millivolts-500) / 10;
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(celsius);
  lcd.print(" STOPINJ JE");
  lcd.setCursor(0,1);
  lcd.print("V GROW BOXU");
  delay(5000);
}

VEZAVA NA KODI 30.10.17


UPDATE KODE 1.11.2017
Koda je zmožna nastavitev MIN in MAX temperature, katera pa sproži pri previsoki temperaturi dodaten ventilator za ohlajanje prostora, ter ga lahko spet izklopi, ko doseže temperatura določeno nastavljeno vrednost! Pri prenizki temperaturi lahko sproži grelec da ogreje prostor, dodana RGB LED dioda za prikaz temperature.

Koda:
//Library
#include <LiquidCrystal.h>

//Constant output/input pins
const int pinDig=13,pinRed=10,pinBlue=9,pinGreen=8,inPin=0,rs=12,re=11,db4=5,db5=4,db6=3,db7=2;
const int buttonPin=1;
//State
int buttonState = 0;

const int MAX=33,MIN=24;//Min and Max constant for temperature

LiquidCrystal lcd(rs,re,db4,db5,db6,db7); //LCD connection
void startUP(char* top,char* bottom, int seconds){
  lcd.setCursor(0,0);
  lcd.print(top);
  lcd.setCursor(0,1);
  lcd.print(bottom);
  delay(seconds*1000);
}
void setup() {
  //Input/output pins
  lcd.begin(16,2);
  pinMode(pinDig,OUTPUT);
  pinMode(pinGreen,OUTPUT);
  pinMode(pinRed,OUTPUT);
  pinMode(pinBlue,OUTPUT);
  pinMode(buttonPin,INPUT);
  startUP(" GROW BOX ALPHA","START UP SEQUENCE",2);
}

//Function for temperature reading
float tempC()
{
  int value = analogRead(inPin);
  lcd.setCursor(0,1);
  float millivolts = (value / 1024.0) * 5000;
  float celsius = (millivolts-500) / 10;
  return celsius;
}
void loop() {
if(digitalRead(buttonPin)==1){ //Switch state on button press
    if(buttonState==1)
          buttonState = 0;
    else
          buttonState = 1;
  }
  float temp = tempC();
  lcd.clear();
  if(buttonState==0){ // Show temp. readings if state=0
    lcd.setCursor(0,0);
    lcd.print(temp);
    lcd.print("'C");
    lcd.setCursor(0,1);
   //TODO:: Add heather code!!
    if(temp > MAX){ //ventilation ON(untill further change) and RGB led glows RED
      digitalWrite(pinDig,HIGH);
      digitalWrite(pinRed,1);
      digitalWrite(pinBlue,0);
      digitalWrite(pinGreen,0);
      lcd.print("TEMP:HIGH");
    }
    else if(temp < MIN){ //ventilation OFF(untill further change) and RGB led glows BLUE and heather turns on untill min temp. is reached
      digitalWrite(pinDig,LOW);
      digitalWrite(pinBlue,1);
      digitalWrite(pinRed,0);
      digitalWrite(pinGreen,0);
      lcd.print("TEMP:LOW");
    }
    else{ //RGB led glows GREEN and heather turns off
      digitalWrite(pinGreen,1);
      digitalWrite(pinBlue,0);
      digitalWrite(pinRed,0);
      lcd.print("TEMP:NORM");
    }
  }
  //Add humidity sensor code
  else{ //If state is 1 show humidity readings on LCD
    lcd.setCursor(0,0);
      lcd.print("HUMIDITY");
    lcd.setCursor(0,1);
    lcd.print("Sensor???");
  }
  delay(500);
}

VEZAVA NA KODI 1.11.17


To je zaenkrat vse. Sproti bom pa seveda dopolnjeval stvari.


Nazadnje urejal/a MatejK Sre Nov 01, 2017 12:01 pm; skupaj popravljeno 4 krat

Avtor: igo PrispevekObjavljeno: Tor Okt 31, 2017 12:00 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Najprej množenje, potem deljenje.
float milivolts = (value * 5000.0) / 1024.0

Avtor: Peter123Kraj: Lj. PrispevekObjavljeno: Tor Okt 31, 2017 1:59 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Sam sem realiziral zadevo malo drugače.
Dodal sem še krmiljenje gretja, ko so luči ugasnjene se lahko temperatura tudi spusti.
Opcija različne temperature v temi in pod prižgano lučjo.

Dodal sem tudi avtomatsko zalivanje:
-zajem vlage substrata
-krmiljenje motorčkov oziroma ventilov.

Kar se je kasneje izkazalo za ne najbolj pametno: če uporabljaš gnojila za hidroponiko le te rade začnejo izločati soli če so zmešane stojijo dalj časa.

Avtor: MatejKKraj: Maribor-Radvanje PrispevekObjavljeno: Sre Nov 01, 2017 11:41 am    Naslov sporočila:  
----------------------------------------------------------------------------
Peter123 je napisal/a:
Sam sem realiziral zadevo malo drugače.
Dodal sem še krmiljenje gretja, ko so luči ugasnjene se lahko temperatura tudi spusti.
Opcija različne temperature v temi in pod prižgano lučjo.

Dodal sem tudi avtomatsko zalivanje:
-zajem vlage substrata
-krmiljenje motorčkov oziroma ventilov.


Vse še pride narejeno, tako kot si opisal! Za določene stvari bom uporabim Arduino Nano, saj je še v planu, da se naredi ločen box kot Nursery(box od faze vzklitja do presaditve) ali pa celo v enem kosu kompleten box z ločenimi prostori.

Avtor: MatejKKraj: Maribor-Radvanje PrispevekObjavljeno: Sre Nov 01, 2017 11:41 am    Naslov sporočila:  
----------------------------------------------------------------------------
Vse ostalo pa se bo dopolnjevalo v prvi objavi!

Avtor: thetilkoKraj: Celovec PrispevekObjavljeno: Čet Nov 02, 2017 9:46 am    Naslov sporočila:  
----------------------------------------------------------------------------
Nujno dodati PID regulacijo ali pa kaksne casovnike, da se ti luc in grelec ne bosta preklapljala pri mejnih vrednostih.

Avtor: MatejKKraj: Maribor-Radvanje PrispevekObjavljeno: Čet Nov 02, 2017 10:53 am    Naslov sporočila:  
----------------------------------------------------------------------------
Grelec in luči še niso niti v kodi dodani. Bo pa seveda vse podano zraven še pri razvoju Smile

Avtor: thetilkoKraj: Celovec PrispevekObjavljeno: Čet Nov 02, 2017 11:28 am    Naslov sporočila:  
----------------------------------------------------------------------------
Samo iz radovednosti me zanima, kako se bo kontrolirala kolicina pretocene vode pri zalivanju?

Avtor: MatejKKraj: Maribor-Radvanje PrispevekObjavljeno: Čet Nov 02, 2017 5:48 pm    Naslov sporočila:  
----------------------------------------------------------------------------
thetilko je napisal/a:
Samo iz radovednosti me zanima, kako se bo kontrolirala kolicina pretocene vode pri zalivanju?


Nevem se tocno, se razmisljam. V mislih sem imel senzor vlage za v zemljo. Videl sem tudi da obstaja senzor za dež in količino le te tega. Malo se bom igral glede tega se.


Nazadnje urejal/a MatejK Čet Nov 02, 2017 10:36 pm; skupaj popravljeno 1 krat

Avtor: MadMax PrispevekObjavljeno: Čet Nov 02, 2017 9:52 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Sicer offtopic, a...
Meni se zdi tole enkratno zastavljena tema, pohvalno! Applause
Predlagam pa, da se še slike postavijo direkt na forum, sicer bi znale iz slikomatika izginiti, s tem pa bi zanamcem tudi tema izgubila na vrednosti.

Avtor: MatejKKraj: Maribor-Radvanje PrispevekObjavljeno: Čet Nov 02, 2017 10:41 pm    Naslov sporočila:  
----------------------------------------------------------------------------
MadMax je napisal/a:
Sicer offtopic, a...
Meni se zdi tole enkratno zastavljena tema, pohvalno! Applause
Predlagam pa, da se še slike postavijo direkt na forum, sicer bi znale iz slikomatika izginiti, s tem pa bi zanamcem tudi tema izgubila na vrednosti.


Najlepša hvala Smile Bom upošteval nasvet Smile Zanima pa me, ali bi mi del senzorjev, luči in modulov, kot so modul za zatemnitev luči(načrt in projekt pride še opisan v to objavo), itd, bil zmožen gnat kakšen PC napajalnik? Razmišljam o 800-1000W, predvsem zaradi LED luči Smile Ali imate kakšen boljši predlog? Kaj bol namenskega za to zadeva? Problem je v tem, da mora zadeva v končni fazi izgledati nevpadljiva, a kljub temu še dokaj moderna in lična Wink

Avtor: MadMax PrispevekObjavljeno: Čet Nov 02, 2017 11:04 pm    Naslov sporočila:  
----------------------------------------------------------------------------
PC napajalnik je dober za 5/3.3V, pri 12 pa ima večina njih težavo: ni regulirano, posledično odvisno (včasih kar pogojeno) z obremenitvijo 5/3.3 linij.
Za sproti se malo učit in spoznavat njihove slabosti so ok.
Za končno verzijo pa bi jaz raje posegel po čem preverjeno bolj primernem, recimo teh. Sigurno najdeš kaj ustreznega, tako po moči kot obliki in še vedno dosegljivi (ne zlatarski) ceni.

Avtor: igo PrispevekObjavljeno: Pet Nov 03, 2017 12:04 am    Naslov sporočila:  
----------------------------------------------------------------------------
Umakni tipko s TX. RX in TX pelji na čip MAX485 oziroma pusti prostor zanj. Pa na jumper in 120 ohm terminacijski upor ne pozabi.

SCL, SDA in še dva pina si rezerviraj za razširitev števila izhodov (74HC595) in vhodov (74HC165). Si šele na začetku in si že na tesnem s pini.

PWM ~ pine lahko koristneje uporabiš, zato LCD priklopi na manj pomembne pine.

Zelena barva ni na PWM pinu?

Zaenkrat imaš eno RGB ledico. Ko jih boš imel več, bo moral imeti vsak kanal svoj močnostni tranzistor MosFet ali Darlington z vsaj nekaj A tokovne zmogljivosti.
Tudi analognih vhodov ne troši po nepotrebnem.

Zakaj je pod TMP senzorjem en 1k upor med GND in LCD ter tisto desno škatlo in Npn tranzistorjem?

Uporabi dva napajalnika. Enega malega 5V/250mA za pamet, vhode, male izhode (baze tranzistorjev,...) in osvetlitev LCD, močnostni napajalnik boš pa kupil, ko boš seštel tokove vseh močnostnih komponent (črpalke, ventilatorji, luči, ...). Prednost ima 24 V oziroma najprej primerjaj cene 12 V in 24 V močnostnih komponent.
(-) sponki iz obeh napajalnikov združi v ozemljeni GND zbiralki in od tam potem vlečeš (-).

Ne delaj PWM anten. (+) do porabnika in (-) od porabnika vodi po kablu od zvočnikov, ki ga pri napeljevanju sukaš okrog vzdolžne osi. Tako bo nastala "parica", ki seva najmanj motenj v okolico.
Tudi za vhodne in izhodne signale naj bodo površine zank čim manjše. Spet je najboljša parica ali tanek kabel. Ena žila tja, povratna pa pol metra stran, je recept za glavobol.
Nasploh naj ima vsak (+) iz tiskanine čim bolj ob sebi svoj povratni (-) in obratno, da se ne tvorijo zanke velikim presekom.

Avtor: bferlicKraj: Brezula, Rače PrispevekObjavljeno: Pet Nov 03, 2017 9:50 am    Naslov sporočila:  
----------------------------------------------------------------------------
Zanimiv projekt Very Happy

Mogoče dobiš kakšno idejo pri teh, uporabljajo senzor za merjenje vlage v zemlji: https://farmbot.io/

LP Boštjan

Avtor: MatejKKraj: Maribor-Radvanje PrispevekObjavljeno: Pet Nov 03, 2017 10:12 am    Naslov sporočila:  
----------------------------------------------------------------------------
igo je napisal/a:
Umakni tipko s TX. RX in TX pelji na čip MAX485 oziroma pusti prostor zanj. Pa na jumper in 120 ohm terminacijski upor ne pozabi.

SCL, SDA in še dva pina si rezerviraj za razširitev števila izhodov (74HC595) in vhodov (74HC165). Si šele na začetku in si že na tesnem s pini.

PWM ~ pine lahko koristneje uporabiš, zato LCD priklopi na manj pomembne pine.

Zelena barva ni na PWM pinu?

Zaenkrat imaš eno RGB ledico. Ko jih boš imel več, bo moral imeti vsak kanal svoj močnostni tranzistor MosFet ali Darlington z vsaj nekaj A tokovne zmogljivosti.
Tudi analognih vhodov ne troši po nepotrebnem.

Zakaj je pod TMP senzorjem en 1k upor med GND in LCD ter tisto desno škatlo in Npn tranzistorjem?

Uporabi dva napajalnika. Enega malega 5V/250mA za pamet, vhode, male izhode (baze tranzistorjev,...) in osvetlitev LCD, močnostni napajalnik boš pa kupil, ko boš seštel tokove vseh močnostnih komponent (črpalke, ventilatorji, luči, ...). Prednost ima 24 V oziroma najprej primerjaj cene 12 V in 24 V močnostnih komponent.
(-) sponki iz obeh napajalnikov združi v ozemljeni GND zbiralki in od tam potem vlečeš (-).

Ne delaj PWM anten. (+) do porabnika in (-) od porabnika vodi po kablu od zvočnikov, ki ga pri napeljevanju sukaš okrog vzdolžne osi. Tako bo nastala "parica", ki seva najmanj motenj v okolico.
Tudi za vhodne in izhodne signale naj bodo površine zank čim manjše. Spet je najboljša parica ali tanek kabel. Ena žila tja, povratna pa pol metra stran, je recept za glavobol.
Nasploh naj ima vsak (+) iz tiskanine čim bolj ob sebi svoj povratni (-) in obratno, da se ne tvorijo zanke velikim presekom.


Hvala za vse koristne informacije. Vse skupaj je trenutno se v razvoju in je novo za mene to. Vecinoma sem delal bolj kot ne po navodilih iz spletnih vodnikov, se pravi step-by-step. Sicer mi [slovenščina je zame španska vas] brat pomaga, ki se malce spozna na elektroniko, je pa bol doma v kodah. Bi pa bilo lepo imeti nekoga z taksnim znanjem kot si ti v ekipi, ce ne druga, da ga vsaj malo povprasamo za nasvet. Danes se dobimo z ekipo(Brat, prijatelj in jaz) in bomo sli malo skozi shemo in nacrte. Imamo okoli ze 50 zbranih podobnih projektov iz katerih bomo izluščli najbolše.

Stran 1 od 2

Powered by phpBB © 2001,2002 phpBB Group