Propagátor na klíčení semen

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
dusanr
Příspěvky: 8
Registrován: 29 pro 2019, 13:43
Reputation: 0

Propagátor na klíčení semen

Příspěvek od dusanr » 31 pro 2019, 16:05

Ahoj,

pustil jsem se do stavby propagátoru na klíčení semen. Jde o krabici s řízeným vnitřním prostředím (teplota, vlhkost). Celkem mám 4 aktory - ventilátor pro větrání, když je moc vlhko, dále vytápění pro regulaci teploty, "mlhu" což je ultrazvukový vyvíječ mlhy pro zvýšení vlhkosti v propagátoru a pak zálivku (ale tu nemám zatím po hardware stránce dokončenou).

S hardware problém nebyl, ale narazil jsem u software. Vycházel jsem z kódu, kde se řešilo pouze spínání topného tělesa na základě teploty s možností hystereze. Vzal jsem tedy tu část kódu a dal ji třikrát pod sebe (pro ventilátor, mlhu a topení). Ale zřejmě to takto nejde, protože po nahrání programu se mi sepne rovnou větrák, topení a mlha i když by dle nastavených hodnot ventilátor vůbec neměl jet. A když čidlo zahřeju a mělo by vypnout topení, tak se nic neděje. Jsem začátečník, nikdy jsem neprogramoval a učím se metodou pokus omyl, ale s tímhle už se trápím týden a nemohu se pohnout z místa. Je tu někdo zkušený kdo mě posune dál? Moc díky a vše nej do nového roku.

Zde je kód :

const int mlha = 2;
boolean mlhaZapnuto = false;
const int vytapeni = 3;
boolean vytapeniZapnuto = false;
//const int zalivka = 4;//
//boolean zalivkaZapnuto = false;//
const int ventilator = 5;
boolean ventilatorZapnuto = false;
#include <Wire.h>
#include "DHT.h"
#define pinDHT 6
#define typDHT11 DHT11
DHT mojeDHT(pinDHT, typDHT11);

void setup() {
pinMode(ventilator, OUTPUT);
pinMode(mlha, OUTPUT);
pinMode(vytapeni, OUTPUT);
//pinMode(zalivka, OUTPUT);//
Serial.begin(9600);
mojeDHT.begin();

}

void loop() {
float tep = mojeDHT.readTemperature();
float vlh = mojeDHT.readHumidity();
// kontrola, jestli jsou načtené hodnoty čísla pomocí funkce isnan
if (isnan(tep) || isnan(vlh)) {
// při chybném čtení vypiš hlášku
Serial.println("Chyba při čtení z DHT senzoru!");
} else {
// pokud jsou hodnoty v pořádku,
// vypiš je po sériové lince
Serial.print("Teplota: ");
Serial.print(tep);
Serial.print(" stupnu Celsia, ");
Serial.print("vlhkost: ");
Serial.print(vlh);
Serial.println(" %");
}

if (((mojeDHT.readHumidity() ) > 80) && (ventilatorZapnuto))
{
(digitalWrite(ventilator, HIGH));
ventilatorZapnuto = true;
}
else if (((mojeDHT.readHumidity() ) < 75) && (!ventilatorZapnuto))
{
(digitalWrite(ventilator, LOW));
ventilatorZapnuto = false;
}


if (((mojeDHT.readHumidity() ) < 65) && (mlhaZapnuto))
{
(digitalWrite(mlha, HIGH));
mlhaZapnuto = true;
}
else if (((mojeDHT.readHumidity() ) > 70) && (!mlhaZapnuto))
{
(digitalWrite(mlha, LOW));
mlhaZapnuto = false;
}

if (((mojeDHT.readTemperature() ) < 26) && (vytapeniZapnuto))
{
(digitalWrite(vytapeni, HIGH));
vytapeniZapnuto = true;
}
else if (((mojeDHT.readTemperature() ) > 27) && (!vytapeniZapnuto))
{
(digitalWrite(vytapeni, LOW));
vytapeniZapnuto = false;
}


delay(1000);
}

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Propagátor na klíčení semen

Příspěvek od pavel1tu » 31 pro 2019, 20:18

Program vlož mezi znaky </> na tlačítku nahoče (code)
lépe se nám to pak kopíruje ....

