Automatizace pro pivovar BeerDuino založená na arduino mega. Automatizované systémy založené na mikrokontroléru Arduino

Proč jsem potřeboval automatizaci?

Pro usnadnění procesu je zapotřebí automatizace, protože... tento regulátor sám bude sledovat teplotu, udržovat ji a zvyšovat ji na požadovanou teplotní pauzu. K indikaci potřebného zásahu můžete použít i zvukový signál, například je potřeba přidat slad nebo udělat jódový test.

Rozhodl jsem se udělat vlastní automatizaci z hotového projektu. Běží na arduinu, je k němu připojen teplotní senzor, dvě relé, displej a tlačítka. První relé ovládá topné těleso, druhé relé ovládá čerpadlo. Rmutovací čerpadlo je velmi pohodlné, protože... není potřeba rmut míchat během celého procesu rmutování (doporučuji si přečíst ty předchozí, kde najdete další podrobnosti o vaření piva)

První automatizaci jsem sestavil pomocí modulů:

- Arduino mini
- Blok dvou 15A relé
- Displej 2004
- Teplotní senzor
- 4 tlačítka
- 5V napájecí zdroj
Výhodou modulární montáže je, že není těžké sehnat všechny díly a prakticky není potřeba nic pájet. Největší nevýhodou je ale obrovské množství vodičů a levné čínské relé vytvářelo rušení na displeji, takže bylo nutné vyměnit mechanické relé za polovodičové.

Postupem času jsem došel k závěru, že potřebuji postavit svoji automatizaci na čipu s 64kb paměti (Arduino mini má jen 32kb) na jedné desce. Nenašel jsem hotové řešení, tak jsem začal sám vytvářet obvod a následně desku pro své řemeslo.

Systém:

Diagram jsem vyvinul a nakreslil takříkajíc na koleně a pro sebe, takže jsou možné určité nedostatky, ale diagram je zcela funkční:

Platit:

Obvod jsem nakreslil, pak zbývá nakreslit desku, nejprve jsem ji nakreslil pomocí programu Rozložení sprintu 6, velmi pohodlné, ale nemá dostatek funkcí, takže jsem se rozhodl odejít od něj směrem k programu DipTrace a tohle jsem dostal:

Zdroje si můžete stáhnout.
Jak vidíte, pojmenoval jsem svůj pivovar QRBeer a toto je již verze 0.5...

Deska je hotová, zbývá ji jen nějak vyrobit. K tomu jsem se rozhodl použít. Proč oni a ne LUT? Právě jsem se rozhodl vyzkoušet tuto novou technologii pro sebe, už jsem vyzkoušel LUT, cítil jsem to, abych tak řekl, nebudu říkat, že se mi to líbilo...

Fotorezist:

K výrobě desek plošných spojů pomocí fotorezistu budete potřebovat:
- Film do tiskárny
-
- UV lampa
- Soda

UV lampa

Nejprve se podělím o informace o tom, jak jsem to udělal UV lampa. Nejprve jsem chtěl použít hotovou lampu a pak jsem se rozhodl ji sestavit pomocí šesti 3W LED:
a také zakoupené na Tao:


LED jsem přilepil na chladič, i když mohly být osazeny na PCB, pochybuji, že by se přehřívaly.
Zde je to, co jsem dostal:


Výroba desek

1. Tak mám připravenou šablonu, zbývá už jen vytisknout na film. Jak jsem psal výše, potřebuji fólii do tiskárny, fólii jsem zkoušel jak pro laserovou tiskárnu, tak pro inkoustovou tiskárnu, nejlepší varianta se získá pouze s fólií pro inkoustový tisk. Potřebujete tisknout negativně a zrcadlově:

Šablonu jsem ihned zalaminoval, aby se daly snadno smýt otisky prstů a nečistoty.
2. Dále musíme obrousit naši budoucí desku (sklolaminát). K tomu je vhodná mírně navlhčená běžná houba nebo melaminová houba:


3. Po tomto postupu je třeba měď ještě odmastit acetonem:


