PhDr. Mgr. Jeroným Klimeš, Ph.D. 2023-09-12
Dedikace: Tato stránka je věnována Mojmírovi Frídovi z oddaného obdivu.
Motto: Když Cimrman po letech spatřil ve Vídni první němé filmy, byl unesen. Ihned navázal přátelství s Mojmírem Frídou, půdoznalcem, který z nejrůznějších součástí nalezených na půdách sestrojil promítací přístroj.
Perex: Popíši Vám, jak jsem si vyrobil zavařovací hrnec z různých součástí nalezených doma. Potřeboval jsem něco, kde nemusím pořád hlídat teplotu a čas. Abych řekl pravdu, víc práce dalo napsat tuto webovou stránku než vlastní skript. Jinými slovy jednoduché programování skriptů není až tak složité a stojí za to se to naučit, i když třeba jste na Windows, byť tam je psaní skriptů na rozdíl od Linuxu dost nepohodné. Obávám se, že ve windows tento skript na zavařovací hrnec nejde vůbec napsat, ale možná se mýlím.
Na okraj, tady vidíte, kde beru inspiraci pro své psychologické metafory - děti vztah neopravují, ale jen zakonzervují ten stávající, a tak ho ochrání před přechozením čili zrychleným stárnutím. Opadaly nám skoro zralá jablka, tak jsem je zakonzervoval, aby vydržely ve sklenicích mnohem déle, než by vydržely pod stromem. A co vy? Hodláte také zakonzerovovat dětmi svůj skvělý vztah, aby vám neshnil? Já jsem názoru, že skvělé vztahy, ovoce i zeleninu má smysl zakonzervovat. Proto píšu knihy o rozchodech i skripty na zavařovací hrnce - o obojím jsem přesvědčen, že to může učinit tento svět hezčím...
Co k tomu třeba:
Větší hrnec, do kterého se vejdou alespoň čtyři zavařovací sklenice, tak aby dole zbylo místo na rošt.
Poklička, do které vyvrtáme díru na teplotní čidlo
Elektrický vařič, který nemá elektroniku, který začne hřát, jakmile do něho pustíme proud.
Starý notebook, do kterého nainstalujeme linux.
USB relay – koupíme na eBay (200 Kč) https://www.ebay.com/itm/152464651505. Návod na instalování ovladače
USB teploměr – koupíme na eBay (250 Kč) https://www.ebay.com/itm/234357942458
Toto vše poskládáme takto:
Fotodokumentace
Teploměr s čidlem, koupené relé a relé zkompletované do staré krabičky
Ovládání relé z příkazové řádky:
sudo ./usbrelay
too few arguments!
usage:
./usbrelay on [1|2]
./usbrelay off [1|2]
./usbrelay get
sudo ./usbrelay on
sudo ./usbrelay get
1: OFF
2: OFF
Výstup teploměru je:
./pcsensor -c -l1
2014/10/12 13:03:35 Temperature 69.95F 21.08C
Z toho se dají vykuchat potřebné informace, viz skript níže.
Starý hrnec, do kterého jsem dal nerezový proužek, který funguje jako rošt, protože na něm stojí čtyři velké zavařovací sklenice 2 cm nad dnem hrnce, ergo nemohou mít vyšší teplotu, než je vroucí voda, cca 96°C. Když nemáte rošt, naházejte do hrnce hrst kovových lžiček, tak na 2 cm. Vody dávejte, jak se píše ve vlastním skriptu do 2/3 výšky sklenic.
Starý vařič – uvnitř má bimetalovou kontrolou teploty, je to docela kuriózní historický bastl. Výhodou je, že se dá v nouzi přímo napojit na fotovoltaické panely bez měniče. Moje panely na stringu dávají max 1600W při 270V, takže když to připojím napřímo a nesvítí prudké slunce, tak by se to nemělo odpálit. To je sympatická vlastnost panelů – když je nejhůř, můžeme se vrátit k bastlení. Konec konců, když to dobře propočítáme a pozapínáme, tak můžeme i bojler připojit napřímo. To třeba u tepelných čerpadel nejde, to jsou už moc složitá zařízení na bastlení.
U stejnosměrného proudu z panelů je dobré přemostit, tzn. odpojit relé a termostaty, aby nevznikly oblouky a tyto se nespálily.
Tátův zavařovací koutek
Relé i teploměr jsou za počítačem, stejně jako zásuvky. Drát teplotního čidla, co vede pod pokličku, vidíte. Při zavařování ještě na pokličku hodím utěrku, aby to víc teplotně izolovalo.
Bezpečnostní opatření
I psycholog může vyhořet, takže to dávám na vál a na pečící plech, co je po ruce, protože opatrnosti není nikdy nazbyt. Stejně tak vařič i počítač jsou řádně uzemněny přes nulák a nadproudové relé v rozvodné skříni – tady žádný bastl není na místě. Stejně tak je lepší zaklapnout víko počítače, když se na něm nepíše, aby se nešplouchlo na klávesnici.
Výhody – nevýhody čili pla a mína
Toto řešení není moc pro netechnické typy vizuálně atraktivní, každopádně je to univerzální řešení. Když vezmu 30 litrový zavařovací hrnec, který mám v garáži, tak mohu zavařovat ve velkém, protože to funguje stejně spolehlivě jako tato malá sestava. Ano, můžete si koupit zavařovací hrnce, ale stejně tak stačí mít jednu pokličku s dírkou a v pozdním létě si poskládat zavařovací koutek na pár týdnů, aniž musíte mít doma extra krám za extra peníze. Sonda s relé zaberou málo místa, navíc se dají využít pro mnoho jiných aplikací, např. zalévání skleníku.
Jinými slovy, i když si postavíte továrnu na zavařování ačokč, tak tímto trochu upraveným skriptem můžete řídit zavařování na celé farmě.
Řeknu to příkladem. Kdysi jsem kódoval video v rámci výzkumu reklamy. Program se jmenoval Observer a stál bratru 80 000 Kč. Byl pro jednoho uživatele, nemohli jsme ho dávat domů brigádníkům kradený. Jednou jsme jeli na služební cestu do Hamburgu, a tak jsem cestování využil, že jsem naprogramoval jednoduchý kódovací software (tehdy ještě na Windows):
http://klimes. mysteria.cz/clanky/programy/kodovani_videa/
Pokud vím, tak ho profesionálové na kódování videí používají dodnes. Proč? Protože stačí – je malý, ale dělá jen to, co má. Tady je to stejné.
Software
Struktura programu je zcela prostá:
A) Kontrola zařízení a zvuku
B) Informace pro uživatele, jak to zapojit a jaké hodnoty zavařování nastavit
C) Zahřívání na počáteční teplotu (zde 80 °C)
V této části by se měl dát nějaký zpomalovač topení, podle rychlosti, jak stoupá teplota, protože pokud je v hrnci málo vody, tak teplotní setrvačnost vařiče přehřeje vodu třeba do varu.
D) Časový odpočet vlastního zavařování (zde 20‘)
E) Závěrečné instrukce a děkovačky
Omezená blbovzdornost
Pokud program ukončíte násilně pomocí CTRL-C, tak se nevypne relé a vařič dále hřeje – to si musíte kontrolovat sami. Není to Python, kde si můžeme ohlídat stisk CTRL-C. Přepisovat do Pythonu se mi nechce, takto mi to bohatě stačí. Ale celé toto zařízení není pro blbce a na vlastní nebezpečí, takže používat rozum, pak můžeme používat i vidličku. Ale rozum v každém případě!
Bash skript
#!/bin/bash # jkecho_color.sh je skript, ktery ma barevny vystup, mozno nahradit za obycene „echo“ teplota=80 # °C doba_zavarovani=20 # minut prodleva=1 # sekundy mezi měřeními pomaly_rozjezd=false debug=true debug=false if [ "$1" == "-v" ]; then #vyvarovani teplota=90 # °C doba_zavarovani=5 # minut echo "Zacina vyvarovani " fi # exit if $debug; then teplota=30 # °C teplota=80 # °C teplota=56 # °C prodleva=1 # sekundy mezi měřeními prodleva=1 # sekundy mezi měřeními doba_zavarovani=2 # minut fi kdosu=$(hostname -f) case $kdosu in T430) zvuk_soubor=$cesta_bash/beep/camera.wav zvuk_soubor=$cesta_bash/beep/beep_click.wav cesta_rele=/home/cesta/USB_relay_USBRelay2_dcttech/usb_relay_master cesta_teplomer=/home/cesta/TEMPer1F_teplomer/ovladace cesta_bash=/home/bash/ zvuk_soubor=$cesta_bash/beep/beep_chord.mp3 zvuk_soubor=$cesta_bash/beep/blackberry.mp3 ;; pcx201) cesta_rele=/home/cesta/USB_relay_USBRelay2_dcttech/usb_relay_master cesta_teplomer=/home/cesta/TEMPer1F_teplomer/ovladace cesta_bash=/home/cesta/ zvuk_soubor=/home/cesta/beep/blackberry.mp3 ;; esac function zvuk { # echo "source jkbeep.sh nebo \". jkbeep.sh\"" /usr/bin/mpv $zvuk_soubor &> /dev/null } teplota100=$teplota"00" # teplota vynasobena 100 clear echo Zavarovaci hrnec echo ' Do počítače zapojíme: A) USB_relay_USBRelay2_dcttech - tedy usb rele B) /home/cesta/TEMPer1F_teplomer - tedy usb teplomer Nastavíme v tomto skriptu: C) teplotu ve stupních Celsia D) dobu zavařování v minutách. Jako správce spustím tento skript: E) sudo ./zavarovaci_hrnec.sh Skript muzete kdykoli zastavit pomoci CTRL-C, ale pozor musite pak rucne vypnout rele - vytahnout z USB F) sudo ./zavarovaci_hrnec.sh -v Parametr -v spousti vyvarovani = 90°C a 5 minut. ' read echo ' Sklenice mají stát ponořené do 2/3 až ¾ ve vodě. V případě 2 řad sklenic na sebe postavených, měla by nejvyšší sklenice být ponořena do ¾ své výšky. Při zavařování použijte vždy zavařovací rošt. Doba zavařování se počítá vždy od dosažení bodu varu nebo požadované teploty. ' read echo ' Ovoce Teplota v °C Čas v min rybíz 85 20 jabl. pyré 90 30 hrušky 90 30 jahody 75 25 borůvky 85 25 maliny 80 30 třešně 80 30 mirabelky 90 30 broskve 90 30 meruňky 90 30 rebarbora 100 30 angrešt 80 30 švestky 90 30 ' read echo ' Zelenina Teplota v °C Čas v min květák 100 90 fazole lusky 100 120 tlusté fazole 100 90 hrách 100 120 kys. okurky 90 30 karotka 100 90 mrkev 100 90 kedlubny 100 90 dýně 90 30 růž. kapusta 100 120 chřest 100 120 kapusta 100 120 rajčata 90 30 ' read echo ' Maso Teplota v °C Čas v min pečené-plátek 100 75 guláš 100 75 divočina, drůbež 100 75 řízek, kotlety zapečené 100 75 uzeninová směs 100 120 azbest 100 120 000 000 000 ' function teplomer { teplota_hrnec=$(sudo $cesta_teplomer/pcsensor -c| sed -rn 's/^.* (.*)C$/\1/;s/\./,/p') # 2488 2489 teplota_hrnec100=$(sed -r "s/,//" <<< $teplota_hrnec) } function rele { # sudo apt-get install libusb-dev ### toto vyzaduje rele sudo $cesta_rele/usbrelay_funkcni $1 2>&1 } echo Ověřování programů pro teploměr a pro relé echo Kontrola zvuku zvuk $cesta_bash/jkecho_color.sh y "Meli byste slyset zvuk..." echo if [ "$(whoami)" == "root" ]; then echo "Jsem root - správně." else $cesta_bash/jkecho_color.sh y "Nejsem root. Treba spoustet se sudo. Konec..." exit fi # sudo /home/cesta/TEMPer1F_teplomer if [[ $(sudo $cesta_teplomer/pcsensor) =~ .*Temperature.* ]]; then echo "Teplomer se hlasi"; else $cesta_bash/jkecho_color.sh y "Teplomer se nehlasi. Konec..." exit fi if [ "$(sudo $cesta_rele/usbrelay_funkcni get 2>&1| sed -rn 's/^.*not found.*$/True/p' )" == "True" ]; then $cesta_bash/jkecho_color.sh y "Rele se nehlasi. Konec..."; exit else echo "Rele se hlasi"; rele off rele_fmt="Off" fi echo echo Zahrivani echo --------- zvuk $cesta_bash/jkecho_color.sh y "Cekame na zahrati na $teplota°C" cas_zacatek_zahrivani=$(date "+%s") echo zacatek zahrivani=$(date --date="@$cas_zacatek_zahrivani" +%H:%M) #funguje$(date +%Y-%m-%d_%H-%M-%S) echo nastavena doba zavarovani: $doba_zavarovani minut echo nastavena teplota zavarovani: $teplota °C echo teplomer teplota_zacatek_zahrivani=$teplota_hrnec100 echo "Teplota je: " while [ $teplota_hrnec100 -lt $teplota100 ]; do echo -e -n " $teplota_hrnec \r" teplomer rele on sleep $prodleva if (( (( teplota100- teplota_hrnec100) < 1000 ) && pomaly_rozjezd)); then rele off sleep $(( prodleva * 3 )) # zpomalí ohřívání rele on fi done rele off cas_konec_zahrivani=$(date "+%s") teplota_konec_zahrivani=$teplota_hrnec100 echo cas_konec_zahrivani=$(date --date="@$cas_konec_zahrivani" +%H:%M) #funguje$(date +%Y-%m-%d_%H-%M-%S) if $debug; then echo teplota_konec_zahrivani__$teplota_konec_zahrivani echo teplota_zacatek_zahrivani$teplota_zacatek_zahrivani echo cas_konec_zahrivani__$cas_konec_zahrivani echo cas_zacatek_zahrivani$cas_zacatek_zahrivani fi # rychlost_zahrivani=$(( ((teplota_konec_zahrivani-teplota_zacatek_zahrivani-1)*10)/((cas_konec_zahrivani - cas_zacatek_zahrivani)/60) )) doba_zahrivani=$(( cas_konec_zahrivani - cas_zacatek_zahrivani )) echo echo "Hrnec uz je nahran na teplotu $teplota_hrnec °C" echo Rychlost zahrivani byla $rychlost_zahrivani m°C/minutu echo Doba zahřívání byla $doba_zahrivani echo echo "Zavarovani" echo ----------- zvuk echo nastavena doba zavarovani: $doba_zavarovani minuta echo nastavena teplota zavarovani: $teplota °C echo cas_zacatek_zavarovani=$(date "+%s") cas_zacatek_zavarovani_fmt=$(date --date="@$cas_zacatek_zavarovani" +%H:%M:%S) #funguje$(date +%Y-%m-%d_%H-%M-%S) konec_zavarovani=$(( cas_zacatek_zavarovani + doba_zavarovani*60 )) konec_zavarovani_fmt=$(date --date="@$konec_zavarovani" +%H:%M:%S) # echo konec_zavarovani$konec_zavarovani # echo tady cas_nyni=$(date "+%s") echo cas_zacatek_zavarovani: $cas_zacatek_zavarovani_fmt echo " Teplota: Cílová teplota: Topení: Cas: Konec bude:" while [ $cas_nyni -lt $konec_zavarovani ]; do cas_nyni=$(date "+%s") cas_nyni_fmt=$(date --date="@$cas_nyni" +%H:%M:%S) echo -e -n " $teplota_hrnec $teplota $rele_fmt $cas_nyni_fmt $konec_zavarovani_fmt $(( konec_zavarovani - cas_nyni)) ( $(( (konec_zavarovani - cas_nyni )/60 ))) \r" teplomer if [ $teplota_hrnec100 -lt $teplota100 ]; then rele on teplota_zacatek_zahrivani=teplota_hrnec100 # zde je to i konec chladnuti cas_zacatek_zahrivani=$(date "+%s") # # rychlost_chladnuti=$(( ((teplota_zacatek_zahrivani-teplota_konec_zahrivani)*10)/(( cas_zacatek_zahrivani - cas_konec_zahrivani )/60) )) doba_zahrivani=$(( cas_konec_zahrivani - cas_zacatek_zahrivani )) rele_fmt="On" else rele off teplota_konec_zahrivani=teplota_hrnec100 # budouci zacatek chladnuti cas_konec_zahrivani=$(date "+%s") # budouci zacatek chladnuti rele_fmt="Off" # rychlost_zahrivani=$(( ((teplota_konec_zahrivani-teplota_zacatek_zahrivani)*10)/((cas_konec_zahrivani - cas_zacatek_zahrivani)/60) )) doba_zahrivani=$(( cas_konec_zahrivani - cas_zacatek_zahrivani )) fi sleep $prodleva done rele off rele_fmt="Off" echo echo zvuk $cesta_bash/jkecho_color.sh y "konec zavarovani - vytahnete varic ze zasuvky" zvuk $cesta_bash/jkecho_color.sh y "---------------------------------------------" zvuk echo "Vyjmete, obratte hrdlem dolu a nechejte vychladnout" zvuk exit