Zajímají mne HW stránky, já ho již 2 roky vyvíjím též.
Já mám jen zálivku, větrání/topení a hlavně svícení - to ti tam chybí, po naklíčení ti rostlinky začnou hnát za světlem které chybí.

Zajímá mne - velikost propagátoru (já mám malý 20x60cm, jen na 50 sazeniček feferonek), co za čidla a topení máš.

Ke kodu:
třeba

Kód: Vybrat vše

if (((mojeDHT.readHumidity() ) > 80) && (ventilatorZapnuto))
{
(digitalWrite(ventilator, HIGH));
ventilatorZapnuto = true;
}
else if (((mojeDHT.readHumidity() ) < 75) && (!ventilatorZapnuto))
{
(digitalWrite(ventilator, LOW));
ventilatorZapnuto = false;
}
je blbost ....
"když je vlhkost nad 80% a zároveň je ventilátor zapnut, proveď zapnutí ventilátoru ?"
to samé za ELSE"
"když je vlhkost pod 75% a NENÍ ventilátor zapnut tak ho vypni ?"

Sestav si "seznam podmínek" (toto jsou zhruba moje):
1) topení ZAP - když je zima (já s topítkem zapínám i vnitřní ventilátorek)
2) topení VYP - když už je teplo
3) zalévání ZAP - když je půda suchá (já zapínám jen na danou dobu/množství vody, pak 4h nezalévám)
4) větrání ZAP - když je vlhkost nad 80% nebo teplota nad 30st.C
5) větrání VYP - když je vlhkst pod 80% a teplota pod 28stC
6) světlo ZAP v 8:00,VYP ve 20:00
Vlhkost pod nějakou hodnotu neřeším, světla generují teplo a tím vzniká dostatečná vlhkost.

Podle těchto podmínek POSTUPNĚ vytvářej a odlaďuj program, to znamená nejdříve bod 1, pak bod 2 ....

zdar
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

dusanr
Příspěvky: 8
Registrován: 29 pro 2019, 13:43
Reputation: 0

Re: Propagátor na klíčení semen

Příspěvek od dusanr » 01 led 2020, 10:52

Ahoj,

díky za radu, zkusím to. Co se týče hardware, tam jsem pořídil plastovou krabici s víkem viz https://www.mall.cz/ulozne-boxy/tontare ... entcervena ale s transparentním víkem. Jako misku pod květináčky (po přesazení do květináčů) používám podložku na boty z IKEA viz https://www.ikea.com/cz/cs/catalog/products/60329711/ , je to levnější než různé podložky z GROWshopů. Navíc je to přesně široké do mého regálu viz https://www.profiregaly.cz/profi-regaly ... qEQAvD_BwE, kde mám zářivky. Proto jsem vybíral box na propagátor, který má stejné rozměry jako ta podložka z IKEA. Ale nakonec jsem zvolil opačné řešení. Původně jsem chtěl pěstovat na podložce z ikea a úložný box použít pouze jako "víko", ale nakonec jsem to udělal tak, že používám box jako vanu a používám originální víko boxu.

Co se týče čidel, mám tam DHT11 a AM2320, bohužel jsem zjistil že AM2320 je nejspíš vadné, protože ukazuje poloviční hodnoty vlhkosti než dalších 5 čidel. Takže se zatím musím spokojit s DHT11. Ještě mám z krabice vyvedenou I2C sběrnici pro další čidla, ale letos pojedu pouze na DHT11.

Ad svícení - máš pravdu, ale já to řeším jinak. Na samotné klíčení není světlo (až na výjimky) potřeba. Proto spínám 2 LED pásky co mám v boxu ručně tlačítkem. Je to proto, že nevím jak naprogramovat, že jakmile vylezou první rostlinky, tak se má rozsvítit :D Tak to dělám ručně. Žena je doma na mateřské, tak kontroluje - to je celkem spolehlivý program :)

