Inteligentny dom

Oct 01, 2005 26 Replies

Witam



Przymierzam siê do zaprojektowania i wykonania prostej sieci dla inteligentnego domu (centralne zarz¹dzanie ró¿nymi urz¹dzeniami np. oœwietlenie, system alarmowy czy klimatyzacja w obrêbie jednego budynku). Wiem ¿e s¹ ju¿ gotowe rozwi¹zania (EIB), jednak wola³bym siê trochê z tym pobawiæ i zrobiæ samemu (przynajmniej czêœciowo). Z drugiej ztrony elektronikê traktujê amatorsko wiêc raczej skupiê siê na stronie logiczno-programistycznej, czyli im mniej lutowania tym lepiej :) Mój projekt zak³ada bazê komunikuj¹c¹ siê dwukierunkowo ze wszystkimi urz¹dzeniami po jednym medium. Prêdkoœæ jest tu najmniej wa¿na (parê kb/s te¿ wystarczy).


1) medium Dodatkowe kable sygna³owe mnie nie interesuj¹. Do tej pory wymyœli³em ³¹cze radiowe albo modem 220V. W pierwszym przypadku zwróci³ moj¹ uwagê gotowy modu³ CC1000PP.

Czy istniej¹ analogiczne gotowe (oczywiœcie tanie :)) modu³y dla modemu



220V? Jakieœ linki?


2) protokó³ Ze wzglêdu na to, ¿e w sieci bêdê pracowaæ ró¿ne urz¹dzenia, zak³adam pakiety informacji o ró¿nych d³ugoœciach. Muszê wzi¹æ pod uwagê takie zagadnienia jak kolizje czy kontrola poprawnoœci (CRC). Chodzi mi po g³owie jakaœ maksymalnie uproszczona wersja TCP/IP lub czegoœ podobnego.



Czy s¹ jakieœ inne protoko³y, na których móg³bym siê oprzeæ? Jeœli to mo¿liwe to proszê o linki do stron z ich dok³adnym opisem.


Z góry dziekujê za odpowiedzi i ewentualne sugestie. Wszelka konstruktywna krytyka mile widziana :)



Wojtek.



U¿ytkownik "Wojtek" napisa³ w wiadomo¶ci

Jezeli to ma pracowac w master-slave (a tak rozumiem baze i rozne urzadzenia) to proponuje zapoznac sie z MODBUS'em. Jest dosc latwy i latwo jest sie na nim wzorowac, wymyslajac wlasne rozwiazanie + warstwa fizyczna RS485 :)

pzdr mIrO

Chodzi³o mi o to, ¿e urz±dzenia sterowane komunikuj± sie tylko z baz±, a nie z innymi urz±dzeniami. Urz±dzeniem mo¿e byæ np. przycisk na ¶cianie, który powinien wysy³aæ informacje o zwarciu styków natychmiast, bez czekania na to, czy centralka raczy sprawdziæ jego stan.

Wiêc nie bêdzie to master-slave.

Wojtek.

Czyli potrzebujesz jakis protokol multimaster. Ze wzgledu na ograniczona ilosc zasobow mozliwie najprostszy. Wlasnie nad czyms takim siedze (mam juz wersje master-slave, kombinuje jak dodac multimaster).

U¿ytkownik "Wojtek" napisa³ w wiadomo¶ci

A to ma byc hard reale time? Nawet w takich systemach sa maksymalne dopuszczalne opoznienia od wystapienia zdarzenia do reakcji na nie, wiec nie widze problemu jezeli chodzi o to. Uzytkownik nie zauwazy opoznienia rzedu

1/100 s, a jednoczesnie nie bedziesz miec kolizji. Trzeba pamietac o tym, ze usuwajac kolizje, tez trzeba stracic jakis czas... Moze zastosowac cos na ksztalt PDP ?

pzdr mIrO

Nie musi, ale czy nie by³o by fajnie, gdyby by³o? :) My¶la³em, ¿e czasy pollingu (zawalania ca³ego czasu procesora i sieci sprawdzaniem, czy co¶ siê zmieni³o) ju¿ dawno za nami. Z drugiej strony, co¿ innego on ma do roboty?

P.s. Mam i u¿ywam odbiornik podczerwieni pod³aczony do kompa przez COMa + program Girder sprawdzaj±cy non stop liniê na porcie szeregowym. Ale nie jest to fajne rozwi±zanie.

Wojtek

Jednak skanowanie moze byc najefektywniejszym rozwiazaniem. Zobacz jak elegancko to rozwiazano w 1-wire - masz cos takiego jak alarm. Teraz skanujesz wszystkie ID urzadzen z ustawiona flaga alarm i w efekcie masz liste urzadzen, ktorych stan musisz odczytac. Proste i skuteczne, a co wazniejesze nie robi kolizji. Z kolei przy multimasterze nie tylko musisz wysylac informacje, a co za tym idzie dbac o ew. kolizje, musisz takze pamietac kiste urzadzen, ktore ta informacja sa zainteresowane, czyli adresatow. A to rodzi mnostwo kolejnych problemow.

Oj, zdziwilbys sie. Zakladajac, ze nie masz sprzetowej obslugi w procku uzywanego protokolu to naprawde trzeba sie nizle nagimnastykowac, zeby np. jednoczesnie odbierac/nadawac informacje i np. generowac ton o okreslonej czestotliwosci, czy tez zagwarantowac kolejne przerwania w scisle okreslonych odstepach czasowych.

Tylko widzisz, architektura master-slave bardzo upraszcza wiele rzeczy, nawet w takich magistralach jak USB siê j± stosuje. Je¶li urz±dzeñ bêdzie sensowan liczba (max. kilkaset), to taki protokó³ bêdzie dobrym rozwi±zaniem. W centralce mo¿esz przecie¿ wyró¿niæ równolegle dzia³aj±cy system pollingu (kawa³ek FPGA albo osobny mikrokontroler), którego zadaniem bêdzie tylko cykliczne odpytywanie urz±dzeñ i przesy³anie zbiorczego strumienia danych dalej (do PC-ta, drugiego mikroprocesora itd.). Dziêki brakowi kolizji bardzo upraszcza siê protokó³, mo¿esz przyznawaæ poszczególnym urz±dzeniom gwarantowane pasmo, które mo¿esz dostrajaæ dynamicznie do bie¿±cych potrzeb, mo¿esz zagwarantowaæ maksymalny czas reakcji, mo¿esz nadawaæ priorytety i wiele, wiele innych rzeczy. Protokó³ multimaster bêdzie nieporównywalnie bardziej skomplikowany i tak na dobr± sprawê niczego nie wniesie.

Pozdrawiam Piotr Wyderski

a moze cos na ksztalt I2C? tylko zwolnic ja neico, jak amja byc wieksze odleglosci, ma tez opcje multimaster, no i jest standardowa. ew dac inne poziomy napiec

U¿ytkownik "mIrO" napisa³ w wiadomo¶ci

Przepraszam, chodzilo oczywiscie o PDK.

Thus wrote Wojtek snipped-for-privacy@interia.pl:

Od czego masz przerwania?

Paweł

U¿ytkownik "Wojtek" snipped-for-privacy@interia.pl napisa³ w wiadomo¶ci news:dhm56p$b77$ snipped-for-privacy@atlantis.news.tpi.pl...

Witam,

czy masz zamiar prowadziæ jak±¶ stronê z postêpami prac? Z przyjemno¶ci± bym po¶ledzi³ jak Ci idzie. Czy masz zamiar wprowadzaæ alternatywne (awaryjne) sterowanie?

Zwróæ uwagê, ¿e centralna baza wprowadza pojedynczy punkt awarii. Pad bazy jest równoznaczny z padniêciem ca³ego systemu. Co moim zdaniem dyskwalifikuje takie rozwi±zanie.

Kiedy¶ zastanawia³em siê nad stworzeniem systemu zarz±dzaj±cego ogrzewaniem (panele elektryczne). Obecne rozwi±zanie - w ka¿dym pokoju znajduje siê sterownik, na którym ustawia siê ¿±dan± temperaturê. Jest to rozwi±zanie dosyæ niewygodne. W ramach rozwa¿añ doszed³em do wniosku, ¿e centralne sterowanie (odczyt czujników, sterowanie przeka¼nikami...) by³oby zbyt niebezpieczne. Ca³y system musia³by wygl±daæ mniej wiêcej tak: w ka¿dym pokoju znajduje siê sterownik potrafi±cy dzia³aæ samodzielnie oraz mog±cy przyjmowaæ ewentualne rozkazy od centralnego sterowania. W ten sposób pad centrum: wymusza jedynie rêczne ustawianie temperatury w ka¿dym z pokoi. Pad poszczególnych urz±dzeñ odcina tylko pojedynczy pokój.