Jak můžete vidět na mé fotce, odmastil jsem to běžným ubrouskem a aceton jsem nalil do lahvičky s peroxidem, takže je pohodlnější vzít ...
4. Dalším krokem je mírně oříznout fotorezist, aby se vešel na vaši budoucí desku a opatrně odstranit horní ochrannou fólii, aby nedošlo k jejímu poškození. Pokud je fotorezist domácí, musíte odloupnout matnou stranu, pokud je čínská, pak není žádný rozdíl...
5. Dále fotorezist nalepíme na DPS tak, aby se pod fotorezistem neobjevily vzduchové bubliny, jinak se stopy na takových místech neobjeví, přebytky odřízněte...
Proces lepení fotorezistu je podobný jako lepení ochranné fólie na telefon.


6. Když je fotorezist nalepený, textolit s ním musí projít 2-3x laminátorem nebo použít teplou žehličku a přežehlit přes list papíru složený napůl:


Hlavní věcí je nepřehřát fotorezist, jinak to dopadne takto:


Pokud se vám při lepení fotorezistu udělá “zásek”, tak je lepší ho odstranit (smýt nebo seškrábnout) a znovu nalepit, jinak po naleptání bude deska smutná... nesundám tento fotorezist, ukážu vám konečný výsledek.
7. Na DPS s fotorezistem položte šablonu a přitlačte ji sklem (vzal jsem ji ze starého fotorámečku) a na sklo položte závaží:


8. Fotorezist osvětlíme pomocí UV lampy. Lampa mi vydrží asi 2 minuty:


Jak můžete vidět, exponovaný fotorezist změnil barvu ze světle modré na tmavě modrou a exponovaný fotorezist je velmi křehký.
9. Odstraňte sklenici a šablonu. Přebytečný fotorezist lze (volitelně) oříznout a opatrně oddělit pinzetou:


10. Dalším krokem je smytí nevyvinutého fotorezistu alkálií, vezměte 2 sklenice vody a lžíci uhličitanu sodného, ​​dobře promíchejte. Odloupněte vrchní ochranný film fotorezistu a ponořte náš textolit do alkalického roztoku.


11. Vezměte štětec a vetřete tři kousky fotorezistu do alkálie, postupně se nevyvinutý fotorezist smyje:


Alkálii nemůžete vylít, ale nechat na další desce nebo smýt fotorezist po leptání, ale o tom později...
12. Leptání desky:
Nejdostupnější jsou dvě metody: leptání chloridem železitým nebo peroxidem + kyselina citrónová a sůl. Nebudu psát o chloridu železitém, ale pravděpodobně to popíšu pomocí peroxidu:
- 100 ml. peroxid vodíku 3% - prodává se v lékárně za 7-12 rublů
- 30 gr. kyselina citronová (k dostání v každém obchodě s potravinami)
- 1 polévková lžíce. lžíce soli (stačí jemná i kamenná sůl)


To vše se smíchá v nádobě a deska s hotovým fotorezistem se tam ponoří, po chvíli se na desce objeví bublinky:


A po nějaké době bude „holá měď“ zcela vyleptána:


Mimochodem, pokud leptáte při vyšší teplotě, třeba žárovkou nebo ve vodní lázni, tak se leptání zmenší o tři, hlavní je to nepřehánět, jinak přebytek naleptá...
13. Nejpohodlnější způsob odstranění fotorezistu je ve stejné alkálii, ve které se smyl nenaleptaný fotorezist po 20 minutách sám odpadne a není třeba nic třít...

A tady jsou moje "zárubně":


Sice ne výrazná, ale stejně za všechno může neopatrnost, nevšiml si vzduchových bublin pod fotorezistem ani přehřátí...

Mám následující desku „čistou“:


14. Dále vyvrtejte otvory a pocínujte desku:


15. Připájejte všechny díly a smyjte přebytečné tavidlo:


SMD součástky jsem pájel čínskou infračervenou pájecí stanicí, velmi pohodlné:

