čtvrtek 10. listopadu 2016

Zkušenosti ze stavby 3D tiskárny i3 MK2

Trable s výběrem tiskárny jsem překonal, 12. října tiskárnu objednal, počkal 24 dní na pošťáka a konečně obdržel relativně malou krabici obsahující stavebnici 3D tiskárny i3 MK2. Když jsem z ní vyndal jednu cívku filamentu (tiskové struny), kterou Prusa Research přidává zdarma (výběr ze tří barev, které nikdo nechce), byla krabice dokonce poloprázdná! To je známka dokonalého rozložení tiskárny až téměř na atomy a příslib velké zábavy při jejím skládání do finální podoby.


Stavebnice přichází se dvěma knihami: tenčí 50stránkovou Příručkou 3D tiskaře a odhadem tak 120stránkovým velmi podrobným Návodem ke stavbě, který jsem se rozhodl slepě a do puntíku následovat (abych pana Průšu trošku zbavil toho pocitu zmaru, který musel prožívat, když viděl Thomase Sanladerera z YT videostreamu stavět celou stavebnici bez návodu). Návod je přehledně rozdělen do 9 kapitol, všechny součástky jsou pečlivě rozděleny do sáčků podle kapitol, obrázky v manuálu na webu (který kniha doporučuje používat jako aktuálnější zdroj informací) jsou ještě větší a barevnější. Je to opravdu výborně udělaný návod a celá stavebnice je díky němu řekl bych perfektní.

Komu ego či zbrklost nebrání postupovat podle instrukcí, nemůže tiskárnu sestavit špatně. I když třeba nedodrží avizovanou 6-8hodinovou dobu stavby - mně osobně trvalo sestavit tiskárnu kolem 22 hodin. Ale nevadí mi to ani za mák - mohl jsem si aspoň v klidu zanadávat při sestavování úvodního rámu ze šesti závitových tyčí a 24 matek (tohle je jistojistě nejslabší část celé stavebnice a trvala mi nejdéle) a později, jakmile jsem získal nejvyšší důvěru k tvůrcům návodu i celé tiskárny, obdivovat, jaké další úžasné triky v konstrukci vymyslí a co všechno se dá k čemu přichytit stahovacími pásky.

Když jsem se párkrát dostal do slepé uličky a musel vycouvat, bylo to jen kvůli tomu, že jsem přesně nedodržel sloveso v návodu: když třeba X. krok návodu říká, že se máme připravit, že budeme omotávat kabel, tak to neznamená, že ten kabel máme začít omotávat! K tomu dostaneme pokyn až v kroku X+2, zatímco v kroku X+1 máme ke svazku kabelů přidat další dva kabely. Tudíž jsem hned po omotání a přečtení kroku X+1 musel drobně vycouvat a začít znovu. Zmiňuji to proto, abych dokumentoval, jak přesně je návod napsán a že se opravdu vyplatí ho pečlivě následovat - a zároveň jedním okem číst tak jeden-dva kroky dopředu, aby člověk věděl, co ho čeká a že nemá nějakou operaci uspěchat.


Při stavbě jsem narazil jen asi na dva problémy: za prvé, otvory ve všech plastových dílech, do kterých se zasunují tyče (ať už hlazené nebo závitové), je nezbytné hned na začátku mírně probrousit, aby ty tyče šly zasunout hladce. Nejdůležitější je to u držáků řemenu a motoru Y osy a úplně kritické u držáků Z motorů. To jsem nevěděl předem, neudělal, pak se mi už nechtělo rozdělávat 4 kroky pozpátku a tak jsem tam ty hladké tyče rval a rval, až plast skučel. To bylo zbytečné a vy se tomu při stavbě vaší i3 MK2 vyhněte.

Druhý problém nastává při umisťování matiček do děr v plastových kusech. V jednom případě (někde u extruderu) je vytištěný šestiúhelník prostě příliš malý, takže se tam matička nijak vtlačit nedá. Horší situace je (opět okolo extruderu) v hlubokých kónických dírách, kam má matička spadnout až na dno a zůstat držet. Nic takového nejde. A to ani podle návodu, který radí tam matičku zatlouct klíčem! Kdo to podcení, zle se potrápí při kompletování celého extruderu, což je nejsložitější skládanka celé stavebnice.

Tady jsem vymyslel zásadní zlepšení, které bych doporučil zapracovat do originálního návodu: místo zatloukání matičky do hluboké či příliš malé díry stačí prostrčit dírou šroub, matičku umístit jen přibližně na místo, kam nepasuje, a pak v klidu šroub z druhé strany utahovat tak dlouho, dokud si nevtáhne matičku přesně na to místo, kde ji návod chce mít. Matička se do plastu zaboří takovým způsobem, že se pak dá šroub pohodlně vyšroubovat a matička už tam zůstane. Jakmile jsem objevil tento postup (na konci celé stavby), nastala procházka růžovým sadem.

Další zádrhely vypíšu už jen heslovitě: plastové krytky motorů osy Z nemají dost místa na kabely od motoru a pokud si nedáte pozor, přiskřípnete si je. Je potřeba je srovnat do úzkého pramínku a vést je přesně středem, kam nevidíte, když tam motor cpete.

Dále je chyba, že až po namontování motorů osy Z je vidět, že jejich plastové držáky třeba nejsou přesně ve směru svislého rámu. Rozdělávat dva kroky zpět a rovnat se to nikomu nechce, zároveň jsou šroubky v plastu pod motory nepřístupné. Tohle nevím, jak vylepšit - možná si tam orientačně přidržet motor ještě před finálním přitažením?

Další problém je v míře napnutí gumových řemeniček. Návod praví, že řemen má být napnutý tak, až při brnknutí vydává zvuk jako struna. Návod sice nezmiňuje, jako která struna by měla guma znít, ale odhadem jsem to na ose Y napnul tak, až to málem vylomilo podvyživený plastový držáček celého motoru. Tohle je konstrukčně též docela slabé místo. Až úplně na samotném konci, při montáži podložky MK42, se člověk diví, jak má přitáhnout šrouby pod řemenem osy Y - a při podrobném zkoumání fotek v návodu zjistí, že autor tam v klidu imbusovým klíčem napnutý řemen odsune do strany. Z toho jsem vyvodil, že autor nemyslel napnout řemen doopravdy (v takovém případě totiž nejde odhrnout na stranu klíčem) a řemen jsem trochu povolil. Značně to ulevilo tomu plastovému dílečku, který drží motor Y a už byl z toho trochu nakřivo. Tipuji, že se v budoucnu ten držák motoru Y přepracuje, nebo alespoň se motor podepře na opačném konci, ať se tak tahem gumy nekřiví.

To je myslím vše, na co může člověk i při následování dokonalého návodu ke stavbě narazit a co musí vyřešit. Posledním problémem u mě byla PINDA, ale to až při samotném tisku, resp. při úvodní kalibraci:


Návod praví, abychom ji umístili na začátku přibližně nějak takto vysoko (podle fotografie, kdy horní konec sondy PINDA má být pod okrajem plastu pro vedení kabelů). To jsem přesně udělal, a pak se při autokonfiguraci se zlou potázal. Při prvotním zaměřování autokalibračních bodů se tryska opřela vší silou do rohu podložky a celou ji prohnula. Pak začaly motory Z přeskakovat a já jsem v panice vypl celou tiskárnu. Přesně takto blbě to dělá spoustě lidí na Youtube, a někteří to dokonce považují za OK stav a nechávají si takto proďobat podložku na všech devíti místech. Děs běs!