K topení - mám udělaných 12 rezistorů se ztrátovým výkonem 1W, do kterých pouštím střídavý proud. Ten generuji trafem co se dává do zářivek (mám od kanlux), který dělá 12V. Rezistory mám nalepený teplovodivou pastou na kus plechu co mi zbyl z oplechování střechy a celé zalepené hliníkovou páskou. Takto ta deska dokáže udělat 12Wtepelného výkonu. Dřív jsme měl propagátor 20x30, tak nebyl s výkonem problém. Teď už bude. Budu muset posílit. Zkusím použít řešení, které je na chilliforum celkem časté a to akvarijní topítko 100W, které bude v nádržce s vodou, kterou budu mít uvnitř boxu. Ta bude sloužit i pro vyvíjení mlhy.

Mlhovač mám vymyšlený z tohoto : https://www.aliexpress.com/item/3286219 ... b201603_53

Co mě však trápí je zálivka. Poslední dva roky pěstuji v JIFFY tabletách a měl jsem problém s tím, že byly buď přemokřené, nebo suché. Nevím jak je automaticky zalévat. Napadla mě ta mlha, když udělám dostatečnou vlhkost, tak třeba nebude potřeba rosit (ale spíše si myslím, že to stačit nebude). Pak mě napadla na dno například 2cm vrstva perlitu a do toho čerpadýlkem pouštět 2x za den vodu a jiffy si pak budou "sáknout" ne z hladiny vody, ale z vlhkého perlitu, který vodu ze dna vyvzlíná (opět nepodloženo, musím vyzkoušet). Poslední co mě napadlo je rozprašovací tryska co dělá např. gardena v systému závlah, ale pro tu je potřeba tlak 1bar, tzn. tlakové čerpadlo (a to je jiný hluk a jiné rozměry). Nebo to napojit na rozvod vody v domě (tam tlak je) a spínat to elektrickým ventilem přes Arduino. Ale tam se trochu bojím chyby a případného vyplavení..

Odpolko udělám nějaké foto a postnu...

dusanr
Příspěvky: 8
Registrován: 29 pro 2019, 13:43
Reputation: 0

Re: Propagátor na klíčení semen

Příspěvek od dusanr » 01 led 2020, 10:59

Jo a ještě k tomu kódu - já jsem myslel, že zapnuto vypnuto nejsou příkazy. Že je to pouze odkaz na const na začátku kódu a tam je implicitně nastaveno const ventilátorZapnuto=false,takže tím vlastně v IF říkám, že když je vlhkost nad 80% a platí že ventilatorZapnuto=false platí, tak zapni. Nebo to chápu špatně?

Díky moc.

ArduXPP
Příspěvky: 361
Registrován: 14 pro 2017, 19:31
Reputation: 0
Kontaktovat uživatele:

Re: Propagátor na klíčení semen

Příspěvek od ArduXPP » 01 led 2020, 13:28

Chápeš to správně, ale v příkazu IF to máš obráceně :)

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Propagátor na klíčení semen

Příspěvek od jankop » 01 led 2020, 14:10

Myslím, že nejjednodušší vyjádření tvé myšlenky, pokud jsem ji pochopil, by bylo:

Kód: Vybrat vše

// pokud je moc vlhko a je povolene vetrani, tak zapni ventilator
if (((mojeDHT.readHumidity() ) > 80) && (ventilatorZapnuto))digitalWrite(ventilator, HIGH);
// pokud je sucho, tak vypni vetrani 
if (((mojeDHT.readHumidity() ) < 75)digitalWrite(ventilator, LOW);
Někdo pěstuje majoránku, někdo papričky či jinou zeleninu, překvapivě je takových mičurinů docela dost. Pro ty mladší a nezkušené , Mičurin není nadávka :) . Já už se delší dobu chystám na bambusy. Svůj původní záměr řídit růstové podmínky arduinem jsem opustil, když jsem narazil na termostat s displejem a výstupním relé za cca 70-80 kč.
https://www.ebay.com/itm/W1218-Blue-The ... 2749.l2649
Objednal jsem si nějaké a vypadají docela dobře. Topení jsem chtěl řešit topným kabelem do půdy. Zjistil jsem, že se dají sehnat na eBay za velmi slušnou cenu v silikonovém nebo teflonovém provedení.
https://www.ebay.com/itm/20m-Minco-12K- ... 2749.l2649
Jednoznačně jsem preferoval kvůli bezpečnosti nízké napětí. Moje představa byla krátká smyčka topného kabelu v truhlíku s napájením cca 12V/10W. Tady jsem trochu narazil, protože objednaný kabel mi nedošel ani za čtvrt roku. Nejspíš to ale není chyba prodejce, ale naší skvělé pošty, se kterou jsou často problémy. Na osvětlení jsem pořídil "FullSpectrum" COB LED protože mám z vyřazené tiskárny výkonný spínaný zdroj 32V.
https://www.ebay.com/itm/1PCS-32V-50W-L ... SwsTdZcZdJ
Svítí to pěkně, ale masivní procesorový chladič s měděným jádrem bez ventilátoru to neuchladí ani náhodou.
Moje představa tedy byla pěstování bez regulace vzdušné vlhkosti, pouze s termostatováním půdy v truhlících. Z nějakejch tyček jsem chtěl udělat stan se záchranářskou lesklou termofólií. Zatím nemám nic, protože mi chybí ten termokabel. Teď jsem ale pro jistotu objednal v GES silikonovou bužírku a výkonové rezistory a jednoduchý krátký topný kabely si zatím udělám. Chci mít tři truhlíky a zatím budu mít termostat u každého. Je to vcelku přepych, protože v principu by měl stačit jeden termostat i na truhlíků několik.

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Propagátor na klíčení semen