To je vše, to nejtěžší je za námi, zbývá jen otestovat dráhy na zkrat a začít programovat čip.

Programování atmega644

1. Chcete-li začít s programováním, musíte do něj nahrát bootloader. To není těžké udělat pomocí Arduino UNO, ale nejprve si musíte stáhnout a nainstalovat program.
2. Dalším krokem je přidání nebo okamžité převzetí hotové sestavy do nainstalovaného programu:
3. Nahrajte skicu ArduinoISP do UNO:

4. A připojte naši desku k UNO:


Podle návodu na náčrt:
// název pinu // reset slave: 10: // MOSI: 11: // MISO: 12: // SCK: 13:
Dopadá to podle mého schématu takto:

5. Dále nainstalujte naši desku do nastavení a načtěte bootloader:




Pokud vše proběhlo v pořádku, zobrazí se zpráva: „Bootloader recording complete“
V tomto okamžiku je načítání bootloaderu dokončeno, můžete připojit displej, tlačítka, teplotní senzor a vyplnit. Přátelé, domácí sládek potřebuje pomoc Od touhy vyrobit chytrý teploměr a vyvstala nová touha - postavit automatizovaný domácí pivovar Chcete-li jej zautomatizovat, potřebujete blokové řízení Bylo rozhodnuto opustit používání zakoupených PID regulátorů pro ovládání topného tělesa, protože je zde Arduino, relé SSR, a. 4 x 20 řádkový displej a sériová deska pro přenos informací po jednom vodiči, nepočítaje uzemnění a napájení.
Můj řadič Arduino, používám projekt Australana Roba, projekt je určen pro Arduino Duemilanove ATmega328 - www.arduino.cc/cgi-bin/yabb2/YaBB.pl
a přímo samotný projekt -
Můj pivovar bude fungovat na trochu jiném principu, ne jako Robův, spoléhám na Spidel Braumeister, jak to funguje je jasné z těchto videí: http://www.youtube.com/watch?v=x-OBE4tJ-j8&feature= stránka s profilem hráče
Ale bohužel nejsem programátor, umím pájet a dělat to podle návodu. Nyní, kdybyste mohli předělat Robův program, získali byste ideální ovládací zařízení. Sestavil jsem ovladač a otestoval ho, ale z nějakého důvodu nejsou teplotní senzory DS rozpoznány. V tomto projektu je pro mě spousta zbytečných věcí, protože... Nechci budovat systém HERMS jako autor, takže můžete z programu odstranit všechny nepotřebné. Všechny akční členy jsou ovládány polovodičovými relé. Mám 2 kusy, na topné těleso a čerpadlo. Používám topné těleso zakoupené na Amazonu, nízká hustota 4,5 kW. Nic se na ní nelepí a můžete ji zapnout i ve vzduchu a nepřipálí se. Zajímavé je, že displej je připojen přes sériovou desku, sestavil jsem ho ze sady zakoupené na eBay. Používají se pouze 3 dráty, čímž se uvolňují porty Arduino. Co je potřeba: PID regulace topného tělesa pro přesnost a pohodlí, existuje hotová knihovna pro Arduino, široce používaná v projektu www.brewtroller.com/wiki/doku.php, odtud si také můžete vypůjčit mnoho nápadů , ale projekt je přetížený funkcemi a je přizpůsoben i pro americké HERMS a RIMS. Program by měl mít 3 provozní režimy: CIP mytí (ohřev vody do 70g (lze změnit v nastavení) a současný provoz čerpadla), režim AUTO (když jsou zpracovány všechny kroky stanovené v režimu programování, můžete pauza a násilný přechod na další krok ), režim MANUAL (V ručním režimu jednoduše ovládáme zapínání/vypínání topného tělesa, čerpadla a výstupu AUX, je indikována teplota.), AUTO programování (režim Auto - ohřev vody 70g, pauza (pro plnění, nastavitelná), nastavení teplotních pauz (musí být 4 pauzy, aby s rezervou, kyselina, bílkovina, cukernatost), se současným chodem pumpy, pauza vymršťování - nastavitelná se současným provozem pumpy, jen pumpa , tzv. vířivý režim, kdy se mladina víří v proudu a veškerý zákal se usadí ve středu a čerpání za současného provozu AUX a druhého teplotního čidla, bude připojen akvarijní kompresor s průtokovým provzdušňovačem. mladina proudí přes průtokový chladič-chladič.
Ve skutečnosti to není velký úkol, ale jsem humanista a programování prostě není snadné.

V tuto chvíli vypadá ovladač takto:

Na oplátku slibuji, že se stanu osobním rádcem a učitelem v pivovarnictví pro každého, kdo má zájem! :)

