Chytré domy, v čem je problém?

Proč vlastně ty chytré domy lidé moc nechtějí?

Nemají je, nechtějí je.

Začneme zeširoka, je to kurva předražený. Pokud prodejce nabízí jednu smart zásuvku za litr a každej dneska ví, že tam je relátko za 10kč, těžko někoho přesvědčíte. Za celý smart house dát sto tisíc je úplně nic, víte co je k tomu potřeba programátorů a specialistů na elektrony (elektrikáři).

Ve skutečnosti leží problém trochu jinde. Sledujete vývoj chytrých domů? Posledních X let to bylo nechutně otřesné, uživatelský zážitek, tohle slovní spojení tvůrci systémů vynechali. Mohli jsme si tak koupit systém, který měl vteřinovou prodlevu mezi smart-tlačítkem a smart-světlem. K tomu byla prapodivně vypadající obrazovka, kde v designu windows XP svítilo několik ikonek se siluetou domečku. Radši bych si vypíchnul obě oči než s tímhle dělat.

Dneska to je už lepší, vzniklo plno mladých firem, které si říkají startupy a okopírovali android material design, takže gui už je pěkné, mám aplikaci v mobilu, kterou si můžu přes celou zeměkouli rozsvítit světla, zatáhnout žaluzie.

Ale já k tomu mám jednu zásadní otázku

DOPR*ELE PROČ?

Já chci smart house, nechci bejt otrok baráku, já musím světla na dálku zapínat, nastavovat topení a cojávím co ještě. Ale já tohle nechci. To ten barák nepozná, že má zhasnout?

Správná technologie je taková, která není vidět, nejsem jejím otrokem, nestojí miliony atd.

Jedna firma to pochopila, já nechci auto, který zaparkuje, když zmáčknu čudlík, já chci auto, do kterýho naskočím, řeknu,  jedu do práce a tím moje interakce  končí. V lepším případě se auto zepta:  “do práce?” a o víkendu “na pivo?”.

Zásadně nechci aby můj smart house byl ovládaný zvenku, prostě vývojáři jsou debilové z principu, zero-day backdoorů je plnej svět, je to jen otázka času než můj barák bude něčí cluster.

A druhá věc, spotřeba. Smart house sice “šetří”, ale než sám ušetří na sebe, tak je po záruce a možná i po životnosti a to ještě nepočítám s tím, že tenhle smart house žere furt elektřinu a dost.

 

Já provozuju “smart” house třetí rok, stálo mě to cirka 500kč, program jsem k tomu napsal za pár hodin. Co můj house umí? Vlastně skoro nic, kouzlo je v tom, že bude umět to co chci, stačí upravit program. Teď sám rozsvítí když přijdu do smrchy a zase zhasne a když tam někdo je, tak nezhasne. A když zhasnu v koupelně, tak zhasne a vyvětrá. Nic víc.  Jo a tlačítka jsou obyč spínače, takže jsem nemusel rozvádět po baráku 1,5mm měd jak za krále klacka.

Levný a úsporný síťový switch

Trochu jsem překovap síť a potřeboval jsem nějaký jednoduchý 5-portový switch pro připojení tiskáren.

Seřadil jsem tedy dostupné podle ceny a vybral si Tenda S105. 5 port 100mbit. Zaujala mě spotřeba. A to bych to nebyl já abych to nevykuchal.

Je to ořezané na kost. Dokonce se používá jednostranný plošný spoj, u síťových zařízení jsem to snad ještě neviděl. A propojky jsou smd “odpory”. Je zajímavé, že cenově to asi vychází lépe.

Uvnitř je jeden integráč, oddělovací trafa, konektory a napájecí regulátor AMS11117 lineární regulátor. Celé to frčí na 3,3V. Dodávají k tomu spínaný zdroj na 9v. Takže celkem kokoti. Doporučuji vyměnit za 5V/300mA.

A spotřeba? Při odpojených portech a vstupních 9V to bere 65mA neboli 0,6W a to půlka jde na ten regulátor.  Pravděpodobně se přepne do úsporného režimu, cca 5s bere dvojnásobek (1,2W) a pak to klesne. Zařízení je tedy mimořádně úsporné. Ještě by šlo vylámat smd ledky a trochu to vylepšit.

Mimochodem když to budete napájet z 12V tak to tepelná ochrana  AMS1117 odstaví.

Já jsem to kuchnul a udělal integrovaný pasivní poe s DC/DC měničem na 3,3V.

 

Optická detekce otvorů v PCB

Pro plosnaky.cz jsem napsal algoritmus na detekci otvorů na obrazci plošných spojů. Jako vstupní data slouží obrázek tohoto typu:   Důležité je, aby byl uprostřed vrtací plošky otvor. Někdy je problém text, někdy heat pady, snažím se při detekci false positive detekovat a vynechat.

Nejdříve dojde k převodu do černobílé podoby, kdy zůstanou bílé otvory a černý zbytek. To se provede pomocí floodfillu velkých ploch.  Pokud má algoritmus problém, ručně dočistím černobílý meziprodukt.

Samotný algoritmu poté pracuje s černobílým obrazem. Detekce prochází po řádcích každý pixel a hledá přechod mezi barvami. Tím se najde nějaký bod v kruhu vrtání.
Potom se spustí floodfill od tohoto bodu a dojde tak k vyznačení celého obsahu kruhu. Tím je kruh zapsaný jako detekovaný. Zbývá zjistit střed kruhu, průměr vrtáku a zda-li se vůbec jedná o kruh.

Všechno je tvrdě zjednodušeno, je to záměrně napsáno pro čisté php, abych mohl pouštět algoritmus prakticky kdekoliv. Nevýhoda je nízká rychlost.

