logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jaką magistralę danych wybrać do domowej automatyki? Szukam standardu i rozwiązań

pidpawel 05 Sty 2008 21:07 6894 38
Najlepsze odpowiedzi

Jaką magistralę i protokół wybrać do domowej automatyki z wieloma mikrokontrolerami i modułami odczytu/zapisu bez centralnego komputera?

Do takiej domowej automatyki najlepiej wybrać RS485, a jako gotowy protokół rozważyć Modbus RTU [#4719835] [#4820163] To rozwiązanie daje dużą odporność na zakłócenia i duży zasięg; w wątku podano użycie MAX485, polecono też MAX487 (do 128 urządzeń), a wspomniano nawet o transceiverach „1/8” dla 256 węzłów [#4661923] [#4676540] [#4719835] W praktyce warto prowadzić skręconą, najlepiej ekranowaną parę i unikać rozgałęzień/gwiazd, bo przy nieskręconym kablu transmisja padła już na 4 m, a na skrętce działała na 770 m [#4820163] [#4723460] Zasilanie lepiej traktować osobno od danych albo podać wyższe napięcie i stabilizować je przy modułach, bo na samej skrętce pojawiają się spadki napięcia [#4719835]
Wygenerowane przez model językowy.
REKLAMA
  • #1 4661796
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    Witam!
    Ludzie powiedzą że sporo jest na forum o tym, ale to co znalazłem to jest nic. Szukam już 2. dzień...

    Więc tak: Chcę puścić w domu magistralę danych. 1 magistrala dla wszystkiego - puszczone skrętką 8przewodową(2:12V;1:5V;3:GND;2szyna). Do szyny urządzenia typu slave(gniazdko, a właściwie układ włącznika gniazdka, czyli urządzenie, którego nie odpytuję), master(wyłącznik światła,...,urządzenie, które może tylko wysyłać dane) master/slave(wyświetlacze,sterowniki,RTC,pamięci,... cały galimatias- z urządzeń można czytać i można zapisywać)
    Chcę wykorzystać jakiś standard, w którym mogę korzystać z już zrobionych rozwiązań, jako przykład ds18b20,24c32,... Oczywiście nie musi to być warunkiem. Mogę dać przecież mikrokontroler do kilku np ds18b20 i z niego odczytywać temp z kilku miejsc.
    Arbitraż(nie wiem jak to ma się w sumie nazywać), a właściwie sposób odpytywania następujący:
    Każde urządzenie ma unikalny adres. Urządzenia mają adresy pogrupowane. np od 10 do 60 - slave(podgrupy, tzn czy to będą czujniki temp, czy wilgotności to już się nie liczy) itd.
    Odpytywanie w sposób następujący: Przykładowo: 1-10 -master,30-50master/slave. Podpięte 3master,2master/slave. Odpytuje 1,2,3 - te ok zgłaszają, piszą itp :P odpytuje 4 -pusto przechodzi do 30 odpytuje itp. Jeśli znalazłby to po prostu przedłużyłby odpytywanie o tyle ile znajdzie. Czyli odpytuje do pierwszego nie znalezionego. Mam nadzieję rozumiecie ;)
    1 urządzenie na magistrali pełni rolę "odpytywacza" i nic więcej.
    Nie stosuję komputera jako jednostki sterującej. Może kiedyś jedynie jako monitoring- nie powinien on pełnić jakiejś funkcji głównej. Wszystkim mają zarządzać mikrokontrolery, ale nie ma być centralnego sterownika. Tylko ten odpytywacz :P

    Zastanawiam się nad i2c(podobno to trzeba wykluczyć), rs-485,1wire itp. Co polecacie do tego? Czy muszą być do tego jakieś konwertery? Wolałbym nie, choć 2zł za konwerter, a możliwość lepszego wykorzystania to nic ;) Jednak 2x250 to jest 500 więc... No ale są plusy i minusy. I o tym też mi powiedzcie. Chętnie przyjmę - tu jak i na maila opisy gotowych rozwiązań.

    Zachęcam do dyskusji. //Cenne rady nagrodzę "pomógł", gdyż mogą one stanowić ważną treść, nie tylko dla mnie, ale i dla innych.

    Pozdrawiam
    Paweł
  • REKLAMA
  • #2 4661923
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Robię coś podobnego i robię to w oparciu o MAX485 czyli magistrala RS485. Na dobrą sprawę dwa przewody do całej komunikacji choć ja w założeniu daję 4 (2 dodatkowe do zasilania). Zasięg wyrażany w kilometrach. Przyzwoita odporność na zakłócenia. Czego można chcieć wiecej w domowych warunkach. Co do protokołu transmisji to trudno coś konkretnego zaproponować nie znając szczegółów. Ja robię jednego mastera, który wysyła dane i inicjuje wysyłanie przez inne moduły i po sprawie. Kolejna sprawa to fakt, że ma być coś jeszcze dokładane ale niechcący takie rozwiązanie okazało się w moim przypadku bardzo praktyczne. Master mierzy temperatury i wystawia je na magistrali dla innych modułów, które w założeniu służyły tylko do ich pokazywania. Ale w sumie nic nie stoi na przeszkodzie aby te temperatury były wykorzystywane przez modyły sterujące na podstawie tych temperatur.

    Generalnie idea jest słuszna. Pozostaje ją jeszcze dobrze zrealizować w praktyce.

    --
    pozdrawiam
  • REKLAMA
  • #3 4662102
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    Mi zależy na 2 sprawach:
    chcę móc dokładać urządzenia w praktycznie dowolnej chwili- muszę znać tylko adres pod jaki mogę się podłączyć
    1 magistrala

    Przyszły mi do głowy jeszcze 2 pytania:
    Jak podłącza się urządzenia w rs485? Tak jak w i2c?
    i 2. to właściwie problem :P Głupio będzie jak stracę 1 urządzenie - dajmy na to z pierwszego adresu master- według mojego protokołu stracę wszystkich masterów... Trzeba będzie chyba zrobić "listę gwarantowanych" ;)
  • REKLAMA
  • #4 4662173
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Wszystko zależy od programu. Ja w swoim układzie nie będę robił czegoś takiego jak adresowanie. Poprostu dane będą wystawiane na magistralę z kodem i odbierane przez wszystkie układy. Urządzenia podrzędne będą odbierały wszystko - całą porcję danych i wpisywały do tablicy. Jednak pierwszą rzeczą będzie sprawdzenie kodu. Jeśli kod będzię zaimplementowany w danym module to wykonane zostaną stosowne operacje na danych. Jeśli kodu nie będzie to tablica zostanie wyczyszczona i slavy będą czekać dalej na dane. Konkretnie to wygląda to tak, że wystawiam kod np. 02 + dane i odbierają go układy, które mają za zadanie wyświetlać temperaturę oraz układy sterujące na podstawie temperatury. Inne moduły poprostu odrzucą dane.

    --
    pozdrawiam
  • #5 4662182
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    Ok, a jak realizujesz odczytywanie danych? Chcę jak widzisz zrobić coś podobnego, i tylko takie szczególiki jak ten, co podałeś mi zostały tzn. czy ma wczytać w tablicę, czy w lot przetwarzać :P
  • Pomocny post
    #6 4662258
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam ponownie

    Ja zdecydowanie obstaję za wczytaniem do tablicy. Łatwiej wtedy o jakąś kontrolę. Sprawdzę poprawność danych, zrobię z nimi co trzeba i będę czekał na kolejną paczkę. Dane oczywiście ładowane do tablicy przerwaniem a obsługa danych w normalnym toku programu. Stąd tablica. Gdyby coś się z jakichś powodów zbyt długo wykonywało to nie stracę danych.

    Sadzę, że nie powinno być takich sytuacji choćby dlatego, że ilość danych w jednej sekundzie nie będzie aż tak duża. Jedank wolę dmuchać na zimne. A jak się program wyrobi (a) wyrobi to i tak będzie wszystko w porządku.

    --
    pozdrawiam
  • #7 4663076
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    A inna sprawa - gdy jeden z masterów będzie chciał odczytać coś ze slave to jak ja to mam zrealizować? Najlepiej chyba, żeby urządzenie, któremu przydzielono głos jakoś sygnalizowało, że zrealizowało wszystkie potrzebne transmisje i można pytać dalej. Tylko jak? Czy po każdej transmisji ma być wysyłana paczka do odpytytwacza?
  • #8 4663998
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Można to zrobić w ten sposób, że jeden moduł będzie tylko do sterowania całą resztą. Można to też rozwiązać np. w ten sposób, że "nadrzędność" będzie przekazywana po zakończeniu wszystkich operacji przez dany moduł. Generalnie rozwiązań jest wiele a wszystko zależy od potrzeb.
    Oczywiście można też zrobić coś na zasadzie numeracji kolejnych modułów.
    Trudno jednoznacznie coś doradzić jeśli nie zna się dokładnie zadań projektowanego systemu. Ja wybrałem taki jaki wybrałem. W moim przypadku rozwiązanie okazało się optymalne.

    --
    pozdrawiam
  • #9 4664875
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    Ja chcę uniknąć występowania jakiegoś układu nadrzędnego. Już sam układ odpytywacza mi się nie podoba :P
    Właśnie chcę tę nadrzędność przekazywać tak jak mówisz, tylko nie wiem jak to zrealizować. Tzn wygląd ramek mam jeszcze nie obmyślony ;( Jak wygląda to u Ciebie/u Was?
    Numerację zrobię - każde urządzenie będzie miało adres. ;)
    Jeszcze jedna rzecz mi chodzi po głowie. Czy opłaca się zrobić urządzenie do przechowywania stanu czujników? Tzn dla np temperatur to będzie wyglądało tak, że czujniki będą wysyłać swoje temperatury do urządzenia przechowywującego. Będzie to dobre o tyle, że nie będziemy musieli znać adresu urządzenia(czujnika) tylko adres "bazy" temperatur. Baza powinna również wyznaczać średnie temp, max, min, itp. Jak sądzicie? Robić to? Oczywiście dane byłyby nie tylko przechowywane tymczasowo, ale rejestrowane, wyświetlane, dystrybuowane i w ogóle szok :P
  • Pomocny post
    #10 4670367
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Nad sposobem przekazywania nadrzędności trzeba się zastanowić. Problem nie jest łatwy. W końcu może wystąpić sytuacja, że będzie brak jakiegoś modułu "po drodze" i wtedy wszystko stanie. Trzeba coś takiego uwzględnić. W sumie dlatego przyszedł mi do głowy pomysł z urządzeniem/modułem zarządzającym wszystkim. W sumie zadaniem tego modułu po włączeniu byłoby sprawdzenie co faktycznie jest na magistrali - jakie urządzenia i nadawanie im kolejno nadrzędności. Po wykonaniu przez dany moduł przewidzianych akcji każdy moduł zwracałby kod potwierdzający i po kłopocie.

    Co do urządzenia przechowującego... Hm... jeśli chesz robić jakąś historię zmian wspomnianej temperatury to wskazane byłoby coś takiego zrobić bo odciążyłbyś pozostałe elementy systemu a przy okazji ograniczyłbyś koszty jeśli jednak urządzenie ma wskazywać bieżący stan urządzeń to chyba jest to zbędne.

    Nie wiem jaki system dokładnie planujesz ale takie przesadne rozdrabnianie się nie ma sensu choćby ze względuna na sytuację, że magistrala RS485 ma ograniczenia elektryczne do 32 urządzeń. Jak będziesz urządzenia robił w postaci jeden czujnik jeden adres to za jakiś czas może być z tym problem. System okaże się (bardzo)przydatny bo można na tym zrobić np. alarm do domu ale nie będzie miejsca na magistrali na rozbudowę. Jestem zdania, że lepiej (w miarę możliwości) grupować pewne elementy np. czujniki temperatury, wyjścia przekaźnikowe. Nigdy nie wiadomo co przyjdzie do głowy jutro.

    --
    pozdrawiam
  • #11 4671517
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    32 urządzenia to dla mnie stanowczo za mało ;( Trzeba poszukać czegoś "mocniejszego" ;) Tak 200 urządzeń to minimum. Co prawda niektóre czujniki będę łączył do jednego mikro, ale i tak może wyjść dużo. Z przekazywaniem głosu mam już obmyślone. Tzn dzielę urządzenia na 3 grupy: master,master/slave,slave. Odpytuję tylko te z opcją master ;) Każda grupa ma przypisaną pulę adresów. Podłączone urządzenia numerowane są kolejno. Jako, iż to mój system to nie będzie problemów z tym adresowaniem. Urządzenie odpytujące odpytuje każdy moduł z opcją master czy chce mówić. Jeśli tak to odsyła, że tak, jeśli, nie to pyta dalej, ale jeśli przez powiedzmy 20ms nie będzie odpowiedzi to automatycznie "grupa" jest zakańczana i urządzenie przechodzi to odpytywania następnej grupy. Opcja typu przekaż bilet, nie wchodzi w grę.
    To logowanie chyba jednak zrobię inaczej ;) Po prostu podepnę komputer, który będzie rejestrował cały ruch, albo odpytywał 1raz/minutę wszystkie czujniki o ich tmp. Ewewntualnie mikrokontroler, karta SD i tam będzie składowane wszystko. Gnębi mnie jeszcze problem - jak dać do zrozumienia modułowi nadrzędnemu, że transmisja skończona? Czy wysłać do niego pakiet? To chyba odpada. Inne urządzenia też muszą wiedzieć kiedy koniec transmisji - być może one dostaną opcję mówienia, a jej "nie zauważą". Jeszcze kilka rzeczy mam do przemyślenia, ale to stopniowo ;) Zagadałbym na gg, ale jakoś wolę na forum - bo wszyscy mogą czerpać wiedzę.
    Pozdrawiam
    Paweł
  • Pomocny post
    #12 4673112
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 570
    Dobra rada 1 master reszta slave'y master pyta wszystkie i wykonue operacje na modułach jednakowa mapa we wszystkich mdułach master rozsyła aktyalizacje...
  • #13 4674338
    kocla
    Poziom 14  
    Posty: 92
    Pomógł: 7
    Radziłbym uzyc do transmisji rs485 i protokol MODBUS moim zdaniem znikna wszelkie watpliwosci
  • #14 4675376
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    No fajnie... Ale powiem tak ;) Internet nie posiada mastera, a nikt nie narzeka ;) Co prawda, w takim układzie jak próbuję to każde urządzenie będzie musiało pełnić określoną funkcję. Jedyne co mi nie pasuje to to, że aby zmienić funkcję urządzenia trzeba będzie go re programować.
    Zaraz poszukam o modbus ;) Jeszcze jedno pytanie mam. Na 485 - te 32 urządzenia to max? A magistrala na 128 urządzeń? Jaki jest najtańszy konwerter sygnałów dla 485?
  • #15 4675694
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Rs485 może 32 urządzenia sterować tylko dlatego że nadajniki nie maja odpowiedniej wydajności prądowej (standartowo wg specyfikacji). Zastosowanie 'lepszych' odbiorników lub mocniejszych nadajników pozwoli sterować większą liczbą.
  • #16 4675716
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    A jaka jest maksymalna liczba? Chcę jednak stosować te najtańsze, bo może być ich dużo, a budżet ograniczony. A inne protokoły/systemy transmisji?
  • Pomocny post
    #17 4676540
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Zamiast MAX485 można zastosować MAX487 (do 128 urządzeń). Cena podobna. Przy takiej ilości jaką przewidujesz to nawet jak te układy będą po 2 złote to suma sumarum i tak wyjdzie sporo kasy. A to tylko same układy do transmisji, a co z resztą. Dlatego sugerowałem w miarę możliwości grupowanie pewnych elementów systemu. Przy tej ilości czujników i powiedzmy 2km kabla to element systemu masz co 10m. Co Ty chcesz na tym robić ? Uruchamiasz fabrykę samochodów ?! W domu czy nawet bloku 10 piętrowym upchnięcie 2km kabla będzie kłopotliwe. Chyba z kolegów nie robisz sobie jaj ?

    --
    pozdrawiam
  • #18 4678858
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    Napisałem w którymś temacie, że w przyszłości może się okazać, że pożądanym będzie, aby drugi dom podpiąć do tej samej magistrali. Nie robię sobie jaj, tylko po prostu pierwszy raz w życiu mam do czynienia z tego rodzaju projektem. Robię błędy i się do nich przyznaję ;) Jestem uparty więc jak coś to mnie prostujcie :P
    Właściwie to do tych 128 urządzeń już mnie prawie przekonaliście ;) Jeśli o drugi dom chodzi to być może zrobię jakiegoś pośrednika ;) Zaraz czytam o tym układzie, co podałeś. Dzięki za wskazówkę.
    Jeśli o kasę chodzi - nie mówię, że zrobię wszystko od razu :P Koszty się rozłożą, a i tak wyjdzie taniej niż taki sam gotowy ;)

    //PS Zaraz po przydzielam pomógł bo zapomniałem :P
  • #19 4683010
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    Rozwiązaniem problemu maksymalnej ilości modułów mogłoby być użycie nadajników/odbiorników pracujących na 433MHz. No fakt, drogo. No i w niektórych sytuacjach mogą wystąpić kłopoty z transmisją

    Nie próbuję atakować. Ale mimo wszystko zbudowanie systemu z tylu klocków to spore wyzwanie. Jednak w żadnym razie nie zniechęcam do budowy czegoś takiego. Wręcz przeciwnie.

    --
    pozdrawiam
  • #20 4683158
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    Transmisja radiowa odpada. Po pierwsze bardzo łatwo zakłócić, lub podsłuchać.
    Ze wyzwanie to wiem ;) Ale mi na czasie nie zależy. Ważne, żeby było. ;) Może być za pół roku, może być za 2 lata ;)
    PS Lubię wyzwania i właśnie dlatego się uczę.
  • #21 4683297
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 570
    Miałem przyjemność projektować sterownik działający na rs485 wymaga troszkę zabawy z samym uartem. Były to tylko 2 urządzenia 1 master i jedno slave ale zabawy jest z tym sporo wieć ważny jest dobry plan.
  • #22 4683310
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Poczytaj o transmisji przez sieć energetyczną.
  • #23 4683580
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    Transmisja po sieci energetycznej jest droga. A o kable się nie martwię. Dużo jest już pociągniętych. Co prawda nikt nie wie skąd i dokąd, ale jak robić magistralę to po prostu zepnę razem i się będę byle gdzie podpinał :P

    Być może w swoim projekcie transmisję zrobię programowo. Nie konieczne uart, chociaż to na pewno dobry pomysł.
  • REKLAMA
  • #24 4684770
    Kuniarz
    Moderator Projektowanie
    Posty: 4520
    Pomógł: 371
    Ocena: 825
    Też mam na tapecie podobny temat , zmiana mieszkania i takietam i chciałbym "na nowym" zrobić namiastkę budynku inteligentnego. Przyśnił mi się taki plan, żeby jednak końcówki komunikowały sie z bazą radiowo (tak, tak, też wolę 1 mastera i 200 slejwów), co więcej - chciałbym wypróbować wariant z zasilaniem końcówek z np. akumulatorków od komórek - odpada w tym momencie ciągnięcie zasilania - ale to takie luźne pomysły póki co.
    Temat bardzo ciekawy, będę śledził i może wtrącał po 0,03 PLN czasem ;-)
    Pomogłem? Kup mi kawę.
  • #25 4690516
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    W kwestii zasilania to ja widzę to w ten sposób, że z magistralę idzie zasialnie. Sęk w tym, że nie ma tam 200 urządzeń tylko masymalnie 10-11.

    --
    pozdrawiam
  • #26 4691091
    Kuniarz
    Moderator Projektowanie
    Posty: 4520
    Pomógł: 371
    Ocena: 825
    No ja wymyśliłem w ten sposób, że urządzenia "slave" byłyby zasilane z akumulatorków od komórek, układy maksymalnie energooszczędne, pomiar napiecia zasilania, spadek poniżej minimum sygnalizowany np. czerwoną migającą kontrolką. Wyczerpany akumulatorek wkładamy do "bazy" w której się ładuje, obok np. 5-ciu innych akumulatorów gotowyych do pracy.
    Tak więc, w razie gdybyśmy np. zauważyli migającą na czerwono didkę przy np. włączniku oświetlenia (bardzo rozbudowanym ofkors ;-) ) to wyciągamy z niego aku, wkładamy nowy świeżutki prosto z "bazy", po czym do bazy wkładamy rozładowany, który po naładowaniu posłuży np. jako zasilanie kontrolera podwojnego gniazdka nr. 28 w pokoju nr.3 ;-)
    Pomogłem? Kup mi kawę.
  • #27 4692432
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    Jeśli o zasilanie u moim przypadku chodzi to myślę, że na początek zasilanie będzie szło magistralą, jakiś mocniejszy zasilacz w środku domu dam. A później, każde bardziej prądożerne urządzenie będzie miało po prostu wtyczkowy. ;) Ewentualnie jakiś własny back-up owy zasilacz na aku.
  • #28 4692828
    Kuniarz
    Moderator Projektowanie
    Posty: 4520
    Pomógł: 371
    Ocena: 825
    No właśnie, pod warunkiem, że będziesz prowadził magistralę w formie kabla. W przypadku transmisji radiowej to kabel odpada.
    Chociaż z drugiej strony i tak będę remontował mieszkanie, więc dodatkowe kable KAT5 położyć to nie problem.
    Pomogłem? Kup mi kawę.
  • #29 4694156
    pidpawel
    Poziom 26  
    Posty: 1025
    Pomógł: 13
    Ocena: 18
    Ja kable mam już częściowo położone, a reszta to pikuś ;) Transmisja radiowa odpada. Można podsłuchać, a poza tym zakłócić. Nie na moje nerwy :P
  • #30 4695692
    Kuniarz
    Moderator Projektowanie
    Posty: 4520
    Pomógł: 371
    Ocena: 825
    W takim razie podziel się doświadczeniami :)
    Kabel dwu żyłowy, telefoniczny czy skrętka ? Nośnik RS 485 ? Protokół jakiś typowy czy sam rzeźbisz ? Jak rozwiążesz włączanie (albo odłączanie) gniazdek ? Jak regulujesz oświetlenie ?

    sorry za grad pytań, ale mój projekt też już musi zacząć powstawać, a po co powielać błędy albo przechodzić przez ślepe uliczki ;-)
    Pomogłem? Kup mi kawę.