UDP! Téma na Habré!

Automatizace v moderní společnosti je nezbytným opatřením, protože v digitální době je nesmírně důležité eliminovat lidský faktor v různých odvětvích za účelem standardizace a zlepšení kvality produktů. Existují také oblasti, kde lidé prostě nemohou dělat to, co jsou schopni roboti, například výroba nanomateriálů a mikroobvodů.

Automatizace však nepomáhá jen ve výrobě, ale může se hodit i běžnému člověku. Například automatizace pro pivovar využívající Arduino může výrazně zjednodušit proces výroby produktu. Pojďme zjistit, jak může pomoci automatizace pro nápravu na Arduinu a další věci, a podívejme se na příklady.

Hlavní výhody automatizovaných systémů založených na mikrokontroléru Arduino

Nikdo vám nezakazuje pájet si vlastní desku a programovat si ji sami pomocí nízkoúrovňových jazyků. Automatizace pomocí Arduina a hotových mikrokontrolérů však značně usnadní celý proces a ušetří čas. Je totiž mnohem jednodušší koupit si hotový produkt se sadou knihoven a přizpůsobit si ho svým potřebám. A cenově dostupná automatizace na Arduino mega 2560 může být užitečná v mnoha oblastech života, od hlasových spínačů pro chytrou domácnost až po elektrické západky s detektorem pohybu. Hlavní výhody, kterými je automatizace Arduino známá, jsou:

  1. Nízká bariéra vstupu. Není potřeba získat inženýrské vzdělání, stačí se podívat na pár výukových videí a mít základy programování.
  2. Velké množství již připravených knihoven. Arduino používá v celém SNS mnoho nadšenců do robotiky až do té míry, že se výroba různé elektroniky stává jejich koníčkem. V souladu s tím je komunita uživatelů online extrémně aktivní, zveřejňuje velké množství prázdných míst a je připravena vám pomoci vyřešit jakékoli problémy. Kvalita knihoven trpí nízkým vstupním prahem, ale nikdo vám nezakazuje vytvářet si vlastní, stačí nastudovat sémantiku jazyka C++ nebo použít hotové překladače.
  3. Velké množství periferií. Nezáleží na tom, zda potřebujete automatizaci skleníků na bázi Arduina nebo světelný senzor, najdete zde libovolné moduly, včetně zvukových senzorů a rozpoznávačů hlasu. Ano, některé desky stojí hodně peněz, ale vždy najdete levné analogy, například esp8269 wi-fi modul od výrobců třetích stran, který stojí 10krát méně než oficiální.
  4. Mnoho informací. Jakýkoli problém, kterému čelíte, již řešil někdo jiný a pravděpodobně najdete řešení na Googlu. K dispozici je také kompletní literatura, do které můžete nahlédnout.

Nemyslete si však, že Arduino nemá žádné chyby. Deska je pověstná svým nízkým výkonem. Ve zvláště složitých úlohách a s velkým množstvím kódu může doba odezvy dosáhnout 1 sekundy, což je pro mikrokontroléry nepřijatelné. Flash paměť většiny modulů nepřesahuje 1 MB, což nestačí na vytváření neuronových sítí nebo používání mediálních souborů. Samozřejmě můžete připojit pomocnou paměťovou kartu, ale to také zvyšuje dobu odezvy, vyžaduje další zdroje pro její napájení a provádí se poloručním způsobem.