Příspěvek od gilhad » 01 led 2020, 14:45

dusanr píše:
01 led 2020, 10:59
Jo a ještě k tomu kódu - já jsem myslel, že zapnuto vypnuto nejsou příkazy. Že je to pouze odkaz na const na začátku kódu a tam je implicitně nastaveno const ventilátorZapnuto=false,takže tím vlastně v IF říkám, že když je vlhkost nad 80% a platí že ventilatorZapnuto=false platí, tak zapni. Nebo to chápu špatně?

Díky moc.
ventilatorZapnuto neni prikaz, ani konstanta, ale promenna, ve ktere si to pamatuje, zda je ventilator zapnut ci nikoli. Takze kdyz je 80% a ventilator neni zapnuty, tak ho zapnes a zapamatujes si to, protoze zustane nadale zapnuty, dokud ho nevypnes (a nezapamatuje si, ze je vypnuty) a tudiz ho neni potreba zapinat porad dokola, kazdou sekundu, kdy to znova projde smyckou loop()

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Propagátor na klíčení semen

Příspěvek od jankop » 01 led 2020, 15:07

gilhad píše:
01 led 2020, 14:45
Takze kdyz je 80% a ventilator neni zapnuty, tak ho zapnes a zapamatujes si to, protoze zustane nadale zapnuty, dokud ho nevypnes (a nezapamatuje si, ze je vypnuty) a tudiz ho neni potreba zapinat porad dokola, kazdou sekundu, kdy to znova projde smyckou loop()
No a to je právě ten problém, protože to, co popisuješ, neodpovídá tomu, co ten program bude dělat. Jak je napsaný, tak nikdy ventilátor nezapne. Vzhledem k tomu, že používá delay(), tak je také kontraproduktivní komplikovat program nějakým vypouštěním sepnutí ventilátoru.

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Propagátor na klíčení semen

Příspěvek od kiRRow » 01 led 2020, 15:27

začátek loopu ... vyčtu hodnoty z čidel ... uložím do paměti ... OK

ale proč pak při každé podmínce vyčítám hodnoty z čidel znovu, když už je načtené a uložené mám ? ... vždyť je nutno vždy znovu změřit detektor a vypočíst znovu hodnotu a ta se uloží do nové dočasné proměnné ... zbafne to 2x tolik RAM a hromadu výpočetního výkonu navíc

nehledě na zlozvyk ukládat si čísla pinů do proměnných místo #define

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Propagátor na klíčení semen

Příspěvek od jankop » 01 led 2020, 15:39

kiRRow píše:
01 led 2020, 15:27
nehledě na zlozvyk ukládat si čísla pinů do proměnných místo #define
Ono je to možná trochu složitější, kdesi jsem viděl doporučení používat direktivu #define co nejméně. V principu ji lze nahradit konstantou a když bych chtěl hodně šetřit místem, tak bych to v tomto případě udělal takhle:

Kód: Vybrat vše

const uint8_t mlha = 2;
const uint8_t vytapeni = 3;
const uint8_t ventilator = 5;
const uint8_t zalivka = 4;

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů