Zavlažovací systém

Tvoříte zajímavý projekt? Pochlubte se s ním.
Pravidla fóra
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
rejze69
Příspěvky: 174
Registrován: 02 dub 2018, 18:56
Reputation: 0

Re: Zavlažovací systém

Příspěvek od rejze69 » 19 srp 2018, 14:43

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.

Uživatelský avatar
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

Příspěvek od pavel1tu » 14 zář 2018, 17:53

rejze69 píše:
19 srp 2018, 08:24
A 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.
Souhlas, bezpečnost nade vše :-)
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"

rejze69
Příspěvky: 174
Registrován: 02 dub 2018, 18:56
Reputation: 0

Re: Zavlažovací systém

Příspěvek od rejze69 » 21 zář 2018, 23:32

Axamith píše:
18 srp 2018, 09:41
Nedával bych tomu ten opevně nastavený čas. Určitě ne tak dlouhý. Např. u mých trysek bych za 30 minut udělal ze zahrady rýžové pole :-D.
Čas bych odvodil z nastavení doby jednotlivých okruhů
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 :lol: )
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;
  }
@Axamith Dík za podnětné připomínky.

rejze69
Příspěvky: 174
Registrován: 02 dub 2018, 18:56
Reputation: 0

Re: Zavlažovací systém

Příspěvek od rejze69 » 26 bře 2019, 00:09

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.

rejze69
Příspěvky: 174
Registrován: 02 dub 2018, 18:56
Reputation: 0

Re: Zavlažovací systém

Příspěvek od rejze69 » 13 dub 2019, 11:37

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.

Uživatelský avatar
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

Příspěvek od pavel1tu » 13 dub 2019, 14:09

rejze69 píše:
26 bře 2019, 00:09
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.
Těžko říci, ale i toto lze doma otestovat.

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"

rejze69
Příspěvky: 174
Registrován: 02 dub 2018, 18:56
Reputation: 0

Re: Zavlažovací systém

Příspěvek od rejze69 » 13 dub 2019, 15:18

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.

rejze69
Příspěvky: 174
Registrován: 02 dub 2018, 18:56
Reputation: 0

Re: Zavlažovací systém

Příspěvek od rejze69 » 13 dub 2019, 15:30

Takhle to teď vypadá
Přílohy
Zatím testovací stav.
Zatím testovací stav.

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

Re: Zavlažovací systém

Příspěvek od gilhad » 13 dub 2019, 21:00

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.

rejze69
Příspěvky: 174
Registrován: 02 dub 2018, 18:56
Reputation: 0

Re: Zavlažovací systém

Příspěvek od rejze69 » 14 dub 2019, 07:03

Ahoj.
Diky moc za nazory a vysvětlení. Dám pulldown na výstupy arduina.

Odpovědět

Kdo je online

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