Jednoduché automatizované systémy, například pro vaření piva nebo skleníky, však nevyžadují ani zlomek prostředků, které může představenstvo poskytnout. V souladu s tím bude většina uživatelů považovat tyto nedostatky za nesmyslné. Pokud se rozhodnete sestavit si vlastní 3D tiskárnu nebo složitější design, měli byste se blíže podívat na analogy. Ale překážka vstupu pro konkurenty Arduina bude mnohem vyšší.

Příklad automatizace procesů na bázi mikrokontroléru Arduino

Nejjednodušším příkladem automatizace procesů může být skleník využívající Arduino. Pro vytvoření jakéhokoli systému stojí za to jasně definovat úkoly, které musí vykonávat. Na příkladu skleníku by to bylo:

  1. Vytvoření zvláštního klimatu.
  2. Včasné zapínání a vypínání osvětlení.
  3. Včasné zavlažování rostlin a udržování vlhkosti vzduchu na stejné úrovni.

Na základě těchto úkolů si můžete okamžitě všimnout, co budete muset koupit pro základní desku:

  1. Snímač teploty. Zajistí, aby se vzduch neohříval ani neochlazoval v rámci limitů předepsaných programem. Pokud se teplota změní, deska zapne klimatizaci nebo elektronické baterie.
  2. Světelný senzor. Samozřejmě se můžete omezit na softwarové řešení a pořídit si drahé lampy simulující denní světlo. Pokud si ale chcete vytvořit plnohodnotný skleník, pak bude mnohem pohodlnější nainstalovat automatický strop, který bude řídit Arduino.
  3. Senzor vlhkosti. Zde je vše stejné jako u teploty, podle předepsaného scénáře deska v případě potřeby zapne postřikovače a zvlhčovače.

Když si zakoupíte všechny potřebné moduly, zbývá je už jen naprogramovat. Vždyť bez kódu jsou to jen kusy hardwaru, které nejsou ničeho schopné.

Programování mikrokontrolérů Arduino pro automatizaci procesů. Příklad

Stejně jako v předchozím bodě je pro programování důležité rozdělit úlohu do samostatných dílčích bodů a provádět je postupně. Programování Arduina probíhá díky příkazům v rozhraní AT a AT+ s využitím připravených knihoven. V souladu s tím jsou všechny skripty napsány ve speciálním prostředí v C++ a než něco uděláte, věnujte čas studiu jeho sémantiky. Kromě provádění jednoduchých funkcí je systém také schopen ukládat skripty do flash paměti, což je to, co v tomto příkladu potřebujeme.

Nezapomeňte, že informace z každého senzoru přicházejí v reálném čase a jako proměnné, ale můžete omezit dobu odezvy, protože není třeba utrácet prostředky a neustále měřit každý parametr. Podle toho nastavte dobu zapnutí a vypnutí pro každý senzor nebo nastavte dobu odezvy na určitou dobu.

Jsem studentem technické univerzity. Jednoho dne, když seděli v kavárně s kamarádkou, která tehdy studovala lékařskou univerzitu, se rozhodli otevřít bar. Bylo mnoho nápadů, které si v zásadě zasloužily určitou pozornost. Například taneční parket, který mění úhel sklonu v závislosti na stylu hudby... Ale spolu se vší rozmanitostí nápadů tu byl ještě jeden -

...neměli bychom si uvařit vlastní pivo?

O pár týdnů později jsem uvařil pivo ze surovin z pivovaru, kde pracoval otcova kamarádka. Jenže mnoho technologických postupů bylo narušeno, a tak místo piva vyšlo něco s nepříliš příjemnou vůní.

O několik let později jsem se rozhodl proces zopakovat a trochu ho zautomatizovat pomocí Arduino UNO. A toto se stalo.

Začnu tím, co má celé nastavení dělat.

  • Zkontrolujte sami sebe - zda vše funguje, je vše připojeno;
  • Očistěte se;
  • Připravte se na proces vaření piva;
  • Vařit pivo v poloautomatickém režimu;
  • Vařit pivo ručně;
  • Vařit pivo v automatickém režimu (jako pračka pere prádlo).