Oslovil jsem online podporu fy Prusa Research, ale u klávesnice byla zrovna Mona, a než mi stihla sehnat nějakou fundovanou odpověď, tak jsem na to za pět minut přišel sám: je potřeba dát PINDU co nejníže, tedy samozřejmě o půl milimetru výš než je konec trysky, ale prostě co nejníž! Jinak nevidí ty autokalibrační body a při úvodním testu tryska poničí podložku a ostatní věci. Tady bych se přimlouval za nějakou jednoduchou pomůcku, třeba kousek plastu, na kterém by byly dva schůdečky, kdy o ten nižší by se ručně při stavbě porolovala dolů osa Z tak, aby se hrot trysky o plast opřel, a pak by se PINDA posunula tak, aby seděla na vyšším schodečku plastové pomůcky (a ten schodeček by měl max. 1 mm, aby lidi nedali PINDU příliš vysoko).


Po vyřešení výšky PINDY proběhla úvodní kalibrace a pak jsem už začal ladit výšku hlavy podle V2calibration.gcode souboru. To proběhlo v cuku letu a pak už jsem normálně začal tisknout! Když si vzpomenu na všechny ty rituální tance, které jsme museli absolvovat při tisku z ABS na naší staré  tiskárně, tak jsem úplně šťastný, že teď mohu prostě jen přijít, stisknout tlako a začít tisknout. Bez rituálů, bez přípravy MK42 podložky, bez ničeho. Tisk z PLA zatím vypadá jako ta největší pohoda na světě. Hle, i 120mm vysoké úzké objekty jdou vytisknout bez trhání po vrstvách:


Ze samé radosti jsem si vytiskl nový držák cívek s filamentem, který navrhl +Tomáš Vít  a publikoval na Thingiverse. Ten původní Průšův totiž vypadá velmi nespolehlivě a nešikovně při častější výměně cívek.


Celý tisk trval asi 9 hodin - ta špulka, ač tištěna podle FAST profilu (vrstva 0,35 mm) trvala pět hodin, ty držáky níže na NORMAL profil (vrstva 0,2 mm) pak další čtyři a půl hodiny. Výsledek je ovšem dokonalý.


K 9.listopadu 2016 tedy přechází moje nová 3D tiskárna i3 MK2 ze stavby skokem rovnou do plného provozu. Začnu ji sledovat bedlivým okem, jestli i za měsíc či za půl roku bude pořád fungovat takto perfektně "na první ťuk", jestli se nic nerozladí či nerozbije - a určitě sem či na mém G+ napíšu. Mé původní obavy ze stability konstrukce jsem rozehnal tím, že jsem všechny šroubové spoje už při stavbě opravdu důkladně utáhl. A co se týče pevnosti a robustnosti spoje rámu a vodorovné části, tak ta je lepší, než jsem předpokládal - asi hodně podrží to trafo, a zbytek je opět na pořádném dotažení šroubů na tom závitovém spodním rámu.

P.S. držák displeje na závitové tyče nejde nasadit ani za použití nelidské či dokonce nadlidské síly. Opravdu ne (podle fotek jsem měl nějakou novou konstrukci, tak bych se u Prusa Research přimlouval za trošinku větší otvory pro ty tyče). Pomohlo opět mírně probrousit ta očka.

EDIT 11.11.2016: doplnění dvou drobností

Ještě jsem si vybavil dvě věci: jak jsem tu tiskárnu stavěl, tak jsem se sice celou dobu pevně držel návodu, ale na samotném konci, při kompletaci krabičky elektroniky, jsem si už tak věřil, že jsem si přecejen dovolil odchýlit se od oficiálního manuálu, a to v kapitole 8, Step 3, druhá/třetí fotka: tady se má do vytištěné štěrbiny zasunout matička M3n, ale ta mi tam ani za boha nešla nacpat, protože otvor byl mnohem nižší. Proto jsem kreativně sáhl po pytlíčku se SPARE součástkami a vzal jednu čtyřhranou matičku, která je mnohem tenčí a do otvoru přesně pasovala. Skoro jsem se divil, jestli tam opravdu patřila M3n, nebo jestli se jedná o chybičku v návodu.



A jedna drobnost při úvodní kalibraci tiskárny, na kterou byste určitě přišli sami, ale stejně ji pro zajímavost zmíním. Když se hledá end-stop osy Y, jede vozík až úplně dozadu. Mně však na konci začal hrčet a přeskakovat, až jsem se lekl, že end-stop není správně zapojen. Při podrobnějším zkoumání jsem zjistil, že volný konec řemínku pohonu osy Y je tak dlouhý (asi 1,5 cm), že když se vozík dostal až skoro nakonec, tak se přečnívající konec řemínku zapletl do ozubeného kolečka pohonu a zablokoval ho - proto to přeskakování. K end-stopu v tu chvíli chyběly tak 2-3 mm. Vyřešil jsem to, navzdory radám v manuálu, jednoduše ustřižením přečnívajícího konce řemínku. Potom hned vozík dojel až na konec k end-stopu a tiskárna mohla pokračovat k problému s PINDOU, zmíněným výše.

sobota 29. října 2016

Jak vybrat 3D tiskárnu

Jak si domů vybrat 3D tiskárnu? Normální člověk to má docela jednoduché: buďto mu poradí někdo z rodiny či známý (kdo už ji má), nebo podlehne reklamě - třeba v e-shopu, na webu, na výstavě. Koupí si ji a je hotovo. Super hacker se může rozhodnout si ji postavit sám, ale na principu výběru to moc nemění - opět buďto poradí známý, anebo podlehne nějaké informaci, kterou někde náhodně pochytí.

Bohužel já jsem si tento proces výběru 3D tiskárny udělal mnohem složitější. Hlavním důvodem nejspíš bylo, že jsem už jednu tiskárnu měl. Díky tomu znám velmi dobře mnoho problémů, které při stavbě i samotném tisku nastávají a křečovitě jsem se jim všem chtěl při koupi druhé tiskárny vyhnout. I samotné pořízení druhé tiskárny je vlastně útěkem od problémů s první tiskárnou, které možné vůbec nebyly způsobené jí, ale jen nekvalitním filamentem (kolísající průměr -> zasekávání v trysce, také chybějící chlazení -> prokluzování v extruderu, atd.).

Stanovil jsem si proto podmínky: nic nestavět, koupit si hotový (kvůli záruce) osvědčený český výrobek (kvůli servisu). I když jsem měl občas nutkání koupit si něco z Číny za 8 až 15 tisíc korun v Alze či jiném českém e-shopu, vždycky jsem nakonec ucukl. Zkušenosti lidí s těmito zázraky jsou totiž veskrze negativní - většina majitelů musela postupně vyměnit na takových tiskárnách všechny díly, aby to začalo fungovat spolehlivě. A to je opět práce, které jsem se chtěl za každou cen vyhnout.

Na jaře vyšly na Lupě články o českých 3D tiskárnách: Průšovy i3, Poseidonu a KRYAL Cube. O Průšovi jsem samozřejmě věděl už celé dlouhé roky, ale ignoroval jsem ho, protože jeho tiskárna i3 stojí skoro 19 tisíc korun a to se mi zdálo nedosažitelně mnoho. Poseidon Duo za necelých 16 tisíc korun se mi zdál mnohem lepší - na první pohled pevnější konstrukce, tisk ze dvou hlav zároveň, a ještě tři tisíce ušetřené.

No a Kryal Cube - to je úplná pohádka: když si člověk čte ta hesla na stránce "Proč KRYAL Cube", srdce jen plesá! "Robustní konstrukce", "stabilní stolek", "možnost zakrytování" - ano! Možnost zakrytování je pro mě velmi důležitá, protože ze zkušeností s první tiskárnou vím, jak je nemožné tisknout z ABS na nezakrytované tiskárně, když v místnosti není celou dobu stálá a vysoká teplota. Tohle všechno KRYAL má, a ještě mnohem víc! Možnost dvou hlav, odladěnost atd. Jediné mínus - cena. Téměř 23 tisíc korun mi přišlo jako strašně moc peněz.