Podsumowanie tematu

✨ Dyskusja dotyczy wyboru magistrali danych do domowej automatyki z wykorzystaniem jednej magistrali na bazie skrętki 8-żyłowej, z podziałem na urządzenia typu master, slave i master/slave. Proponowanym rozwiązaniem jest magistrala RS485 z układami MAX485 lub MAX487, które umożliwiają komunikację na duże odległości i obsługę do 128 urządzeń. Wskazano na protokół MODBUS jako sprawdzone i powszechnie stosowane rozwiązanie dla sterowania i odczytu danych. Poruszono kwestie adresowania urządzeń, arbitrażu i sposobu odpytywania, z sugestią implementacji unikalnych adresów i grupowania urządzeń. Dyskutowano o sposobie odbioru danych – zalecane jest wczytywanie danych do tablicy w pamięci z obsługą przerwań, co ułatwia kontrolę i przetwarzanie. Poruszono temat zasilania magistrali – rekomendowane jest zasilanie magistrali napięciem około 16V z lokalnymi stabilizatorami (np. 7805 lub przetwornicami) przy urządzeniach, aby uniknąć spadków napięcia na długich odcinkach kabla. Wskazano na konieczność stosowania kabla ekranowanego i skręconego (np. UTP kat.5) dla poprawy odporności na zakłócenia i stabilności transmisji. Omówiono topologię magistrali – tradycyjnie magistrala powinna być liniowa bez rozgałęzień, jednak w małych mieszkaniach dopuszczalne jest połączenie w gwiazdę z krótkimi odcinkami. Poruszono także kwestie skalowalności systemu, z możliwością podłączenia nawet do 200 urządzeń, oraz rozważania nad modułem centralnym do zarządzania i rejestracji danych (np. temperatury). Alternatywne rozwiązania, takie jak transmisja radiowa czy po sieci energetycznej, zostały odrzucone ze względu na zakłócenia i bezpieczeństwo. Całość wymaga indywidualnego dopasowania protokołu i arbitrażu do potrzeb projektu, z uwzględnieniem stabilności, łatwości rozbudowy i kosztów.
Wygenerowane przez model językowy.
REKLAMA