První bod nebyl v tuto chvíli realizován. Zatím mě ani nenapadlo, jak to implementovat.
Druhá také není implementována, ale v dohledné době ji dokončím, jen počkám na dodání čerpadel z ebay.
Třetí bod je celkem jednoduchý.

Příprava na proces vaření piva

Hlášení ze systému, že je nutné nalít vodu do kádě -> program čeká na stisk tlačítka OK -> program odešle arduinu příkaz k sepnutí polovodičového relé -> polovodičové relé zapne jednokilowattové topné těleso v kádi, přivede jej na teplotu 37 stupňů, vyšle příkaz do programu, že je vše připraveno k vaření. Udržuje teplotu 37 stupňů.

Chtěl bych, aby byla provedena kontrola na přítomnost vody, ale senzor stále čeká na odeslání od „čínských bratří“.

Vaření piva v poloautomatickém režimu

V zásadě jednoduchý postup:

Stiskněte tlačítko „Zahřívání“ v ovládacím programu, ostatní ovládací tlačítka jsou neaktivní;
- Po zahřátí program zobrazí zprávu „Vše je připraveno, můžete vařit“;
- Přidejte přísady, zvolte program vaření - aktivuje se tlačítko „Vaření piva“;
- Stiskněte tlačítko „Vaření piva“, proces začal;
- Dále vás bude systém pravidelně upozorňovat informačními zprávami o tom, co dělat a kdy.

Musíte postupovat podle pokynů.

Ruční vaření piva

Tento proces umožňuje nastavit parametry vaření a změnit je během cyklu vaření. Ještě jsem se k tomu nedostal.

Automatické vaření

Tohle je sen. V současné době nejsou k dispozici žádné komponenty k implementaci. Není dostatek čerpadel a snímačů hladiny vody. Nevím, jak změřit hustotu mladiny, kolik alkoholu je v mladém pivu a mnoho dalšího. Ale nezoufám a budu se postupně automatizovat, dokud nebude vaření piva vypadat takto:

Suroviny jsem hodil do příslušných táců, zmáčkl tlačítko a... po měsíci a půl jsem dostal hotové pivo.

Toto je stručný přehled procesu, nyní přejděme k technické stránce.

Technická stránka procesu

Jak je uvedeno výše, řídícím mikrokontrolérem je arduino UNO. Jsou k němu připojena 2 relé, 2
digitální teploměr DS18B20.

Arduino komunikuje s hlavním programem přes com port. Protože Nemám pro arduino jmenný štítek v reálném čase, musel jsem vzít časovače z visual c#. Nemám žádné zkušenosti s psaním programů, takže pokud má někdo nějaké nápady nebo kritiku, budu poctěn. Kritizujte, ripujte, abych tak řekl, pokud se vám to najednou nelíbí.

Zde je text programu na arduinu