Mimochodem, všechny tři ceny (16, 19 a 23 tisíc) jsou za stavebnice. Ceny sestavených tiskáren jsou o vražedných 7 tisíc korun vyšší. Tedy ony ty ceny nejsou nijak přemrštěné, protože postavit tu tiskárnu trvá zřejmě minimálně 8 hodin čistého času, a navíc se to nemusí vždy povést, takže by bylo rozumnější koupit tiskárnu složenou a odladěnou, ale třicet tisíc? To je cena ojetého auta! To si asi domů nemůže dovolit koupit každý, proto bude nutné vzít stavebnici a 7 tisíc ušetřit na úkor vlastního času. Koneckonců, dneska si umí postavit takovou konstrukci každý ňouma za stovku (příklad ve videu níže).



Takže jsem se zaměřil na Poseidon Duo. Naštěstí je jeho výrobce poměrně sdílný a na YouTube má hned jedenáct videí. Z nich je vidět, jak je Poseidon úžasná tiskárna a jak božsky tiskne. Místy se mi zdálo, že je to až moc dokonalé - třeba jsem při tisku krychličky viděl, že se jeden její roh bortí teplem (jak to moc dobře znám ze svých tisků) a pak po dotisknutí naráz byla kostička perfektní, ale snažil jsem se to autorovi videí prominout.

Někdy začátkem srpna jsem měl za sebou už pět měsíců váhání, přemýšlení a rozhodování a pomalu jsem se klonil k tomu Poseidonu. Když jsem se s tím svěřil různým lidem od fochu, byl jsem naráz varován, že není všechno zlato co se třpytí. Dokonce jsem měl možnost prohlédnout si fotky ze stavby tiskárny, ze kterých bylo vidět, že díly nejsou úplně OK (jemně řečeno) a ne úplně všechno do sebe pasuje jak má. Nechci tím nijak hanit samotný Poseidon Duo či jeho výrobce, je možné, že jsem viděl fotky ze stavby nějaké starší či nepovedené tiskárny a že letošní verze už jsou o dva řády lepší, ale mou důvěrou to zacloumalo natolik, že jsem se od Poseidonu odklonil a zaměřil se na zbývající dvě tiskárny.

i3 jsem viděl lidi stavět na LinuxDays v říjnu 2013 a její konstrukce je skutečně opakem slova "robustní". Dokonce bych řekl, že se to chvěje už při pouhém pohledu, co potom teprve při tisku! Oproti KRYALu je to úplná třasořitka. Navíc jsem si plánoval, že si ten KRYAL zakrytuju, jeho tvar pravidelné kostky tomu naprosto nahrává. Už jsem začínal být i smířený s cenou, která je sice nejvyšší z mých tří favoritů, ale je jasné, že platím za mnohem lepší mechanickou část, když v tom jsem narazil na informaci o i3 MK2.

Průšova i3 MK2 je evolucí verze i3. Seznam novinek má asi deset položek, mě však zaujala jen jedna: vyhřívaná podložka MK42! Nejen, že je navržena a vyrobena tak, že (dle tvrzení výrobce Prusa Research) je na celé ploše stejnoměrná teplota, ale navíc má na sobě speciální povrch z PEI, na který se dá tisknout běžným materiály bez jakékoliv mezivrstvy! Potírání skleněné destičky džusíkem z rozpuštěného ABS byla jedna z věcí, kterou jsem na naší staré 3D tiskárně trošku nesnášel. Představa, že se tomu dá vyhnout, mi způsobila naprostá rozhodovací muka... KRYAL s pevnou konstrukcí nebo i3 MK2 se super podložkou?

Následující 4 týdny (srpen/září) jsem se doslova trápil. Pročítal jsem všechny možné zdroje informací, všechny recenze, otrocky sledoval všechna videa a snažil se z toho nějak logicky vydedukovat správnou volbu. Dlužno dodat, že na webu nejsou prakticky žádné informace o KRYALu, proto jsem navázal přímé spojení s Petrem Šmerákem z týmu KRYAL Cube a vyměnil si s ním desítky mailů, ve kterých jsme probírali každičký detail tiskárny i samotného tisku. Petrovy informace byly dokonalé, ale potřeboval jsem je ověřit od někoho nezávislého, od někoho zvenčí, kdo už KRYAL doma má a tiskne. A tu se ukázalo, že KRYAL doma nikdo nemá... A já jsem zase nevěděl, jestli vsadit na masovost Průšovy i3 (aktuálně nejpoužívanější 3D tiskárna na celém světě!), anebo jít do technicky dokonalého řešení KRYAL Cube, které "nikdo" nezná ("nikdo" = někdo z běžných lidí na sociálních sítích, kdo by se nechal slyšet, jak to tiskne).

Příklad 12+2 = 14 hodin dlouhého videa, které jsem taky pečlivě pozoroval (a celou dobu trpěl z té německé angličtiny!):



V tu dobu jsem otravoval všechny kamarády, známé i neznámé lidi a na jejich běžný dotaz "jak se máš" jsem jim vysypal všechny výše uvedené informace a snažil se s z nich vymámit nějaký další, rozhodující důvod, který by mi ukázal správnou volbu české 3D tiskárny. Například +Tomáš Vít pravil, že pro něj je rozhodující možnost vytisknout si náhradní díl k tiskárně - tedy že tiskárna musí být Open Source. To je dobrý důvod - a jazýček na vahách to přechyluje k i3 MK2, protože KRYAL Cube není open source, nemá své díly ke stažení někde na webu. Zároveň se mi ale na mou zoufalou výzvu ozval jeden člověk, který řekl, že KRYAL má a že normálně tiskne. Hmmm. Takže zase nevím.

Líbí se mi, že KRYAL má možnost dvou hlav, takže může tisknout třeba podpory zároveň při tisku... No ale Průša má zase tým 60 lidí a stíhá makat i na firmware a dalším vývoji (například teď urychlili tisk přepsáním části rutin do celočíselných výpočtů - to se mi líbí, že to pořád táhne kupředu). Takže kterou?!

Pak ovšem zasadil rozhodující úder Petr Šmerák: pravděpodobně se mi podařilo ho přesvědčit, že o jejich tiskárně "nikdo" neví, takže ho nenapadlo nic lepšího než mi půjčit sestavený a vyladěný KRYAL Cube! Nejspíš dobře věděl, že když tu tiskárnu budu mít, že napíšu všude, jak tiskne. Ono se to nezdá, ale tento můj blogísek je docela dobře indexovaný Googlem, takže co sem napíšu, to se lidem na dotaz objevuje v odpovědích. To byla neodolatelná nabídka. Teda byla by nedolatelná, kdybychom neměli mezi sebou 300 km rozkopané dálnice. To by při vracení tiskárny představovalo 1200 km a 15 hodin čistého času jen v autě. Hmmm, to asi ne, svého času si náramně cením a tohle půjčení by se mi tak příliš prodražilo (cca 18 tisíc Kč jen za naftu a čas).

Zkoušeli jsme to ještě nějakou dobu domlouvat lépe - například jsem chtěl spojit cestu pro půjčení s cestou na letošní LinuxDays, a předem jsem se smiřoval s tím, že tiskárnu nikdy vracet nebudu, ale nechám si ji a koupím, protože vrácení by mě přišlo příliš draho). Už už to vypadalo, že to klapne, ale pak se stala další nečekaná věc: Průša na samém konci září, pouhý týden před termínem LinuxDays, ukázal čtyřbarevný tisk! A to mě teda úplně dorazilo...


Ne, že by mi šlo o samotný tisk čtyřmi barvami, ale průvodní video o chybách při tisku dvěma hlavami bylo tak sugestivní, že jsem si řekl, že už KRYAL kvůli dvěma hlavám nepotřebuju. On mi sice Petr Šmerák obratem vyhotovil dokument obracející informace z Průšova videa na hlavu, ale přiznám se, že už jsem byl tím vybíráním tak zedřený, že už jsem se v podstatě vzdal a vybral si tu JEDNODUŠŠÍ variantu, tedy objednat si na webu i3 MK2 a prostě počkat, až mi domů sama přijde krabice, pro kterou nemusím nikam jezdit.

Těsně po tomto mém "3D vyhoření" jsem v Praze osobně KRYAL Cube poprvé naživo viděl a mohu tak potvrdit, že konstrukce je skutečná nádhera a na první pohled tiskárna tiskne dobře. Zároveň mě +Miro Hrončok vzal do FIT Laboratoře 3D tisku a ukázal mi tam hromadu dalších tiskáren a věcí, ze kterých mi šla hlava kolem (například jsem v ruce držel MK42 s PEI a zdálo se mi, že ta podložka není rovná, ale že je různě křivá a uprostřed vyboulená!). Že mi potom Miro nabídl ještě další tiskárnu, kterou bych mohl mít, už ani raději nezmiňuju.

Vím, že je to smutný závěr tak dlouhého článku, který celou dobu pracoval s fakty a porovnával vlastnosti tiskáren jen proto, abych na konci v podstatě na všechno rezignoval. Ale ono je to právě o tom - tak nesmyslně dlouho vybírat a promarnit na tom tolik energie a času (a tedy peněz) byla velká chyba. Za tu dobu jsem mohl mít vyděláno na obě dvě tiskárny a ještě mít na hlavě o pár šedivých vlasů méně. Proto jsem rád, že jsem se nakonec rozhodl postupovat vlastně docela systematicky:
  1. koupit i3 MK2 (cesta nejmenšího odporu)
  2. napsat, jak doopravdy tiskne (ne jen první den, ale i po měsíci, po půl roce atd.)
  3. pokud bude tisknout blbě, sehnat KRYAL Cube a konečně ty dvě tiskárny objektivně porovnat
Takže se můžete těšit na další informace ze světa 3D tisku, bez cenzury a přikrášlování :-) Jako první začneme popisem stavby tiskárny.

pondělí 12. září 2016

WiFi Teploměr a termostat v nové verzi

Před čtyřmi měsíci jsem tu představil první verzi WiFi Teploměru (přičemž nultou verzi, prototyp, jsem právě před rokem předal +Kamil Zmeškal ).

Od té doby jsem několikrát mírně vylepšil plošný spoj, značně jsem zapracoval na firmware, pohnul jsem trochu s cloudovou službou, ujistil se, že 11 čidel připojených naráz není problém, ale s jednou věcí jsem přece jen trochu narazil: když někdo potřeboval spínat programovatelným termostatem ve WiFi Teploměru spotřebič na síťové napětí (tj. 230 V střídavých), musel použít externí relé. K němu pak potřeboval krabičku, musel to propojit kablíkem s WiFi Teploměrem a v tu chvíli to přestalo být elegantní řešení.


Proto přicházím se zbrusu novou verzí WiFi Teploměru/termostatu, která je zaměřena právě na spínání síťového napětí, tedy spotřebičů s příkonem až 2 kW (přesněji 2300 W). Relé je v této verzi napevno vestavěno. Na obrázku níže má WiFi Teploměr pod krytkou vlevo svorkovnici pro vstup síťového napětí a pod pravou krytkou pak spínaný výstup téhož napětí. Zároveň se ze síťového napětí i sám WiFi Teploměr napájí.


Tato nová verze (říkejme jí verze AC) WiFi Teploměru bude existovat souběžně s původní verzí (verze DC), protože má sice výhodu jednoduššího napájení a spínání síťového napětí, ale zase třeba chybí možnost externí antény, což pro někoho může být zásadní nedostatek. A taky neumí běžet na nízké stejnosměrné napětí, takže například v mobilních či od sítě vzdálených aplikacích zůstává verze DC favoritem.


Rozdíly mezi oběma verzemi přehledně shrnuje následující tabulka:
VerzeDCAC
Napájení3 - 16 V stejnosměrných90 - 250 V střídavých
Termostatický výstupvolitelný (+ 300 Kč), 5 AAno, 10 A
Vnitřní WiFi anténaAnoAno
Možnost vnější antényAnoNe
Cena1890 Kč1490 Kč
Vhodné příslušenstvízdroj či USB kabel, anténapřívodní kabel, odvodní kabel

Ostatní vlastnosti, tedy způsob připojení čidel (stereo jack 3,5 mm), firmware a způsob úvodního nastavení, LEDková indikace a ovládání jedním tlačítkem, a také péče a láska, s jakou to vymýšlím, dávám dohromady a testuji, zůstávají stejné.

V případě zájmu pište na petr@pstehlik.cz

úterý 2. srpna 2016

WiFi Teploměr - drobná zlepšení a plány

Už dobře dva měsíce u nás zuří rekonstrukce koupelny, která mi zabírá 120 % volného času a odčerpává většinu fyzických i psychických sil, takže v oblasti kutilství, elektroniky a programování mám fatální skluz.
moje drátové peklo v koupelně - tam jednoho krásného dne budou krabice s Arduiny!

Přesto jsem dokázal mírně pokročit v rozvoji WiFi Teploměru. Především jsem si obstaral "rozdvojky", které lidem umožňují jednoduše rozšiřovat síť teplotních čidel připojených k teploměru.
stereo jack 3,5mm - rozdvojka 

Kromě rozdvojení pro dvě čidla jsem koupil i "rozpětku" - umožní připojit až pět čidel naráz. Nyní tedy mohu lidem, kteří chtějí rovnou začít s více čidly naráz, poslat vše potřebné.
stereo jack 3,5mm - rozpětka

Zkoušel jsem postavit co největší síť s použitím všeho, co jsem doma měl, a dostal jsem se na devět čidel připojených a čtených naráz. Nejspíš to ale není hranice, jen jsem už neměl další rozdvojky :-)
devět čidel zapojených naráz - kdo dá víc?

Dále si lidé přáli napájení z USB nabíječek. To jsem v první fázi vyřešil jednoduše následujícím kabelem, který mohu zaslat na požádání místo 12V zdroje.
napájecí kabel z USB A na barrel jack 5,5/2,1 mm
Pak se ale ukázalo, že i když můj WiFi Teploměr funguje už od 4,75 V, tak některým zdrojům k mobilům (lidově "nabíječkám") kolísá/padá napětí tak nízko, že to teploměru nedělá dobře. Proto právě v těchto chvílích testuji další revizi plošného spoje (celkově šestou v pořadí), která bude kromě step-down měniče mít i lineární stabilizátor právě pro napájení napětím už od 3 V!
pátá (aktuální) revize WiFi Teploměru
Dále jsem postavil zásuvku s vestavěným elektronickým relé. Upravil jsem běžně dostupnou zásuvku ovládanou mechanickými hodinami a připojil ji k termostatickému výstupu WiFi Teploměru.
zásuvka ovládaná WiFi Teploměrem

detail zásuvky - otočné hodiny jsou už jen dekorace
Jak to funguje je vidět na videu níže, kde v zásuvce je zapojena běžná žárovka, WiFi Teploměr má nastavenou hranici sepnutí výstupu nad 27 ℃ a já zahřívám čidlo prstem, aby bylo vidět, že to sepne po dosažení hranice a vypne, když teplota opět poklesne:



Dále plánuji úpravy na serverové/cloudové části WiFi Teploměru, přidám export teplotních dat a nějak lépe vymyslím práci s časovými úseky z minulosti. Jo a chci přidat REST API do WiFi Teploměru, aby šlo jednoduše ovládat všechny GPIO piny.

Taky bych rád napsal jednoduchou aplikaci pro Android, která by si sama našla všechny WiFi Teploměry v síti a zobrazila naráz jejich hodnoty. Samozřejmě jde použít běžný webový prohlížeč a stránku si uložit jako záložku na plochu pro rychlý přístup (doporučuji, kdo to nezná), ale ta Androidí aplikace by mohla dělat s daty i něco málo navíc. Samozřejmě chci také udělat normální web na www.teploty.info, ale na to jaksi pořád není čas.

To mi připomíná, že mě nesmírně těší, že většina lidí, kteří si můj WiFi Teploměr koupili, si obratem koupili (nebo v nejbližší době plánují koupit) i druhý kus. Z toho se mi zdá, že ten můj vynález má jistou hodnotu a na trhu ve své třídě nemá konkurenci :-) Líbí se mi také, co všechno s ním lidé měří nebo řídí - kromě "obligátní" teploty v garáži či včelíně například také teplotu povrchu tenisového kurtu, nebo třeba teplotu skla v průmyslové peci.

Těším se na vaše další příklady úspěšného použití WiFi Teploměru a už plánuji nové, opět velmi praktické zařízení s ESP8266 :-)

čtvrtek 2. června 2016

Odesílání dat z WiFi Teploměru na jiné servery

Ve svém představení webového digitálního WiFi Teploměru jsem zdůrazňoval, jak je super úžasné a bezpečné, že teplotní měření zůstávají jen v lokální síti a jsou tam kdykoliv přístupná přes všechny webové prohlížeče připojené do stejné sítě. Už tehdy jsem ale upozornil, že nakonec stejně asi trošku vyměknu a přidám možnost odesílání dat někam ven, pro lidi, kteří nemají chuť programovat si vlastní řešení.



Od 29. května umí WiFi Teploměr volitelně odesílat data na můj server Teploty.info, který je tam ukládá a kreslí z nich grafy a hlídá mezní hodnoty atd. Samozřejmě se to dá ve webové konfiguraci Teploměru jednoduše vypnout/zapnout. Je přednastaven pevný interval 60 sekund, tedy každou minutu.


To je všechno v pohodě, ale včera v noci mi to nedalo a jal jsem se tvořit konfiguraci pro tu odesílací část. Výsledek vidíte na přiložené fotce obrazovky:


Takto nastavený Teploměr odesílá naměřená data ke konkurenci na tmep.cz :-) Samozřejmě je teď možné nastavit odesílání kamkoliv - třeba na ThingSpeak či milion dalších podobných služeb, pokud jim věříte. Svoboda volby je tu!

pondělí 30. května 2016

Arduino: bezdrátový RGB LED a Univerzální síťový modul

Dnes bych chtěl zdokumentovat dvě zařízení, nebo spíš Arduino moduly, které jsem navrhl a vyrobil již před mnoha měsíci, v podstatě hned na začátku mé Arduino kariéry. Používám je ve více hotových  zařízeních, které chci už dlouho popsat (například elektroměr, vodoměr, dětské noční světlo či osvětlení kuchyňské linky). Dnes tedy popíšu ty moduly a příště, při popisu konkrétního zařízení, se sem na hardware jen odkážu.

Smyslem níže popsaných modulů je udělat klíčový krok od prototypu nějakého vynálezu postaveného třeba na Arduinu Uno k finálnímu výrobku vhodnému k trvalé instalaci někde v bytě, domě či dokonce venku. U hotového výrobku obvykle preferujeme co nejmenší rozměry, napájení ze sítě či baterie, kompaktní tvar a pevnou krabičku, nějakou rozumnou svorkovnici - a naopak oželíme třeba USB konektor, který by jen zabíral místo, protože do něj není nic připojeno a už nikdy nebude.

Bezdrátový RGB LED driver

Před delším časem jsem se dověděl o RGB LED páscích - tedy takové "nudli" s plochými diodami, které dokáží svítit libovolnou barvou vzniklou kombinací tří základních barev - červené, zelené a modré. Hned mi učarovaly a chtěl jsem je okamžitě připojit k Arduinu a míchat barvy podle nálady, hudby, okolního osvětlení, teploty, úrovně hluku atd. atp. Ovšem tyto pásky pracují s 12V napájením a odebírají poměrně hodně proudu (podle své délky a výkonu), takže nejdou připojit přímo k Arduino pinům. Tudíž jsem začal pracovat na RGB LED driveru - zařízení, které bude umět řídit tři kanály o velkém výkonu.


Zároveň jsem byl v té době fascinován možnostmi bezdrátové komunikace na 433 MHz, kdy přijímač v ceně pod dvacet korun je schopen přijímat signály vysílané běžně dostupnými komerčními zařízeními typu dálkově spínané zásuvky či třeba domovního zvonku. Rozhodl jsem se ho tedy rovnou zapracovat do RGB LED driveru, abych mohl barvy světel ovládat na dálku jakýmkoliv 433MHz vysílačem.

Finální verze má následující vlastnosti:
  • Arduino Pro Mini v objímce (aby šlo lehce vyměnit, kdyby umřelo)
  • napájení přes standardní jack 5,5/2,1 mm (7 - 15 V)
  • tři výstupní kanály schopné řídit PWM celkový výkon až 60 W
  • bezdrátový přijímač připojený k pinu D2 (kvůli přerušení)
  • tři analogové piny vyvedené na svorkovnici
  • příprava na osazení LDR (fotorezistoru)
  • miniaturní rozměry 48 x 42 x 22 mm
  • kvalitní a pevná standardní krabička "KM 02" z ABS
Ty tři analogové piny vyvedené na vnější svorkovnici byly míněny pro další rozšiřitelnost, aby mohla být LED světla ovládaná i na základě informací z přídavných čidel (např. připojený mikrofon a tlesknutí dlaní). Analogové piny jsou "nejlepší", protože umí fungovat jako vstupně-výstupní, digitální anebo analogové, a jde na nich i vyvolávat externí přerušení procesoru, takže prostě dokáží obsloužit všechny situace.

Schéma zapojení je následující:

Plošný spoj je dělaný přesně na míru krabičky firmou +plosnaky.cz (toto je nějaká nejstarší revize, která ani neladí s nejnovějším schématem, ale pro ilustraci postačí):



Po osazení to vypadá takto:




Naprosto nejtěžší je pro mě vyrobit otvory v krabičce tak, aby přesně seděly na svorkovnici a napájecí zdířku:



Na konci stačí plošný spoj do krabičky jen posadit a zaklapnout víčkem, které kupodivu drží jen třením, není tu žádný šroubek (který by mi uvnitř zavazel):


Tento modul používám aktuálně na třech různých místech v domě (přičemž v jednom případě spíná ventilátor místo LEDek a ve dvou případech nemá bezdrátový přijímač vůbec osazen) a dovoluji si tvrdit, že se mi za ty roky osvědčil. Kdyby někdo měl zájem, mám ještě pár plošných spojů a krabiček, takže bych ho dokázal sestavit (a případně i naprogramovat pro určitou činnost).

Univerzální síťový modul

Toto honosné označení jsem přidělil následující krabičce, na které jsem pracoval déle než rok. V první fázi jsem se snažil integrovat Arduino s ethernetovým rozhraním. Cílem bylo mít zařízení, které bude mít v sobě volně programovatelné Arduino a zvenčí RJ45 síťový konektor, plus svorkovnici s hromadou vstupů a výstupů pro čidla a další rozšíření.


Samozřejmě jsem myslel i na možnost napájení přes PoE, tedy přímo po CAT5 kabelu:


Uvnitř používám komerčně dostupný maličký převodník z Ethernetu na SPI s čipem Wiznet W5100 (tedy stejným, jaký má standardní Arduino Ethernet shield). Celá konstrukce tomu byla podřízena - deska s Arduinem má na sobě konektor 2x5 pinů, do které se "síťová karta" zasunuje:



Když bylo toto Arduino+Ethernet zařízení prakticky hotové a pracovalo mi na několika místech, objevil se WiFi sériový převodník ESP8266 a vzal svět naprostým útokem. Mnozí arduinisté zahodili všechno, co do té doby vytvořili, a vrhli se do světa ESP, kde ale platí trošku jiná pravidla (8x méně analogových vstupů, jen 3,3V úrovně, méně GPIO atd.).

Ne tak já. Místo toho jsem si doslova umanul, že využiju tuto konstrukci a do stávajícího konektoru 2x5 pinů vytvořím modul s ESP8266. Tím se tato krabička stane nejvíc univerzální síťovou platformou, protože umožní plug&play výměnu modulu Ethernetu za modul WiFi a přitom vstupy a výstupy na svorkovnici zůstanou stejné a dobře známé. O mnoho měsíců později jsem měl tohle:


Není na něj vidět, ale na té destičce je z druhé strany ESP8266-07 a na místě RJ45 ethernetového konektoru trčí z krabičky konektor na (nepovinnou) externí anténu. Ostatní vlastnosti zůstávají zachovány, jak je vidno na připojených čidlech světla a teploty, které vyčítá Arduino a přes WiFi pak komunikuje s okolním světem stejně jako přes ethernet.



Pro zajímavost jedna starší verze plošného spoje (taktéž přesně na míru krabičce od +plosnaky.cz )

Nejvyšší čas zmínit parametry tohoto Univerzálního síťového modulu:
  • srdcem je Arduino Pro Mini v objímce (rychlá výměna při smrti)
  • napájení přes standardní jack 5,5/2,1 mm (5 - 15 V)
  • SSR na spínání síťového AC napětí 230 V (až 500 W)
  • PWM výkonový výstup pro LEDové pásky či DC motory
  • 5x GPIO (z toho 3x analog)
  • tlačítko (pro nastavení WiFi atp.)
  • kompaktní rozměry 84 x 60 x 22 mm
  • kvalitní a pevná standardní krabička "KM 22" z ABS
  • příprava na přímé připojení DS18B20
  • SW pro komunikaci přes Ethernet i WiFi

Jak vidíte, tento modul umí spínat přímo síťové spotřebiče, jako jsou světla v bytech, motory v čerpadlech a další. Umí také řídit (v rozsahu 0 - 100 %) stejnosměrně napájenou zátěž (LED osvětlení, DC motory) a navíc má pět pinů pro připojení čidel či dalších výstupů řídicích cokoliv. Díky síťovým rozhraním je ovladatelný na dálku. Ladil jsem na něm celé měsíce svou knihovnu pro ESP8266. Taktéž jsem se na něm naučil používat MQTT.

Mimochodem, ani krabička KM 22 nemá žádný šroubek, který by ji držel pohromadě, ale má čtyři kolíčky, které tak pevně drží v protilehlém kusu, že na žádné fotce není krabička plně domáčklá - ono je pak kumšt ji znovu rozdělat :-) I tady mi trvá velmi dlouho, než v krabičce vytvořím všechny ty prostupy na konektory, zdířky a svorky. Vždycky při tom lituju, že jsem raději neinvestoval do opravy či koupě plně funkční 3D tiskárny.

Aktuálně tento modul pracuje na dvou místech už téměř dva roky (jeden u klienta měří teplotu krbu a odesílá ji na www.teploty.info, druhý mi doma měří spotřebu elektřiny a vody). Nebojím se prohlásit, že i tento modul se mi osvědčil. Kdyby někdo měl zájem, mám (podobně jako výše) ještě pár plošných spojů a krabiček, takže bych ho dokázal sestavit a naprogramovat pro určitou činnost. Zájemci mi mohou napsat na mail petr@pstehlik.cz - další kontakty na mě jsou na webu www.pstehlik.cz.

pondělí 16. května 2016

WiFi webový digitální teploměr a chytrý termostat

Prosím pozor: WiFi Teploměr je dnes mnohem dál, než článek popisuje.
Pro aktuální informace navštivte www.teploty.info, díky!

Na začátku tohoto projektu byl +Kamil Zmeškal a jeho nápad na teploměr, který by umístil tuším někam do dílny, tento by byl přes WiFi připojený do domácí sítě a na požádání by hlásil naměřenou teplotu (čili by se choval jako web server). Kamil tu hodnotu chtěl dokonce v XML formátu, protože si ji zpracovává v nějakém svém programu a zobrazuje na tabletu, který má umístěný na zdi v obývacím pokoji. Takový WiFi teploměr jsem pro něj v šibeničním termínu koncem srpna 2015 postavil z jistého modulu určeného původně k jinému účelu (popíšu příště), předal a Kamil s ním spokojeně měří teplotu dodnes.

Ten nápad na bezdrátový teploměr v lokální síti se mi ale tak zalíbil, že jsem na něm od té doby pracoval dalších devět měsíců a dotáhl ho do podoby, ve které se nestydím ho prezentovat veřejně a zároveň ho tímto nenápadně nabízím i případným dalším zájemcům. Z původního poměrně jednoúčelového zařízení jsem ho významně rozšířil o regulaci (proto je v názvu i slovo termostat), doplnil grafické rozhraní, konfiguraci, více datových formátů a další věci, které popíši dále.


Hlavní rysy mého WiFi digitálního teploměru/termostatu jsou následující:

  • úmyslně acloudové řešení - zaručuje soukromí, bezpečnost a nezávislost
  • možnost měření několika teplot na různých místech (kam dosáhnou čidla)
  • jednoduché zapojení, zprovoznění a přidávání dalších čidel teploty
  • přímočaré webové rozhraní s naměřenými teplotami
  • naměřené hodnoty teplot dostupné též v XML, JSON a plain textu
  • termostat s chytře definovatelnými pravidly
  • výkon termostatu řízen v rozsahu 0 - 100 % díky PWM (pulsně šířkové modulaci)
  • široký rozsah napájecího napětí 5 - 20 V a minimální spotřeba (0 W)
  • miniaturní rozměry (68 x 48 x 26 mm)
  • externí WiFi anténa pro prakticky neomezený dosah
  • rozšiřitelný o další moduly, volně programovatelný
  • přístupný i z Internetu, pokud je o to zájem
Nyní krátce vysvětlím jednotlivé body:

ACloud

"ACloudové" (to slovo jsem pro vás právě teď vymyslel) znamená jednoduchou věc: na rozdíl od všech ostatních podobných WiFi teploměrů, které se vždy připojují někam do cloudu k určitému providerovi a vy potom musíte chodit k tomuto providerovi se dívat, jakou teplotu máte doma, jsem zcela úmyslně vytvořil řešení, které se NIKAM DO CLOUDU NEPŘIPOJUJE. Je to váš teploměr, ve vaší síti, měří vaše teploty, a pracuje naprosto nezávisle. Bude fungovat, i když vám doma náhodou vypadne připojení do Internetu. Bude fungovat, i když občas vypadne server providerovi cloudového řešení. A hlavně - bude fungovat i poté, co provider cloudového řešení jednoho dne zavře krám, anebo se jen rozhodne, že už nebude podporovat stará zařízení a jednoduše je zařízne. Tato nezávislost na Internetu a cizí firmě je tak významná vlastnost, že jsem ji chtěl vyzdvihnout jako první.
Cloudové teploměry či IoT řešení jsou totiž jako e-knihy a multimédia s DRM: jednoho dne někdo vypne DRM server a všechny vaše knihy, písničky a filmy, které jste si koupili, zmizí (to už se dnes děje!). Protože tuhle závislost na někom cizím nesnáším, schválně jsem vytvořil WiFi teploměr tak, aby fungoval samostatně.



Mnoho teplot

Měření teplot na více místech: používám digitální čidla DS18B20, kterých může být zapojeno i několik na jedné jednoduché sběrnici (kablíku).  Takže i když je v mém WiFi teploměru jen jedna vstupní zdířka (stereo jack 3,5 mm), tak jde například s pomocí obyčejných sluchátkových rozdvojek postupně zapojit více teplotních čidel a natáhnout si tak kolem domu, sklepa, chaty či bazénu celou síť měřených bodů, kterou ovládá jen jeden WiFi teploměr.



Vše je jednoduché