Výstupem floodfilu je počet pixelů,  pracuje se s pevným DPI na vstupu, takže lze počet pixelů obsahu kruhu přepočítat na průměr vrtáku. Dále se zjistí krajní body (levý, pravý, horní, spodní) tohoto kruhu.  Z těchno souřadnic se dá spočítat výška a šířka. Zde nastupuje detekce kruhovosti, kdy se hlídá s učitou tolerancí zda šířka odpovídá výšce.

Dalším krokem je z těchto údajů dopočítání středu. Od středu se provede čtyřsměrná (případně osmisměrná) detekce hranic. Pokud střed neleží ve středu kruhu, je vyřazen. Počítá se s přibližně stejným počtem pixelů do všech směrů od středu.

Tím je kruh kvalifikovaný a algoritmus pokračuje pixelem, kterým skončil. Pokud má již nějaký označený za zpracovaný tak ho přeskakuje.

Všechno pracuje s určitou tolerancí a je tedy potřeba počítat s tím, že průměr vrtáku nemusí 100% odpovídat. Většinou odpovídá  80%. Kompenzace se dají dělat v postprocesingu, buď modifikací převodní tabulky (detekovaný průměr na finální vrták) a nebo ručně označením a změnou velikosti. Výsledný produkt je na obrázku.

Ve finále se vygeneruje GCODE pro řízení CNC. Algoritmus se postará o dogenerování vrtáků od 2mm výše, kdy se finální průměr (řekněme 4mm) převede na N přímek ležících na kruhu a pro to se dogeneruje GCODE. Jako kouzlem tak vznikne jakýkoliv průměr vrtáku.

Na posledním obrázku můžete vidět, že umístění otvorů není vždy úplně přesné. Pracuje se v celočíselných hodnotách a s pevným dpi, takže občas to trochu body posune. Ve skutečnosti to není nijak velký problém, jedná se o zvětšený náhled. Případné chyby detekce upravím v GUI, kde mohu manipulovat s body.

Levné mini-ITX a nedostatek portů

Potřebujete postavit třeba nějaký ten domácí server nebo bůhvíco? Dneska stačí mini-itx deska. Problém u nich je ten, že jsou levné a nebo mají dostatek portů.

Levných mini-itx deskách chybí především:

  • wifi
  • dostatek sata portů
  • usb3

Všechny desky mají jednu vlastnost společnou, mají pci-e slot nebo mini-pcie. V obouch případech je to řešení problému.

Běžně si můžete (na ebay) pořídit kartu, která z pci-e udělá jeden sata port a dva (nebo i 4) usb3 porty. Stejně tak i pro mini-pcie. Cena je kolem 250kč.

Tím dostane rychlé usb3 (přímo napojené na pci-e linku, rychlostně nepřiškrcenné) a nyní již můžete kouzlit. Když potřebujete wifi, můžete pořídit mini-pcie wifi kartu, lepší je  usb-wifi a tu zastrčit do usb a šetřit si mini-pcie na rychlejší zařízení.

Pokud potřebujete u desky s 2 sata například 4 nebo více, rozhodně potřebujete pci-e kartu s řadičem pro sata. Máte-li mini-pcie slot, můžete z něj redukcí udělat pci-e slot. Jak to mechanicky vyřešíte je trochu kutilský problém, ale když stavíte nějaký ten levný stroj, tak si určitě poradíte.

Dají se pořídit také mini-itx desky vybavené slotem pci-e 1x a zároveň mini-pcie. Můžete tak získat usb3 porty a dalších 5 sata portů. A 7 sata portů, 4 usb3 na desce za 1600kč.

windows+git+composer

nainstalujete windows, git instalaci, kde dáte že chcete integrovat do cmd. Composer.

Ke git repu se připojujete pomocí ssh klíče, který jste vytvořili v puttygenu. Takže instalujete ještě putty balík, budete mít asociovanej ppk klíč do pageanta. Takže potom tem klíč stačí dát do startupu a bude se načítat do pageanta, nemá-li vlastní heslo. A aby git fungoval s klíčem, tak si v puttygen musíte udělat export (Conversions->export Openssh). Tenhle klíč musíte dát do HOME složky, do cesty “C:\Users\%USER%\.ssh” pod názvem “id_rsa”.

Tenhle návod mám pro sebe, až to zase za deset let budu dělat, ať to nemusím znova googlit.

phpStorm má jednu chybu

Od verze 6 jsem si pořídil na programování phpStorm od jetbrains. Od té doby jsem vlastně hodně spokojenej.

V celém ekosystému phpstormu se dají dělat velký kouzla. Má to celý jeden šílenej háček, hák, kotvu.

Verze 6 se nainstalovala do adresáře /JetBrains/PhpStorm 6.0/, to je ok, propojil jsem otevírání souborů s phpstorm.exe, nastavil si firefox ať mi otevírá soubory z toho adresáře, především užitečný u firebugu, nastavil jsem ať se mi z nette laděnky otevírají soubory rovnou do phpstormu. Všechno to je fixovaný na tu cestu.

Přišla verze 7, přišla verze 8. Stále zuby nehty držím instalaci v adresáři /JetBrains/PhpStorm 6.0/ abych nemusel editovat nastavení cest.

Přišla verze 9. Instalace se odmítne nainstalovat do adresáře /JetBrains/PhpStorm 6.0/, protože chce adresář, kde je nainstalovaný phpstorm v 8. No jo, jenže v tom adresáři je verze 8.

Takže jako minule, zase to nainstaluju do novýho adresáře a pak to ručně přeprcám do starého, aby mi všechno běhalo.  Achjo.

Poznámka: ani si to není schopný najít licenční klíč z minulý instalace. Ale jinak je to fakt to nejlepší v čem jsem dělal.