#zahrnout OneWire ds(8); // teplotní čidla jsou umístěna na pinu 8 int reley1 = 13; int reley2 = 12; int reley3 = 11; int reley4 = 10; int reley5 = 7; //povolení desítek int reley6 = 6; // zahřej na kaši tuňák float temp1; plovoucí teplota2; void setup(void) ( Serial.begin(9600); pinMode(reley1,OUTPUT); pinMode(reley2,OUTPUT); pinMode(reley3,OUTPUT); pinMode(reley4,OUTPUT); pinMode(reley5,OUTPUT); pinMode( reley6,OUTPUT digitalWrite(reley2,LOW digitalWrite(reley6,LOW) ( if (Serial.available()) ( switch (Serial.read())( case "); i": infuz(); break; case "p": progrev(); break; case "a": avariya (); break; case "v": varka(); break; case "t": break; ) ) void varka() ( digitalWrite(reley6, HIGH); while(Serial.read()! ="m") ( teplota(); if (temp1 >= 52,00) digitalWrite(reley6,LOW); else digitalWrite(reley6, HIGH); ) while(Serial.read()!="n") ( //digitalWrite (reley6,HIGH); if(temp1>= 62,00) digitalWrite(reley6,LOW); else digitalWrite(reley6,HIGH); while (Serial.read()!="b") ( //digitalWrite (reley6,HIGH); teplota(); if(temp1 >= 75,00) digitalWrite(reley6,LOW);<=69.50) digitalWrite(reley5,HIGH); else digitalWrite(reley5,LOW); } digitalWrite(reley5,LOW); } void progrev() { while (temp1 <=36.00) temperature(); digitalWrite(reley6,HIGH); digitalWrite(reley6,LOW); //while (temperature() >40,0) //zpoždění(1000);< 9; i++) { // we need 9 bytes data[i] = ds.read(); } int16_t raw = (data << 8) | data; byte cfg = (data & 0x60); if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms celsius = (float)raw / 16.0; for(i = 0; i<8; i++) { if (addr[i] == zator[i]) gde = true; else { gde = false; break; } } if (gde) { Serial.print("t2 "); //temperatura варочника temp2 = celsius; Serial.print(temp2); Serial.println(); } else { Serial.print("t1 "); //температура затора temp2 = celsius; Serial.print(temp1); } }