Jednoduché zapojení: krabička WiFi teploměru má jen dvě zdířky a jedno nenápadné tlačítko. Do jedné zdířky zapojíte napájecí konektor (5,5 / 2,1 mm s plusem uprostřed), do druhé zdířky zapojíte teplotní čidlo, stiskem tlačítka zahájíte proces připojování do vaší domácí WiFi sítě a za minutu už vidíte naměřené teploty, nejčastěji na adrese http://teplomer/ Tuto adresu můžete samozřejmě otevřít webovým prohlížečem ze svého počítače, taktéž ze všech tabletů, z mobilních telefonů, ze Smart TV (televizí s internetem), pokročilých herních konzolí atd. a to bez ohledu na jejich operační systém.



A když vás omrzí moje minimalistické grafické rozhraní, můžete si vytvořit vlastní webovou stránku nebo třeba mobilní aplikaci, do které naměřené teploty vložíte (tu mířím na webaře a programátory mezi čtenáři - je to skutečně velmi jednoduché).

Několik formátů

Naměřené hodnoty jsou po vzoru Kamila dostupné pro strojové zpracování v XML formátu, ale přidal jsem i jednodušeji zpracovatelný formát JSON a dokonce pro potřeby například Arduina nebo obecně zpracování bez nutnosti parsovat formát dat je výstup teplot dostupný i v čistém textu, zcela bez formátování. Díky tomu si můžete nad tímto WiFi teploměrem postavit podobné řešení jako má Kamil s tabletem, ale také můžete teploty zachytávat a ukládat na domácím serveru do databáze, zobrazovat z nich grafy a podobně. Na toto mám ostatně hotové řešení, které popíši za malou chvíli.

Programovatelný termostat

Na rozdíl od původního prototypu teploměru jsem před nedávnem přidal do projektu i výkonový výstup, který je schopen spínat proud až 3 ampéry a řídit ho plynule v rozsahu 0 - 100 % podle naměřených teplot. Díky tomu je možno například zatopit rybičkám v akváriu, vyvětrat rostlinkám ve skleníku, ochladit víno ve sklepě nebo třeba jen zesílit ventilátor, který ovívá vás, jak sedíte zpocení u počítače. Pokud potřebujete řídit větší výkony, anebo spínat síťové či jiné vysoké napětí, je možné k výstupu termostatu připojit relé, které potom teprve spíná to zabijácké napětí či výkon.



Můžete definovat více různých pravidel, která řídí výstup podle naměřených teplot, jak vidno na výše přiložené snímku obrazovky prohlížeče. Například spínač na 50 % znamená, že je sepnutý poloviční výkon, takže pokud tam máte připojený třeba ventilátor, tak se točí poloviční rychlostí. Pokud topení, tak topí polovičním výkonem, a pokud světlo, tak svítí poloviční intenzitou. Jistě vás už napadá, jak to v praxi využít.

Napájení

Modul WiFi teploměru je napájený běžně dostupným zdrojem stejnosměrného napětí, přičemž pracuje velmi efektivně v širokém rozmezí od 5 V do 20 V. Při nejběžněji dostupném napájecím napětí 12 V a dobrém WiFi signálu má naprosto minimální odběr proudu kolísající mezi 15 a 22 mA. Horší podmínky pro příjem WiFi mírně zvyšují spotřebu energie (protože vysílač musí zvýšit výstupní výkon). Mimochodem, komerční wattmetr do zásuvky naměří spotřebu WiFi teploměru přesně 0 W (vím, že teploměr má nenulovou spotřebu, ale je skutečně tak nízká, že je neměřitelná).

Dá se jednoduše spočítat, že například na běžnou 44Ah autobaterii by můj WiFi teploměr vydržel fungovat nejméně tři měsíce, kdyby bylo potřeba ho zprovoznit v místě, kde není přivedeno stálé elektrické napětí. Stejně tak by ochotně fungoval na solární pohon (solární panel dobíjející nějakou baterii). Ale spíš jsem počítal s tím, že prostě bude někde poblíž elektrická zásuvka.


Externí anténa

Jedním z důležitých rysů mého WiFi teploměru je taktéž konektor na externí WiFi anténu. Normálně používám malý prut s 2dB ziskem, ale dala by se připojit i větší anténa pro mnohem větší dosah. V Česku je ostatně běžné používat WiFi i na kilometrové vzdálenosti, takže meze se tu nekladou. Jiné WiFi teploměry na externí anténu zapomínají, a to si myslím, že je velká chyba, kterou jsem proto ve svém teploměru neudělal.



Rozšiřitelnost

Poslední bod je důležitý pro bastlíře, programátory a vůbec zvědavé lidi: dal jsem si záležet na tom, abych vám všem maximálně zjednodušil a umožnil další rozšiřování tohoto modulu jak po HW, tak i po SW stránce. Na základní desce jsem vyvedl veškeré piny procesoru ESP8266 na pohodlnou sběrnici a pečlivě ji popsal. Tím pádem k teploměru můžete připojit celou škálu dalších čidel či rozšíření (např. atmosférická vlhkost s DHT11/22 či tlak s BMP180). Dokonce jsem připojil i TFT displej!


Stejně dobře můžete rozšiřovat teploměr po SW stránce. Celý projekt je naprogramován v Lue, což je prověřený skriptovací jazyk. Na desku jsem vyvedl i programovací konektor kompatibilní s FTDI. Připojit WiFi teploměr k počítači a přeprogramovat ho je tak velmi rychlé.

Přístup z Internetu

Tak, tolik k měření teplot a regulaci v domácí síti. A co když zrovna nebudete doma a přesto vás bude zajímat, jaké jsou aktuální naměřené teploty? Pokud máte pevnou veřejnou IP adresu, můžete si na domácím routeru otevřít port 80 (či jiný) a nasměrovat ho (přes překlad adres) na WiFi teploměr. Pak se můžete zvenčí připojit domů a mrknout se na měřené teploty. Pro vyšší bezpečnost můžete místo NATu použít VPN. Ale co když takové možnosti nemáte? Samozřejmě vím, že sledovat měřené teploty je návykové, a proto plánuji v brzké době přidat jsem přidal do WiFi teploměru doplňkovou možnost přenosu naměřených hodnot na server www.teploty.info, kde by tak byly přístupné i z Internetu (po přihlášení jménem a heslem) a to včetně historie zobrazené v pěkných grafech a s možností varování e-mailem po překročení nastavené teplotní hranice u kteréhokoliv čidla.


Prosím o pochopení rozdílu mezi ostatními podobnými zařízeními, které k provozu cloud vyžadují, a tímto mým serverem teploty.info, které sice možnosti WiFi teploměru dále rozšiřuje, ale vůbec není nutný k běžnému provozu teploměru. ACloudový charakter tak zůstává zachován. Pokud by někomu nevoněl můj server a chtěl by si teplotní data nechat posílat na jiný populární server, je to možné po jednoduché změně ve zdrojových kódech.

EDIT 29.5.2016: WiFi Teploměr již volitelně odesílá data na www.Teploty.info

Chcete ho?

Pokud máte pocit, že tohle vytuněné zařízení musíme mít doma, napište mi mail na petr@pstehlik.cz. Cena řešení se odvíjí od stupně výbavy (s termostatem/bez, počet teplotních čidel, zdroj plus případné další příslušenství) - v základní verzi začíná na 1500 Kč. Další informace naleznete na www.teploty.info.

EDIT 10.10.2016: WiFi Teploměr nově i v AC verzi, která je levnější a má spínané relé.

EDIT 1.1.2017: Novinky u WiFi Teploměru v roce 2017.

neděle 27. března 2016

Displej s dotykovou vrstvou na různých mikrokontrolérech

Podražily OLED displeje, ale zlevnily TFT LCD, tak jsem si koupil další - krásně velký 2,8" s ILI9341 a dotykovou vrstvou, kterou čte XPT2046 (AliExpress):


Tento displej se připojuje k počítači sériově přes SPI, ovšem nenabízí jen jedno SPI rozhraní, ale rovnou tři!

První SPI je pro obrazová data, je na pinech na levé hraně, v dolní části. Druhé SPI rozhraní je pro dotykovou vrstvu a je taktéž na pinech vlevo, ale na horních pěti (označených TOUCH). A poslední SPI rozhraní je pro čtečku SD karet a je vyvedeno na obrázku vpravo (který jsem trošku moc ořízl, takže ty vývody nejsou vidět).