Inn± kwesti± jest ile czasu masz zamiar po¶wiêciæ na tworzenie systemu? I czy ma on obs³ugiwaæ ca³y dom? Gdy zobaczy³em wielko¶æ i z³o¿ono¶æ systemu jako ca³o¶ci (a to tylko samo ogrzewanie by³o), to stwierdzi³em, ¿e z moim do¶wiadczeniem elektronicznym po prostu sobie jeszcze nie poradzê.

pozdrawiam i ¿yczê sukcesów Alek

Użytkownik Piotr Wyderski napisał:

...

Jak to nie wniesie? A blask chwały i medal z kartofla? :)))))))))

Użytkownik Alek napisał:

Pytania pomocnicze:

  1. czy w PC-cie którego na codzień używasz i zapewne masz też ważne dane, używasz pojedynczego dysku (dysków) twardych, czy macierzy dyskowej?
  2. Co jest łatwiej zlokalizowac i naprawić - awarię w systemi arbitralnym czy rozproszonym?
  3. czym się różni uszkodzenie jednego modułu który np zwiera linie magistrali do masy z uszkodzeniem centrali która robi to samo?

I chyba nic wiêcej. :-) Protokó³ multimaster jest niezbêdny w systemach, w których porozumiewaj± siê ze sob± równorzêdne jednostki, co w tym przypadku nie zachodzi -- dane i tak musz± trafiæ do wyró¿nionego wêz³a, którym jest centralka, wiêc nadanie jej roli mastera jest naturalne.

Pozdrawiam Piotr Wyderski

Tak, wiem o tym. Ale...

Zale¿y mi na ³±czu radiowym a to raczej wymusza jeden kana³. W I2C s± 2 (dane i taktowanie). Wymaga³o by to wiêc konwertowania sygna³u synchronicznego na asynchroniczny i odwrotnie. Za du¿o roboty.

Tym nie mniej wykorzystanie samej logiki protoko³u wygl±da sensownie na pierwszy rzut oka.

Wojtek.

Ca³o¶æ ma charakter raczej eksperymentalny i s³u¿yæ jedynie zabawie. Na pocz±tek wystarczy, gdy bêdê w stanie kontrolowaæ 2 lampki nocne :) A pó¼niej siê zobaczy.

Wojtek.

Użytkownik Wojtek napisał:

Zupełne bezsensownie. I2C jest protokołem twadro związanym ze stanami zegara.

U¿ytkownik "A.Grodecki" <ag.usun snipped-for-privacy@modeltronik.com napisa³ w wiadomo¶ci news:dho9js$oap$ snipped-for-privacy@nemesis.news.tpi.pl...

Porównujesz produkt seryjny z produktem wykonanym przez elektronika amatora, który jest w fazie tworzenia. A pozatym to tworzê kopie zapasowe danych istotnych.

Tu siê zgodzê. Tylko czy twórca w±tku mo¿e sobie pozwoliæ na niemo¿no¶æ zapalenia ¶wiat³a w ca³ym domu do momentu usuniêcia usterki?

W tym co opisa³em, to pozosta³e modu³y przestaj± siê komunikowaæ z central±, natomiast dalej dzia³aj±, co jest równoznaczne z tym, ¿e tylko jedno pomieszczenie przestaje byæ ogrzewane.

pozdrawiam Alek

Użytkownik Alek napisał:

To bez znaczenia. Mówimy o rozwiązaniu, które nigdy nie będzie równie niezawodne jak prosty włącznik żarówki pracujący bezpośrednio na 230V. Trzeba to zaakceptować i przedsięwziąć możliwe środki zaradcze. A czy jest to 1 sztuka, czy 1000 sztuk - to zależy od konstruktora, czy 1 sztukę projektuje równie sumiennie jak urządzenie do produkcji.

Wydaje mi się, że w takim ukłafdzie lepiej jest poprzestać na prostym, tanim i niezawodnym, ORAZ DAJĄCYM TEN SAM EFEKT regulatorze grzejnikowym (głowicy termostatycznej). Robiąc system u siebie zacząłem go wdrażać już na etapie projektowania instalacji wodnej. Mam porozdzielane sekcje, kilka pomp sterowanych indywidualnie, zawory klapowe, kontrolę nad kotłem gazowym. Czujniki temperatury, komputery i bajery nie byłyby satysfakcjonująco efektywne, gdybym postanowił po prostu zaadoptowac klasyczną instalację. W tym momencie poprzestałbym na Eurosterze za 200zł.

Zakładam, że mój system za kilkanaście (oby) lat może zacząć się powoli sypać. Co zrobię? To samo co normalnie się robi przy remnoncie domu - wymienię elektronikę albo jej część na nową.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required