Close

řízení ohřevu bazénu

Úvodní stránka Fórum Vaše projekty Arduino řízení ohřevu bazénu

  • Toto téma obsahuje celkem 10 odpovědí. Do diskuze (2 diskutující) se naposledy zapojil uživatel posjirka a poslední změna proběhla před 6 roky a 9 měsíci.
Aktuálně je na stránce zobrazeno 11 příspěvků - 1. až 11. (celkem z 11)
  • Autor
    Příspěvky
  • #11792
    macicek86
    Účastník

    Zdravím skušené,

    jsem začátečník v Arduinu, rád by jsem si z něj udělal ovládání filtrace a ohřevu pro bazén. budou zde dva čerpadlové okruhy 1 solarni ohřev 2 filtrace , teplotu se bude měřit v bazénu i na ohřevu a to z toho důvodu aby se bazén neochlazoval pokud nebude mít ohřev dostatečnou teplotu. Čerpadla by nikdy neměla jít najednou. Filtrace by se měla zapínat ve večerních hodinách, v případně vyšší teploty bazénu na delší dobu. Navrhl jsem program který si myslím měl fungovat ale jelikož nemám žádné zkušenosti byl bych rád kdyby jste mi poskytli nějaké rady či nápady jak program odladit. Nevím totiž jestli bude vůbec fungovat. Děkuji

    https://create.arduino.cc/editor/macicek86/f6f93a8f-3a7c-4209-906a-295eec67cb79/preview

    #11964
    posjirka
    Účastník

    a je něco co ti nefunguje?

    Když se dívám na program tak vpadá vcelku schopně. Jednoduchý, přehledný, bez zbytečných kudrlinek.

    Co tam vidím za prostor ke zlepšení:
    – nemáš vyřešeno nastavení RTC. Lze udělat auto nastavení po připojení k PC. Jinak po výměně baterie o ten čas přijdeš, nebo musíš měnit baterii za chodu.

    – 10 bit rozlišení na čidle DS18B20 j nesmysl. Jeho tolerance je 0,5 st.C tudíž nějáké průměrování není nic moc. Já tyhle čidla používám pro celé st.C = nepoužívám float ale int nebo lépe byte pro kladné hodnoty. zbytečně nezabíráš paměť procesoru.

    -pro nastavení zapniA, vypniA, … můžeš do podmínky dát i rovná se:
    if (datumCas.hour() => zapniB && datumCas.hour() =< vypniB) {
    lépe ta využiješ formát času. Teď to nepotřebuješ, ale kdyby si šel až do 23 hod, tak ti nepůjde podmínka vypni, protože další hodina je 00.

    – v popisech nepoužívej diakritiku. Stejně tyto znaky překlopí anglická sada znaků na „?“

    co víc napsat? Mě se tenhle sparťanský přístup líbí a pokud ti vše funguje jak má, nevidím v tom problém. Dobrá práce. Jestli budeš mít dobrou vůli, tak sem prosím dej i schéma případě nějákou fotku ať se ostatní můžou inspirovat …

    #12021
    macicek86
    Účastník

    Díky za podporu :).

    Funguje! Od tvého postu jsem program několikrát přepracoval, doplnil cidlo DHT.
    Po prvnim spusteni jsem se setkal s problémem : po zapnutí relé se arduino „kouslo“ zjistil sem že problém byl v napájení jelikož jsem projekt napájel přes usb vstup arduina a po sepnutí relé pravděpodobně nemělo dost proudu pro chod procesoru, tento problém byl vyřešen připojením napájení přímo na pin 5V. i přez to občas arduino vytuhlo a na displeji se zobrazily pouze obdelniky, myslel sem že tento problém vyřeší Watchdog, nicméně se zdá že na mém chinaduinu watchdog nepracuje správně a nedochází k restartu. Bohužel se mi nedaří naflashovat optiboot, vzdy skonci chybou „device signature 0xffffff“ přip. 0x000000 :(. nicmene ted pro zmenu bezi uz dva dny bez problemu.
    Nesehnal jsem na rychlo v našich končinách univerzélní DPS, takže projekt skončil jako „Vrabčí hnízdo“ je to nevzhledné ale funkční.
    Zvažoval sem implementovat jěstě webserver pro přśtup k informacím o teplotách prostřednictvím ESP8226, nicméně se mi zatím nepodařilo nalézt pro mne dostatečné podklady pro tuto aplikaci. mám k dispozici ESP8226 V7, vím že by tento modul zvládl obshluhovat celou aplikaci sám ale tomuto řešní by jsem se rád vyhnul.

    k funkci programu:

    V připadě že je teplota v bazénu (čidlo umístěno ve skimmeru) o něco menší než než teplota na panelu zapne se čerpadlo (kartušová filtrace – zvolena kuli tomu aby se nedostavali nečistoty do panelu) ohřevu.
    Toto čeprpadlo se vypne když teplota na panelu klesne pod určitou uroveň.

    kažďou hodinu vždy v půl se na pět minut rozběhne velka piskova filtrace, je to kuli tomu že kartušovka nesebrala napadane nečistoty z hladiny. čerpadlo ohřevu je blokováno během chodu piskove filtrace.

    piskova filtrace se pote taky spoušti v nastavenou dobu, v připadě použití „=“ bylo však nutné konec cyklu filtrace posunout o jednu hodinu, jinak by běžela o hodinu dele.

    Čerpadla jsou propojena pomocí T-kusů u skimmeru a u zpětné trysky přez zpětné klapky. Zpětné klapky jsou důležité jinak by jedna filtrace vytahovala vodu z druhé. Musel jsem však upravit zpětnou klapku kartušove filtrace ustřiženim kousku pružiny jelikož kartusovka nepremohla panel a ještě zpětnou klapku.
    Když jsem zpětnou klapku od kartušovky vyřadil, po zapnuti velke filtrace se panel skutečně ochlazoval obracene.

    Doufám že povidání dava smysl… :).
    Uvital bych jakoukoliv radu ohledne doplneni web serweru…
    Diky.

    #12022
    posjirka
    Účastník

    add optiboot: to vypadá na chybu programátoru. Předpokládám, že to flashuješ přes nějáký programátor a né přes USB samotného flashovaného arduina. TO by nešlo a musíš použít ISP programátor, nebo druhé arduino v této roli.

    add Watchdog: tady není moc věcí co by nemělo fungovat. Maximálně ten delay na konci o 3s. Když k tomu připočteš čas na načtení teplot z čidel (2×0,75 s) tak seš na 5s a do 8 je ještě daleko,… takže by to neměl být problém. To zatuhnutí ti může udělat i LCD display. nevěřil bych tomu, kdyby nám to na medometu takto nezatuhlo taky. 2 hodiny jsem si hráli s programem, vypnuli, za hodinu zapnuli a přesně jak píšeš. čtvrečky a procesor tuhý. Tak jsem zkoušeli změřit napětí, komunikace s PC nulová, napětí v pořádku 🙂 až jsem se dostal na krystal, tak s broukal na nějákých 5 kHz místo 16MHz, tak jsem jeje vymenili, po hodině zas zátuh, až jsem se nas.. vytáhnul LCd a začla znovu uživovoat. No a byl to LCD. Nevím jak ale n 2 arduinech jeden a na 3 ne. Prstě zátuh. Nikde kapka cinu, žádný zkrat, napěťové úrovně signálu v pohodě a za 2 hod. zátuh. Dali jsem nový LCD a už to šlape.

    ad Webserver: záleží co od něj čekáš. chceš webserver pro vlastní potřebu uvnitř domu, nebo to chceš monitorovat případě ovládat z venku (práce, druhý konec světa, .. 🙂 )
    Pokud jen doma je to v pohodě. Taky jsem tento víkend nad tím ztrávil pár hodin, rozchodil jsem ESP8266 v01. celkem mi pomohlo toto:
    https://www.arduinotech.cz/inpage/jak-na-iot-dil-ii-web-na-javascriptu-s-esp8266/

    pak jsem to zkoušel dát na thingspeak pomocí tohoto návodu:
    http://navody.arduino-shop.cz/navody-k-produktum/esp8266-a-thingspeak.html

    aktivoval jsem 1 kanál, nahrál data, pak jsem to chtěl poupravit a nepájivé pole mi při manipulaci opustil drát GND a po zapojení jsem si odpálil ESP- Tak jsem objednal NODEMCU a uvidíme.

    #12029
    macicek86
    Účastník

    Samozrejmne sem skousel flashovat prez druhe arduino (mega 2560) a nic vždy chyba…
    Ale pokoušel sem se program předělat na ESP8266 zatim vypada asi takhle:

    https://create.arduino.cc/editor/macicek86/c424792b-7adf-4bd7-8d40-9042406e254f/preview

    nevím jestli je to použitelné, samo se ještě musí upravit čísla pinu pro esp a prislusny js a html.

    Nevím proč je použit „timer“ na místo delay() po pravdě moc nechápu jak tato funkce funguje…

    #12074
    posjirka
    Účastník

    tne timer není ve funkci dela. je to postavené tak, aby progrma běžel pořád dokola. Až přesáhne uečitý čas, tak spustí funkci blikání a pokračuje zas dál …. jen se mi nezdá to řešení.

    #12078
    macicek86
    Účastník

    jj, to už sem pochopil… ale ted řešim problém: kyž do esp nahraju původní program (který na arduinu fungoval) nespustí se vůbec display, když nahraju exampl pro i2C display jde bez problému, zdá se jako by esp „zamrzlo“ s mým programem ale nemůžu přijít na to proč…

    #12080
    posjirka
    Účastník

    v ESP8266 nejsem moc kovaný, takže to ti asi neporadím. jen takový dotaz:
    používáš převodník nap. úrovní? jak LCD, tak PCF8570 používá napájení 5V a ESP8266 jede na 3,3V….

    #12081
    posjirka
    Účastník

    máš tam definované nak terých pinech máš nastavené I2C (SDA, SCL) ?
    ESP8266 jej může mít na jakémkoliv pinu. Tady jsem našel jednoduchý skener, který to analyzuje:
    http://www.instructables.com/id/ESP8266-I2C-PORT-and-Address-Scanner/

    #12096
    macicek86
    Účastník

    Vyřešeno,
    po downgrade knihovny liquidCristal_i2c na ver. 1.1.1 naskočil. Zařizení mám rozběhnuté a funkční vč web serveru a manualniho ovládání jednotlivých cerpadel. Problém je jen při nahrávání programu – spojení je nestabilní, upload přes převodník proběhne jen v 50%, na SPI flash paměť v 10% pokusů. nevím co dělám špatně možná je chyba v usb převodníku. Nakonec jsem použil na misto EPS8266 V7 esp8266 V12, má totiž větší spi paměť a funguje na tom OTA update tzn. poprvé jsem nahrál přez převodník OTA example skatch a přez OTA potom svúj program do kterého jsem implementoval OTA podporu :).
    Nevím jestli mám program zveřejňovat celý – stálo mě to hodně úporné práce nicméně rád poskytnu jakoukoliv radu. v přípaďě zájmu i celý kód. To: posjirka – Děkuji za konzultace zdá se že nikdo jiný by neporadil.

    #12097
    posjirka
    Účastník

    nemáš zač, jsem rád že jsem pomohl. S tím nahráváním: je třeba se podívat i na napě´tovné úrovně převodníku. může se to lišit. NEvím jestli jde snížit komunikační rychlost ale zkusil bych 9600 baudů. Mohlo by to pomoct. návod yjsou spíš pro AT komunikaci, kde se nastavuje komunikační rychlost pro programování …. nevím

    Setup wifi EPS8266 & Arduino Uno3

Aktuálně je na stránce zobrazeno 11 příspěvků - 1. až 11. (celkem z 11)
  • Pro reakci na toto téma se musíte přihlásit.