SPI sběrnice umožňuje připojit několik slave zařízení naráz, takže jsem logicky propojil SDI (MOSI) s T_DIN, SDO (MISO) s T_DO a SCK s T_CLK. A pak jsem to zkoušel rozjet na třech různých mikrokontrolérech: Arduinu, STM32F103 a ESP8266.

Ještě než napíšu jak jsem dopadl, musím zdůraznit, že displej je prodejcem inzerován jako "5V/3.3V", což může kvalitně zmást. Pravda je, že napájení (VCC) může být 3,3 nebo 5 V, protože zespodu displeje je lineární regulátor napětí nastavený na 3,0 V. Dokonce bych řekl, že je lepší, když je displej napájený 5 V, protože se mi choval stabilněji, ale možná se mi to jen zdálo (v nepájivém kontaktním poli často zlobí jednotlivé drátky a výsledky pokusů nejsou zrovna směroplatné). Pokud ho napájíme jen 3,3 V, ze kterých si ten regulátor uzobne 0,3 V pro sebe, tak pak displej může dostat i méně než 3 V a nepracuje se mu možná tak dobře. Na to jsou tam ostatně ty dvě pájecí plošky hned pod regulátorem, které můžeme páječkou jednoduše propojit, čímž regulátor vyřadíme z cesty a displej pak má plných 3,3 V.

Zároveň ten prodejcův příslib "5V/3.3V" neznamená, že kterákoliv ze tří SPI sběrnic je 5V tolerantní! Proto pokud připojujeme displej k 5V mikrokontroléru, jakým je například Arduino, musíme zařadit do SPI cesty "level shifter", měnič napěťových úrovní, jinak bychom mohli něco v displeji usmažit. Jako převodník poslouží například obvod CD4050E nebo některý z hotových prodávaných modulů osazených MOSFET tranzistory.

Mimochodem, podsvícení displeje (pin označený jako "LED") funguje stejně dobře na 3,3 V i na 5 V a nevidím tam ani rozdíl v úrovni podsvícení.

Ještě pár slov k použitým knihovnám. Přestože je komunikace s XPT2046 poměrně jednoduchá, neztrácel jsem čas psaním vlastní knihovny, a místo toho jsem si našel již hotová řešení (a pak ztrácel čas s nimi). První knihovnu pro své Teensy napsal Paul Stoffregen a je dostupná pod názvem XPT2046_Touchscreen na https://github.com/PaulStoffregen/XPT2046_Touchscreen. Druhá je od Spirose Papadimitrioua https://github.com/spapadim/XPT2046 a na rozdíl od první vyžaduje zapojení i pinu T_IRQ. Třetí je od Bodmera https://github.com/Bodmer/TFT_Touch/ a nepoužívá hardwarovou SPI sběrnici mikrokontroléru, takže může být připojena na kterékoliv piny a obslouží si je ručně. To jsem zprvu považoval za nevýhodu a knihovnu tak vyřadil z dalších testů, ovšem dnes už to vidím trošku jinak...

Jako grafickou knihovnu pro ILI9341 jsem použil velmi známou Adafruit_GFX se svým Adafruit_ILI9341 ovladačem. Adafruit podporuje už nejen Arduino, ale i ESP8266, takže se mi zdálo super, že použiju jednu knihovnu pro všechny tři mikrokontroléry.

Nyní už tedy jak jsem dopadl: první testy probíhaly na ESP8266. Tam XPT2046_Touchscreen nefungoval při testech vůbec. Ladicí hlášky ukazovaly, že vrací nesmyslně vysoké hodnoty tlaku (od 4 do 8 tisíc) a hodnoty polohy pochodovaly v cyklu v celém ADC rozsahu. Zkusil jsem tedy knihovnu XPT2046 a ta nefungovala taktéž, přestože podle pěkného článku na http://nailbuster.com/?page_id=341 fungovat měla. Asi se ty knihovny nějak nepohodly o právo komunikace na sběrnici, nebo jedna nastavila rychlost, které druhá nestačila nebo něco podobného. Nakonec pomohlo vyměnit grafickou knihovnu od Adafruitu za upravenou verzi zvanou "Adafruit_ILI9341esp" (která je ke stažení na výše uvedeném článku) a pak se vše perfektně rozběhlo. Bohužel jsem nebyl sto na první pohled poznat, co je v té "ILI9341esp" verzi změněno tak, že XPT2046 už s ní nekoliduje (neboť tam bylo příliš mnoho rozdílů), ale neměl jsem dost času, tak jsem to přestal řešit a smířil se s tím, že stačí použít "esp" verzi grafické knihovny a dotyková vrstva funguje (resp. ta daná knihovna pak správně komunikuje).

Další testy proběhly na ARMu STM32F103 - resp. na Maple Mini. Použil jsem "plugin" z www.stm32duino.com, který se "zasune" do Arduino IDE 1.6.x. Díky tomu mi přijela i opět jaksi upravená knihovna Arduino_ILI9341_STM, kterou jsem zkusil a fungovala výborně (asi 20x rychleji než na Arduinu nebo ESP8266). K ní jsem zkusil přidat obě výše zmíněné XPT2046 knihovny, ale dle očekávání žádná nefungovala. Pro sdílení SPI mezi dvěma různými zařízeními jsou totiž potřeba SPI transakce, které ale moje (starší?) verze STM32 "pluginu" pro Arduino IDE nepodporovala. Takže konec, žádné dotyky. Ovšem teď zpětně si říkám, že jsem měl použít tu knihovnu od Bodmera a jednoduše připojit TOUCH piny k některým z 30 volných pinů STM32F103...

Poslední na řadu přišlo Arduino Pro Mini: knihovna XPT2046_Touchscreen fungovala ihned, ale vracela hodnoty otočené o 90 stupňů, nebo prostě prohozené osy X a Y. Chvíli mě to bavilo, ale pak jsem raději přešel na knihovnu XPT2046, která se mi osvědčila na ESP8266. Tady ovšem nefungovala a ještě navíc rozbila kreslení obrazu. Asi se ty dva čipy porvaly o SPI sběrnici jako na ESP8266.

O správném připojení a ovládání více zařízení na jedné SPI sběrnici napsal pěkný článek výše už zmíněný Paul - http://www.dorkbotpdx.org/blog/paul/better_spi_bus_design_in_3_steps. Zkusil jsem upravit knihovnu XPT2046 podle jeho rad: nejdřív jsem do ní přidal podporu transakcí, a když to nestačilo, tak jsem ještě korektně předinicializoval obě CS linky, jak Paul doporučuje.

Přesto příklad kreslicí aplikace XPTPaint (v "examples" u XPT2046) pořád nefungoval, než jsem s úžasem zjistil, že v jedné ose vrací knihovna hodnoty od 0 do 20 a pak naráz skáče až na 56738 a až ke druhé straně obrazovky drží tento nesmyslný ofset (který nevím, kde se bere). Z nedostatku času jsem to vyřešil následujícím hackem (přidáním jednoho řádku do aplikace XPTPaint):

   touch.getPosition(x, y);
   if (x > 56730) x -= 56710; // WTF!?

Od té chvíle fungovalo na Arduinu s Adafruit_ILI9341 a XPT2046 vše v pořádku a mohl jsem nehtem malovat jak na malířském plátně.

Měl bych teď, po správné implementaci transakcí do XPT2046, ji znovu zkusit na ESP8266 s jinými ILI9341 knihovnami, ale nevím, kdy se k tomu dostanu. Taktéž bych měl zjistit, kde se na Arduinu bere ten nesmyslný ofset (možná přeteče nějaká proměnná?). A také bych měl zkusit pohledat na stm32duino.com, jestli už nemají SPI s transakcemi. Hmmm, napíšu, jestli se k něčemu z toho někdy dostanu.