Článek je bezpochyby dobrý.
Ovšem jeví se mi to jako další domácí automatizace v počátečním stadiu, napřed se měří teplota, pak se na základě měření bude něco regulovat, třeba hlavice na topení a kotel, pak se přidá ovládání světel a žaluzií. Při tom se zjistí, že rozvod 1-wire sběrnice je nedostatečný a bude se to předělávat na komplexnější řešení. To všechno se objevuje v mírných variacích přes 20 let :-)
Proto je nevyhnutelné tahat po bytě normální Cat 5 4 kroucené páry, v budoucnu to půjde snadno předělat. V článku je to shodou okolností správně.
Taky jsem před delším časem zvažoval mít čidla přímo na ethernetu, dokonce každé s IP adresou.
Ale vychází mně to relativně složité - u každého mikrokontrolér s W5100 plus pochopitelně PoE.
Uznávám, že by to ale bylo velmi variabilní - mikrokontrolér může čidel obsloužit celou řadu a nemusí měřit jen teplotu...
Nejspíš existuje pro takové teplotní IP čidlo nějaké instantní řešení, ale zatím jsem po tom nepátral - máte nějaký tip?
Bavíme se pochopitelně o hobby řešení, ne o profi chytrém domu.
CAN by mě pro domácí automatizaci nenapadl. Můžete to trochu rozvést?
Je pravda, že třeba STM32 obsahují CAN řadič, takže se to dnes dá poměrně snadno bastlit i doma...
Jak vypadá fyzicky sběrnice - 4 dráty(2 data, zem, napájení), terminátory?
V autě je to snadné, tam je "všude" kostra a každá jednotka má napájení vyřešeno...
CAN elektricky, protokolově RS232, výhodou je že CAN má snadnou detekci kolize na sběrnici, většina CAN budičů umí zároveň přijímat i vysílat, takže se kolize pozná hned a ne až jako timeout že cílové zařízení neodpovědělo. Máte-li plnohodnotné řadiče CAN "zadarmo" použijte je samozřejmě přednostně.
Drátově GND, +12V, CAN+, CAN-, terminátory na konci vedení.
1. CAN není elektricky RS-232 ani omylem. Ani tem neběhají jedničky a nuly.
2. CAN není protokolově RS-232, má to vlastní formát dat a zabezpečení, což RS-232 nepopisuje (ta se týká víceméně jenom PHY)
3. u CANu neřešíte kolizi. Řadič řeší kolizi za vás (a další věci jako priority zpráv, kódování, zabezpečení dat,...).
4. Napájení není sočástí CAN, tam jsou jenom dva datový vodiče. Jestli kolem povede 230V, 24V nebo bude v každým zažízení akumulátor, není součástí specifikace. Naštěstí. V průmyslu jsou trošičku jiný standardy, než 12V DC.
Na aplikační vrstvě se to má tak, že při initu nastavíte filtr k mailboxům pro zprávy, který vás zajímají. Pokud po sběrnici proběhne hlídaná zpráva, padne do mailboxu a vyskočí interrupt, stačí jenom vyčíst. Když cci něco poslat, prostě to nakopíruju do mailboxu a nastavím na periferce příslušný bit, přijde interrupt při chybě (např. zkratu na sběrnici) nebo interrupt, že zpráva byla odeslána a mailbox je volný.
Jo. Dá se to tak udělat. Bez připojení ke sběrnici se to chová jako loopback, se sběrnicí stačí kontrolovat, že přijímá co vysílá. A bere to jenom dva piny na jednočipu bez txEnable a dalších blbostí, při pádu CPU to nesestřelí sběrnici, ... Jenom ten komfort proti CANu tomu chybí.
Přesně tak, CAN budiče mají jednu log. úroveň jako dominantní a jakmile ji jeden prvek nastaví ( vyšle ), je zaručeno, že bude na celé sběrnici. Oproti tomu budiče pro RS485 se stavem vysílání dvou zařízení proti sobě konstrukčně nepočítají a na delší sběrnici se může stát, že v jednu chvíli vysílají dva prvky opačnou úroveň a tu dokáží vnutit jen části sběrnice ve svém okolí. Proto je okamžitá kolize detekce problematická. Bohužel i při použití budičů CAN a seriového hw procesorů lze kolizi zjistit až po odeslání ( a kontrolním přijetí ) celého byte.
Ovšem třeba na Arduinu i jinde se používá i software serial a tam by jistě bylo možné implementovat kontrolu na úrovni jednotlivých bitů a využít i část filozofie protokolu CAN pro detekci kolizí jednotek s nižší prioritou, jejich odmlčení a následné bezkolizní doručení telegramu.
CAN také doma používám (ColdFire V1 procesory), na CANu mám informace o stavu vypinačů (v nových mám už kapacitní čidla, takže se stačí akorát dotknout rukou a nemusí se mačkat), světlech, PIR čidlech, teploty z DS18B20 a další stavové informace, zatím to zobrazuji (a případně ručně ovládám) pomocí USB-CAN převodníku a programu na PC, ale už mám něco rozjetého i na Raspi s CANem a programem FHEM, takže mohu zobrazovat nebo ovládat i přes web (případně přes Andfhem i mobilem - pak lze na mobilu pomocí Taskeru a Autovoice rozpoznat hlasový příkaz a například zapnout světlo, ale to je spíš taková blbinka :)
Anebo řešení od soudruhů bastlířů z německa. Běhá to po dvou drátech, jede po tom i 24V napájení (klidně i z několika zdrojů) a fyzická vrstva se dá splácat i z toho, co seškrábe p(r)odavač v GM. Z procáku si to vezme jenom UART na 2.4kbps.
A rozumí tomu i některý "profi" výrobky, hlavně ze západní produkce (kotlíky Vailant a podobný bestie).
Hotové IP teploměry jsou (třeba Papouch a to druhé si nemůžu vzpomenout, ale jsou to taky místní), ale jsou zbytečně drahé.
Osobně, jestli se k tomu jednou dostanu, mám systém vymyšlený tak, že v každé místnosti je jedno Raspberry (nebo něco podobného) a teploměr je jenom jedna z jeho funkcí, dál to může být bezpečnostní kamera, AirPlay a podobně.
Jedním z důvodů je i to, že samozřejmě nemám doma natahané kabely. I když umístění čidla do UTP konektoru se mi moc líbí :-)
Zbytečně drahé? Proti DS18B20 je ta cena přímo raketová :)
www.papouch.com/...
Když jsem váš příspěvek četl, představoval jsem si cenu v řádu stovek, a to mi připadalo ještě uvažovatelné, ale tohle jsou očividně zařízení pro úplně jinou cílovku :)
Takže pořád je levnější pořídit rpi, poe adaptér a teploměry zvlášť :(
Tak sorry, opravuji "raketově drahé"... :-)
To druhé, na co si nemohu vzpomenout, je o malinko levnější. Ale taky to bylo kolem dvou tisíc. Kupoval jsem to do jednoho racku asi dva roky zpátky.
Ale jinak souhlasím s kombinací raspberry a teploměry zvlášť. Projekt "Raspberry do každé místnosti" mám pořád na stole. Respektive pod stolem mám jedno běžící s připojeným čidlem, ale nemám na to čas a už ani nevím, jakou to mělo IP adresu :-)
Variantně podobné provedení http://www.t-cz.com/lan-controller-v2-0_d14598.html a na TZB se dallas čidla řešili zde: http://forum.tzb-info.cz/119066-rizeni-pres-internet
IP teplomer se da postavit za zlomek ceny papoucha... http://avr.analogic.cz/
IPv6 to 1-wire protocol translator | Hackaday
Velmi pěkné, nádherné mapování 1-Wire na IPv6.
Dělá se a dá se bez problémů sehnat spousta čidel např (fa Papouch nebo Rawet) s napájením 24VDC a výstupem RS485 s protokolem Modbus (průmyslový otevřený standard). Není problém tato čidla napojit na běžný Ethernet kabel (doporučuji stíněný). 1 pár vodičů zajistí komunikaci a zbylé napájení. Délka vedení může být i několik set metrů.
To sice dá, ale je to trochu... nepoužitelný.
Jde o průmyslový výrobky. Jejich cena je někde úplně jinde, než u domácího bastlení. A sice nevím, jak u teplotních čidel, ale Papouch u převodníků RS232-RS485 totálně zklamal. Mám ho v práci v šufleti a už čtyři roky jenom bez užitku zavazí. A vůbec netuším, jak ho použít, protože s tou krpou v napájení je to jenom hliníkový těžítko.