Zavlažovací systém
Pravidla fóra
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
Re: Zavlažovací systém
Já už několik let mám domů ip stejnou, takže mám ke službám přístup i z venku. Pokud by se to zmenilo, tak dyDns a VPN.
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Zavlažovací systém
Souhlas, bezpečnost nade všerejze69 píše: ↑19 srp 2018, 08:24A ten řídící webserver je s tím arduinem v interní síti? Bál bych se mít ho vzdálený. Mám nějaké(zatím velmi hrubé plány),ale spíš zkusím cestu decentralizovaných jednotek (asi nějakých Node Mcu), které budou samy rozhodovat o své části řízení domu a z webového rozhraní budou dostávat jen parametry. Webserver bude doma. Chci použít nějakou nízkospotřebovou desku s minimálně dvěmi síťovkami (routerboard,nějaké Pi apod.) na který půjde nainstalovat debian like systém. To by mělo zajistit gateway, routování a pár služeb, které mi doma běží, plus právě webové rozhraní pro ovládání těch jednotek.
Já jedu na NAS, ven kopíruji jen data na monitoring, teď jsem doma nasadil Mikrotiky a testuji VPN.
Zatím jedu WEB na starém NAS, plánuji nový NAS, ale spíše něco jako RBpi , spíše ale nějakou čínu co už má i SATA.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Zavlažovací systém
Toto jsem přehodnotil a doba se bere z nastavení v EEPROM. Navíc jsem upravil nastavování doby zálivky tak,aby se do 20ti minut nastavoval čas po minutě a přes 20min po deseti minutách. (nastavovat celých 240min po minutě je opruz a přes dvacet už na nějaké minutě nesejde )
Upravený kód Ui/nastavení spínacích okruhů:
Kód: Vybrat vše
//-----------------------------------------------------------------
//----------Nastaveni spinacich okruhu
//-----------------------------------------------------------------
void circuitSet() {
//-----nacteni promennych pro nastaveni okruhu
int q=1;
int h[3]= {EEPROM.read(21),EEPROM.read(22),EEPROM.read(23)};
int mi[3]= {EEPROM.read(31),EEPROM.read(32),EEPROM.read(33)};
int d[3]= {EEPROM.read(41),EEPROM.read(42),EEPROM.read(43)};
int dz[3]={EEPROM.read(51),EEPROM.read(52),EEPROM.read(53)};
char nastaveni [22]; //promenna pro display
switch(Set) { // (Set) prepinani polozek nastaveni, (mod) prepinani naetavovanych okruhu
case 1: //nastaveni hodin
LCD.setCursor(1,2);
h[mod-1]=(EEPROM.read(20+mod)+krok); // inkrementace nastavene hodnoty
if(h[mod-1] < 0) { // omezeni nastavovanych hodnot
h[mod-1]=0;
krok++;
}
if(h[mod-1] > 23) {
h[mod-1]=23;
krok--;
}
if(EnterFlag==true) { // po stisku enter
EEPROM.update((20+mod), h[mod-1]); // uloz nastavenou hodnotu
Set++; // prejdi na dalsi polozku
krok=0;
}
// }
break;
case 2: //nastaveni minut
LCD.setCursor(4,2);
mi[mod-1]=(EEPROM.read(30+mod)+krok);
if(mi[mod-1] < 0) {
mi[mod-1]=0;
krok++;
}
if(mi[mod-1] > 59) {
mi[mod-1]=59;
krok--;
}
if(EnterFlag==true) {
EEPROM.update((30+mod), mi[mod-1]);
Set++;
krok=0;
}
break;
case 3: //nastaveni dnu frekvence zalivky
LCD.setCursor(12,2);
d[mod-1]=(EEPROM.read(40+mod)+krok);
if(d[mod-1] < 0) {
d[mod-1]=0;
krok++;
}
if(d[mod-1] > 7) {
d[mod-1]=7;
krok--;
}
if(EnterFlag==true) {
if(mod==1 && OdlFlag==true) {
Stop24();
}
EEPROM.update((40+mod), d[mod-1]);
o[mod]=d[mod-1];
Set++;
krok=0;
}
// }
break;
case 4: //nastaveni doby zalivky
LCD.setCursor(15,2);
if(krok==0) { // kdyz krok=0
dz[mod-1]=(EEPROM.read(50+mod)); //nacti ulozenou dobu zalivky do promenne
}
if(dz[mod-1]<20){ //kdyz je nastavena doba <20
q=1; //koeficient kroku = 1
dz[mod-1]=(EEPROM.read(50+mod)+(krok*q)); //inkrementuj promennou po 1
}
if(dz[mod-1]>20) { //kdyz je nastavena doba >20
q=10; //koeficient kroku = 10
dz[mod-1]=(EEPROM.read(50+mod)+(krok*q)); //inkrementuj promennou po 10
}
//---------Osetreni kdyz je doba = 20 ---------------------------
if(EEPROM.read(50+mod)==20&&krok>0){ //kdyz se pricte nahoru
q=10; //koef = 10
dz[mod-1]=(EEPROM.read(50+mod)+(krok*q)); //inkrementuj na 30
}
if(EEPROM.read(50+mod)==20&&krok<0){ //kdyz se odecte dolu
q=1; //koef=1
dz[mod-1]=(EEPROM.read(50+mod)+(krok*q)); //Dekrementuj na 19
}
if(dz[mod-1]==20){ //kdyz je nastavovana doba = 20
EEPROM.update((50+mod), dz[mod-1]); //uloz do EEPROM
m[mod]=dz[mod-1]; //zapis hodnotu do casovace
krok=0; //vynuluj krok
}
if(dz[mod-1] < 1) { //osetreni nejnizsi hodnoty
dz[mod-1]=1;
krok++;
}
if(dz[mod-1] > 240) { //osetreni nejvyssi hodnoty
dz[mod-1]=240;
krok--;
}
if(EnterFlag==true) { //po stisku tlacitka ok
EEPROM.update((50+mod), dz[mod-1]); // uloz nastavenou dobu
m[mod]=dz[mod-1]; //zapis do casovace
krok=0; //vynuluj krok
if(mod==1) { //nastavoval se okr1
mod=2; //skoc do nastaveni okr2
Set=1; //na prvni polozku
}
else if(mod==2) { //Nastavoval se okr2
mod=3; //skoc na okr3
Set=1; //prvni polozku
}
else if(mod==3 && Set==4) { //po posledni polozce okr3
mod++; //vyskoc z rezimu nastaveni
Set=1; //priprav prvni polozku pro pristi nastaveni
}
}
break;
}
Re: Zavlažovací systém
Zdravím lidi,
Jaro je tady a tak je nutné vrátit se k dílu a dokončit co jsem začal. Řeším nyní sensory a chybovou logiku. Pro snímání hladiny budu používat jak jsem psal výš indukční čidlo. Bude od arduina na cca. 15m kabelu. Mám tedy dotaz, jestli to bude uspokojivě fungovat na 5V, nebo mám použít vyšší napětí(čidlo ja do 24V) a dělič napětí a zenerovu diodu pro úpravu na 5V?
Díky za názory, případně bezpečné řešení děliče.
Jaro je tady a tak je nutné vrátit se k dílu a dokončit co jsem začal. Řeším nyní sensory a chybovou logiku. Pro snímání hladiny budu používat jak jsem psal výš indukční čidlo. Bude od arduina na cca. 15m kabelu. Mám tedy dotaz, jestli to bude uspokojivě fungovat na 5V, nebo mám použít vyšší napětí(čidlo ja do 24V) a dělič napětí a zenerovu diodu pro úpravu na 5V?
Díky za názory, případně bezpečné řešení děliče.
Re: Zavlažovací systém
Ahoj.
Mam jeste jeden dotaz. Narazil jsem na problém s relátky. Po zapnuti napajeni, nez se arduino spusti, je z nich bzučák. To neni dobry ani pro rele, natož pro pŕipojená zařízení. Máte prosím někdo tip na zpožďovací obvod s Mosfet, který připojí napájení desky s relátky se zpožděním?
Díky předem.
Mam jeste jeden dotaz. Narazil jsem na problém s relátky. Po zapnuti napajeni, nez se arduino spusti, je z nich bzučák. To neni dobry ani pro rele, natož pro pŕipojená zařízení. Máte prosím někdo tip na zpožďovací obvod s Mosfet, který připojí napájení desky s relátky se zpožděním?
Díky předem.
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Zavlažovací systém
Těžko říci, ale i toto lze doma otestovat.rejze69 píše: ↑26 bře 2019, 00:09Zdravím lidi,
Jaro je tady a tak je nutné vrátit se k dílu a dokončit co jsem začal. Řeším nyní sensory a chybovou logiku. Pro snímání hladiny budu používat jak jsem psal výš indukční čidlo. Bude od arduina na cca. 15m kabelu. Mám tedy dotaz, jestli to bude uspokojivě fungovat na 5V, nebo mám použít vyšší napětí(čidlo ja do 24V) a dělič napětí a zenerovu diodu pro úpravu na 5V?
Díky za názory, případně bezpečné řešení děliče.
Já u alarmu, kde jsou čidla dál přešel na 12V (stejně vše napájím 12V + DCDC měniče) a odděluji to od arduina optočleny (omylem jsem jich koupil 1000 - ano, já myslel že je jich 100).
K relátkům, nejsou to ty s obrácenou logikou ? 0= ZAP relé, 1=VYP relé - ty rozdávám, nebo je předělávám na klasiku.
Nevím proč by na Arduinu měl být na výstupu nějaký "brum" - vyzkoušej ten výstup trochu přizemnit odporem ....
Jinak napiš mi o tom zalévání více na PM, nebo chystáš to nějak zveřejnit, mne loni zkolabovaly ty ventily z číny, tak se mi do toho letos nechce.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Zavlažovací systém
Ahoj.
Díky.
Ano jsou to právě tyhle relátka. Dal jsem tam invertor 74HC04. Nejdřív jsem si myslel, že je to tim, ale dělá to i po stisku resetovacího tlačítka, takže soudim, že než naběhne program a nastaví se to jako output, tak je to v neurčitym stavu. Proto jsem chěl zpozdit napájeni tý desky. Možná budou opravdu stačit pullup rezistory. Kolik tam dát? 3k3?
Jinak to zalévání zveřejním, ale musím ještě pár věcí dopsat. Error logiku mám funkční,takže čidlo deště a vlhkosti a potřebnou logiku zpracování těch hodnot. Doufám, že se to vejde. Jsem na 70% paměti programu. Budu potom rád za připomínky k optimalizaci kódu.
Díky.
Ano jsou to právě tyhle relátka. Dal jsem tam invertor 74HC04. Nejdřív jsem si myslel, že je to tim, ale dělá to i po stisku resetovacího tlačítka, takže soudim, že než naběhne program a nastaví se to jako output, tak je to v neurčitym stavu. Proto jsem chěl zpozdit napájeni tý desky. Možná budou opravdu stačit pullup rezistory. Kolik tam dát? 3k3?
Jinak to zalévání zveřejním, ale musím ještě pár věcí dopsat. Error logiku mám funkční,takže čidlo deště a vlhkosti a potřebnou logiku zpracování těch hodnot. Doufám, že se to vejde. Jsem na 70% paměti programu. Budu potom rád za připomínky k optimalizaci kódu.
Re: Zavlažovací systém
Po zapnuti/resetu jsou arduino I/O piny nastaveny jako vstup (INPUT) a tedy pouze vysoky odpor (takze se to chova jako odpojene). Je to proto, ze to je asi tak nejrozumnejsi bezpecny stav, nez to program nastavi podle potreby. Takze pokud to potrebujes mit nekam pritazene hned, tak externimi pullupy/pulldowny, pripadne dat na ten pin predradny odpor a zkratovat to navic na zem/napajeni mrnavym kondikem, aby to pritazeni hned po zapnuti bylo jeste duraznejsi a min to reagovalo na indukovany sum. Zase ten kondik nesmi byt moc velky, aby to ten pin utahnul v pricetnem case.
Re: Zavlažovací systém
Ahoj.
Diky moc za nazory a vysvětlení. Dám pulldown na výstupy arduina.
Diky moc za nazory a vysvětlení. Dám pulldown na výstupy arduina.
Kdo je online
Uživatelé prohlížející si toto fórum: Bing [Bot] a 1 host