Serial.println("s"); ) void accident())( digitalWrite(reley1,LOW); digitalWrite(reley2,LOW); digitalWrite(reley3,LOW); digitalWrite(reley4,LOW); digitalWrite(reley5,LOW); ) void temperature() ( byte i ;přítomný bajt = 0 byte zator = (40, 23, 218, 43, 6, 0, 0, 22); , 59, 4, 0, 234 //adresa snímače teploty ve spařovací nádrži plovák celsius; ."); //Serial.println(); ds.reset_search(); delay(250); // return; ) if (OneWire::crc8(addr, 7) != addr) ( Serial.println("CRC is not valid!"); // return; ) ds.reset(); ds.select(addr); ds.write(0x44, 1); // spuštění konverze se zapnutým parazitním napájením na konci zpoždění(840) ; // možná stačí 750 ms, možná ne // zde můžeme provést ds.depower(), ale reset se postará o to present = ds.reset( // Read Scratchpad for (); i = 0; i

Všechno by bylo v pořádku, ale z nějakého důvodu třetí senzor neustále ukazuje 85 stupňů. Zatím nedokážu říct proč. A je potřeba pro další automatizaci – udržování teploty v lednici.

Stručně popíšu, co program dělá.

Program je rozdělen do podprogramů, z nichž každý se aktivuje, pokud se na com portu objeví určitý symbol. Pokud například do portu vstoupí písmeno „p“, aktivuje se režim „Zahřívání“. Nebo, pokud „a“, pak se zavolá podprogram avariya() a vše se vypne. Při volání podprogramu temperature() se data zapisují do globálních proměnných temp1, temp2. Odtud se dostávají do potřebných podprogramů.

V budoucnu budou existovat podprogramy pro vaření různých odrůd a dokonce i moonshine.

Nyní k hlavnímu ovládacímu programu.

Hlavní ovládací program

Je napsán ve Visual Studio c#.

Zdrojový kód programu:

pomocí systému; pomocí System.Collections.Generic; pomocí System.ComponentModel; pomocí System.Data; pomocí System.Drawing; pomocí System.Linq; pomocí System.Text; pomocí System.Threading.Tasks; pomocí System.Windows.Forms; pomocí System.IO.Ports; jmenný prostor WindowsFormsApplication1 ( veřejná částečná třída Form1: Form ( // String číslo portu; SerialPort Port1 = new SerialPort("COM5", 9600); int s=0; public Form1() ( InitializeComponent(); ) /*private const int CP_NOCLOSE_BUTTON = 0x200; chráněné přepsání CreateParams CreateParams ( get ( CreateParams myCp = base.CreateParams; myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON; return myCp; ) )*/ private void Form1_Load (objektový odesílatel) Event. PortName; Port1.Open( ) //Kontrola zařízení private void button1_Click(odesílatel objektu, EventArgs e) ( if (Port1.IsOpen == false) ( try ( //informace o programu lze upravit z podrugomu.com/node); /987 Port1.Nazev portu = jmenovka2.Text; ReadByte() //kontrola hodnot portu MessageBox.Show("Proces kontroly hardwaru byl zahájen", "Informační zpráva"); PortName = jmenovka2.Text; Text; //Port1.Open(); Můžete přidat slad a zapnout režim rmutování"); richTextBox1.Text = richTextBox1.Text + "\n" + "Konec procesu přípravy kaše. Т=37 stupňů" + " " + DateTime.Now.ToString("HH:mm"); button2.Enabled = true; ) ) private void emergencyDisableToolStripMenuItem_Click(object sender, EventArgs e) ( Port1.WriteLine("a"); MessageBox.Show("Uživatel vypnul celý systém"); private void mash kettleToolStripMenuItem_Click(odesílatel objektu, EventArgs e) ( Port1.WriteLine("k"); MessageBox.Show("Režim vaření kaše je zapnutý. Počkejte 60 minut") ; richTextBox1.Text = richTextBox1.Text + "\n" + "Režim vaření kaše je zapnutý" + " " + DateTime.Now.ToString("HH:mm" ) private void. timer3_Tick(object sender, EventArgs e) ( string s1 = ""; Port1.ReadLine(); if (s1.Substring(0, 2) == "t1") label5.Text = s1.Substring(4, 5); if (s1.Podřetězec (0, 2) == "t2") label9.Text = s1.Substring(4, 5 s++; if (s == 900) ( Port1.WriteLine("m"); MessageBox. Show("Fáze přepsání při 62 stupních"); richTextBox1.Text = richTextBox1.Text + "\n" + "Fáze kaše při 62 stupních" + " " + DateTime.Now.ToString("HH:mm");

Zdrojový kód programu

Program komunikuje s arduino přes com port. Jediná věc, kterou nemohu překonat, je to, že při dotazování na komunikační port program nezamrzne, když je podprogram spuštěn. Po skončení podprogramu se program zasekne, ale zatím to není kritické a dokonce to je jakési plus. Spolehlivý - aby vám zabránil stisknout cokoliv během určité procedury.

Celkem program umí
- připravit zařízení na vaření;
- vařit;
- napsat jednoduchý pracovní deník (velmi užitečný pro další analýzu vaření piva);
uvařit sládek a rozmačkat tunu.

Až dorazí čerpadla a solenoidové ventily, budu je dále automatizovat. Mezitím přidám každou neděli jeden program vaření. Celkem bude 5 programů. Na své čeká také implementace manuálního režimu.
jak se říká,

pokračování...

UPD:

Tady je pár fotek z pivovaru

Toto je digestoř. Mám dva takové. Na boku je instalováno čidlo teploty DS18B20 v utěsněném rámu.
Dlouho jsem nemohl pochopit, proč arduino periodicky zamrzá, dokud mi nedošlo, že je třeba vše uzemnit, jinak by prorazilo do pouzdra, pak do pouzdra senzoru a do arduina.

Měděná trubice uvnitř je pro filtrování mladiny. Dá se udělat krásnější, ale je lepší použít falešné dno. Číňané bohužel s odesláním nespěchají.

Je příliš brzy mluvit o výsledku, tady je to, co se stalo

Celkový pohled na káď vypadá takto.

Použité běžné konektory
pro připojení teplotních čidel, připojených do dvojzásuvky. Je pohodlnější umýt zařízení. Vypnul jsem ho a odnesl do koupelny. Umyla jsem, zapojila a vše funguje.

Vše pěnilo podle plánu, žádný přebytek nevytekl. A moje nejbližší plány jsou scedit várku piva na další kvašení a uvařit další. Recept lze v zásadě zobrazit v kódu v podprogramu varka() arduina.

Solenoidové ventily konečně dorazily. Proces automatizace pokračuje.




Nahoru