Elektroda.pl
Elektroda.pl
X
Relpol
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88)

kamasz 16 Cze 2012 03:08 15822 14
  • SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88)
    Witam,
    Dawno, dawno temu zrobiłem sobie system sterowania i alarmowania z powiadamianiem przez telefon komórkowy (może jeszcze ktoś pamięta Ericsson'a A1018). System ten ma cechy sieci rozproszonej tzn. składa się z kilku modułów sterujących połączonych ze sobą magistralą RS-485. Moduł telefonu komórkowego (nazwałem go SterGsm) pełni m.in. rolę konwertera DTMF/RS-485 i pozwala na sterowanie w czasie rzeczywistym (podczas połączenia telefonicznego). Parę lat temu rozbudowałem go o moduł sterowania przez Internet. Urządzenie SterNet-4PK powstało na prośbę jednego z moich kolegów i jest trochę zubożoną ale w pełni funkcjonalną wersją mojego pierwotnego sterownika.
    .............................................................................................................
    Polecenie zmiany stanu urządzenia o zadanym numerze (od 01 do 99) powoduje wysłanie odpowiedniego rozkazu przez wyjściowy port RS-485 sterownika.

    Parametry portu wyjściowego RS-485:prędkość 9600 bps, 8N1
    Format wysyłanych rozkazów:
    prefix - #
    nr urządzenia - dwie cyfry z zakresu 01~99
    zadany stan - 0 (wyłącz) lub 1 (włącz)

    Przykład rozkazu (ciąg czterech znaków):
    #021 - włącz urządzenie nr 02
    #370 - wyłącz urządzenie nr 37

    Taka koncepcja pozwala na fizyczne rozdzielenie urządzeń sterujących od sterownika, podział ich na moduły i rozmieszczenie w dowolnej od siebie odległości ograniczonej jedynie dopuszczalnymi parametrami magistrali RS-485.

    Liczba 99-ciu urządzeń typu „włącz-wyłącz” jest w praktyce wystarczająca do większości zastosowań.

    SterNet można również wykorzystać do własnych aplikacji traktując go jako prosty konwerter rozkazów przesyłanych przez sieć Ethernet (do dyspozycji jest 99x2=198 kombinacji) na sygnały magistrali RS-485.

    Wersja SterNet-4PK ma wbudowane 4 przekaźniki z wyjściami typu NO co pozwala na bezpośrednie ich wysterowanie bez dołączania do magistrali RS-485 dodatkowych modułów.
    .............................................................................................................
    Sterowanie (do 99 wyjść, w tym 4 wbudowane przekaźniki) może być realizowane przez:

    a) dowolną przeglądarkę http

    b) z klawiatury lokalnej
    (aby nie było konieczności użycia komputera)

    c) z klawiatury lokalnej drugiego SterNeta
    Sterownik jest jednocześnie Serwerem i Klientem dla drugiego takiego urządzenia, co umożliwia sterowanie - bez konieczności użycia komputera - innym sterownikiem pracującym w oddalonej lokalizacji ale spiętej np. mostem Wi-Fi. W praktyce pozwala to na sterowanie z domu urządzeniami, które są np. w oddalonym garażu i odwrotnie.

    d)port wejściowy RS-485 sterownika




    (jako alternatywna droga sterowania np. wykorzystując opisany wcześniej SterGsm)
    .............................................................................................................
    Opis wyprowadzeń:

    SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88)

    1. dioda sygnalizacji włączenia przekaźnika nr1
    2. dioda sygnalizacji włączenia przekaźnika nr2
    3. dioda sygnalizacji włączenia przekaźnika nr3
    4. dioda sygnalizacji włączenia przekaźnika nr4
    5. dioda zielona portu LAN (świecąca sygnalizuje zestawienie połączenia sieciowego)
    6. dioda żółta portu LAN (migająca sygnalizuje transfer danych)
    7. dwukolorowa dioda stanu pracy:
    zielona sygnalizuje pracę w trybie Serwer
    czerwona sygnalizuje pracę w trybie Klient
    8. listwa łączeniowa wyjść przekaźników NO (5A/230AC)
    8.1. C1 (przekaźnik nr1)
    8.2. NO1 (przekaźnik nr1)
    8.3. C2 (przekaźnik nr2)
    8.4. NO2 (przekaźnik nr2)
    8.5. C3 (przekaźnik nr3)
    8.6. NO3 (przekaźnik nr3)
    8.7. C4 (przekaźnik nr4)
    8.8. NO4 (przekaźnik nr4)
    9. gniazdo RJ-45 do podłączenia sieci LAN
    10.gniazdo zasilacza DC +12V/500mA (wtyk 5,5/2,1 „+” w środku, „-” na zewnątrz)
    11. gniazdo RJ-45 do podłączenia klawiatury (matryca 4x3)
    12. przycisk przywrócenia do ustawień fabrycznych (Reset)
    13. listwa zasilania i portów RS-485
    13.1. +12V zasilanie (fizycznie połączone z „+” gniazda DC nr10)
    13.2. COM masa zasilania (fizycznie połączona z „-” gniazda DC nr10)
    13.3. TX-A (port wyjściowy RS-485)
    13.4. TX-B (port wyjściowy RS-485)
    13.5. RX-A (port wejściowy RS-485)
    13.6. RX-B (port wejściowy RS-485)
    .............................................................................................................
    Poniżej kilka fotek z montażu.

    płytka drukowana dwustronna (obszar wycięty przeznaczony jest na klawiaturę)
    SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88) SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88)

    klawiatura (matryca przycisków 4x3) wbudowana w gniazdo natynkowe RJ-45
    SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88)

    widok zmontowanej płytki w obudowie KM-38
    SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88) SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88)

    odpowiedź na "ping"
    SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88)

    okno przeglądarki z ustawionym w sterowniku podglądem 4 wyjść (przekaźniki)
    SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88)

    okno przeglądarki z ustawionym w sterowniku podglądem 99 wyjść
    SterNet-4PK Sterownik internetowy do 99 wyjść (ENC28J60 + ATmega88)

    .............................................................................................................
    Dołączone pliki ze schematem ideowym, pcb i szczegółową instrukcją obsługi można dodatkowo pobrać z tej strony Link
    .............................................................................................................
    Obsługa jest prosta a koncepcja sieci rozproszonej pozwala na elastyczne dodawanie lub przemieszczanie modułów sterujących.
    Jednak główną przyczyną tego, że zdecydowałem się na przedstawienie tego projektu jest chęć pokazania, że te wszystkie funkcjonalności udało mi się zaimplementować w kontrolerze ATmega88. Cały program (w tym oczywiście TCP/IP) pisałem w assemblerze i zostało mi jeszcze kilka wolnych bajtów pamięci :-).
    Pozdrawiam


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • Relpol
  • #2 16 Cze 2012 11:55
    69696
    Użytkownik usunął konto  
  • Relpol
  • #3 16 Cze 2012 12:55
    hexen2k
    Poziom 16  

    Widzę że autor zastosował gniazdo RJ45 z wbudowanym trafo. Gdzie można takie zakupić w przystępnej cenie ?

  • #6 16 Cze 2012 16:34
    22053
    Użytkownik usunął konto  
  • #7 16 Cze 2012 17:05
    kamasz
    Poziom 10  

    Witam,

    Kolego
    Jestem zwolennikiem rozwiązań opartych na sieci rozproszonych modułów sterujących i tak pracują u mnie od lat moje urządzenia. Taka koncepcja właśnie eliminuje konieczność stosowania kilku, kilkunastu czy kilkudziesięciu urządzeń ze zwykle ograniczoną do kilku ilością wyjść sterujących i umożliwia zastosowanie prostych modułów o dowolnym przeznaczeniu, umieszczonych w różnych lokalizacjach. Opisany sterownik powstał na prośbę mojego kolegi, który uparł się aby moduł sterujący (w tym przypadku z 4-ema elementami wykonawczymi w postaci przekaźników) był w tej samej obudowie co sterownik. Spróbuj spojrzeć na to rozwiązanie w ten właśnie sposób.

    "maxi128"
    Tak, mógł być max490 ale miałem dużo pojedynczych.
    W praktyce (bez wchodzenia w szczegóły) do portu wyjściowego RS-485 podłączone są tylko moduły sterujące pełniące funkcję odbiorników (bez potwierdzania wykonania rozkazu). Inaczej zachowuje się port wejściowy. To co wchodzi jest analizowane przez procesor i jeśli jest to rozkaz zmiany stanu któregoś z urządzeń to zapisuje to w swojej pamięci a rozkaz zmiany wysyła przez port wyjściowy. Ja mam do tego wejścia podłączone wyjście portu sterowania przez telefon komórkowy (SterGsm) o czym wspominałem w opisie. Rozszerzając trochę temat to z kolei do portu wejściowego SterGsm podłączony jest moduł "wejść" (monitorujący stan czujek, krańcówek itp.) i w wersji rozszerzonej u siebie mam m.in. dodatkowo podgląd przez Internet stanu do 99 wejść.
    I jeszcze uwaga do Kolegi poprzedniego. W ten prosty sposób urządzenie ze sterownika 99 wyjść potrafi zyskać dodatkową funkcjonalność - podgląd stanu 99 wejść.
    W przypadku awarii SterNeta (odpukać) wejścia modułów sterujących wystarczy przepiąć do portu wyjściowego SterGsma i sterowanie nadal działa.

    "hexen2k"
    Popełniłem mały błąd przez zastosowanie tych gniazdek. Nie zwróciłem uwagi na to, że po zamontowaniu na płytce trzeba będzie użyć cienkiego wkrętaka i podważyć od spodu zaczep wtyku aby wyjąć kabel sieciowy lub klawiatury.

    Pozdrawiam

  • #8 17 Cze 2012 20:09
    jaglarz
    Poziom 23  

    Można liczyć na udostępnienie wsadu do mikrokontrolerów?

  • #9 18 Cze 2012 00:26
    kamasz
    Poziom 10  

    Cytat:
    Można liczyć na udostępnienie wsadu do mikrokontrolerów?

    Proszę o kontakt przez PW lub email.

  • #10 18 Cze 2012 07:22
    zgierzman
    Poziom 18  

    kamasz napisał:
    Format wysyłanych rozkazów:
    prefix - #
    nr urządzenia - dwie cyfry z zakresu 01~99
    zadany stan - 0 (wyłącz) lub 1 (włącz)
    Dlaczego nie stosujesz sumy kontrolnej? I dlaczego nie potwierdzasz odebrania/wykonania rozkazu?
    Sporo działam z RS485 i wiem, że zdarzają się uszkodzone ramki. Kombinowałem z ekranowaniem, wstępną polaryzacją linii itp. ale nigdy nie udało mi się całkowicie wyeliminować błędów.
    Ja stosuję protokół MODBUS, stąd wiem kiedy ramka przychodzi uszkodzona.

  • #11 18 Cze 2012 21:36
    dominon
    Poziom 18  

    A ja mam pytanie techniczne co do płytki. Ocynowana jest ładnie a czy otwory też masz metalizowane bo przy scalakach nie widać lutowania z dwóch stron bo zasłaniają podstawki. Jeśli tak to jakim sposobem były cynowane jeśli to nie tajemnica.

  • #12 20 Cze 2012 02:17
    kamasz
    Poziom 10  

    "zgierzman"

    Cytat:
    Dlaczego nie stosujesz sumy kontrolnej? I dlaczego nie potwierdzasz odebrania/wykonania rozkazu?

    Dziękuję za zwrócenie uwagi na ten aspekt. Problem zastosowania kontroli wykonania polecenia musi być oczywiście uwzględniony przy wyborze takiego rodzaju sterowania.
    Po prostu priorytetem było dla mnie zmieszczenie całego stosu TCP/IP i reszty podstawowych funkcji w ATmedze88 i nie miałem już miejsca na zaawansowaną obsługę protokołu do wymiany danych w magistrali RS485. W praktyce błąd odbioru ramki przez moduł sterowania przekaźnikami jest pomijalnie mały bo moduł jest kontrolowany bezpośrednio z TX procesora. Z kolei, z mojego doświadczenia wiem, że ewentualne podłączenie kilku dodatkowych modułów (łącznie ok. kilkadziesiąt metrów kabla) przy tej szybkości transmisji (9600 bps) nie powinno sprawić żadnej przykrej niespodzianki (nie zauważyłem u siebie gubienia rozkazów - być może dlatego, że moduły są zasilane z tego samego źródła i udało mi się dobrze dopasować rezystory do impedancji kabla). Problemem może być brak informacji o uszkodzeniu modułu ale przecież to nie stacja kosmiczna i można sprawdzić czy np. światło przed domem nie włączyło się bo żarówka się przepaliła czy moduł odmówił współpracy.

    "dominon"
    Płytka drukowana, dwustronna z metalizacją otworów i cynowaniem wykonana na zamówienie.

  • #13 20 Cze 2012 08:05
    zgierzman
    Poziom 18  

    kamasz napisał:
    Z kolei, z mojego doświadczenia wiem, że ewentualne podłączenie kilku dodatkowych modułów (łącznie ok. kilkadziesiąt metrów kabla) przy tej szybkości transmisji (9600 bps) nie powinno sprawić żadnej przykrej niespodzianki

    Ja zaś zauważyłem, że komunikacja na ok 50m ekranowanej skrętki w dość nieprzyjemnym elektromagnetycznie środowisku może łatwo zostać zakłócona. Nie liczyłem dokładnie, ale jedna na kilkaset (a czasem nawet na kilkadziesiąt) ramek przychodzi uszkodzona. To jest 1% albo mniej, ale jest...
    Nawet w domowym zastosowaniu może to być kłopotliwe, bo jeśli dostaniesz sygnał "włącz" zamiast "wyłącz" i podczas twojej nieobecności przez kilka dni non stop będzie się podlewał ogródek, to rachunek za wodę nie będzie miłą niespodzianką ;-)

  • #14 20 Cze 2012 18:06
    Olo999
    Poziom 21  

    zgierzman napisał:

    Ja zaś zauważyłem, że komunikacja na ok 50m ekranowanej skrętki w dość nieprzyjemnym elektromagnetycznie środowisku może łatwo zostać zakłócona. Nie liczyłem dokładnie, ale jedna na kilkaset (a czasem nawet na kilkadziesiąt) ramek przychodzi uszkodzona. To jest 1% albo mniej, ale jest...
    Nawet w domowym zastosowaniu może to być kłopotliwe, bo jeśli dostaniesz sygnał "włącz" zamiast "wyłącz" i podczas twojej nieobecności przez kilka dni non stop będzie się podlewał ogródek, to rachunek za wodę nie będzie miłą niespodzianką ;-)


    Dlatego powinno stosować się sumę kontrolną i „potwierdzenie stanu pracy” dla każdego urządzenia podłączonego do sterownika. Na „dobrym” kablu RS485 „chodzi” nawet do 1km (sprawdzone w praktyce na kopalni).

  • #15 20 Cze 2012 18:28
    kamasz
    Poziom 10  

    Szanowni Koledzy "zgierzman" i "Olo999" zgadzam się z wami w 100%.
    Proszę tylko abyście czytali ze zrozumieniem.

    kamasz napisał:
    Dziękuję za zwrócenie uwagi na ten aspekt. Problem zastosowania kontroli wykonania polecenia musi być oczywiście uwzględniony przy wyborze takiego rodzaju sterowania.

    kamasz napisał:
    Po prostu priorytetem było dla mnie zmieszczenie całego stosu TCP/IP i reszty podstawowych funkcji w ATmedze88 i nie miałem już miejsca na zaawansowaną obsługę protokołu do wymiany danych w magistrali RS485.

    Pozdrawiam

  Szukaj w 5mln produktów