Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

Stiepanowna 24 May 2012 22:30 17897 1
  • Postanowiłem zaprojektować urządzenie sieciowe, które będzie spełniało następujące kryteria:

    1. będzie działać niezależnie od komputera;
    2. będzie nim można sterować zdalnie z każdej odległości (oczywiście za pośrednictwem Internetu).

    Odnośnie interfejsu - wybrałem Ethernet i układ scalony ENC28J60. Jeśli ktoś nie posiada stałego adresu IP, tylko korzysta z Internetu za pomocą GPRS czy 3G, nie będzie miał problemu w korzystaniu z mojego urządzenia - wystarczy hasło i login, IP nie ma znaczenia.

    Parametry urządzenia:
    1. Podłączenie do routera za pomocą skrętki.
    2. Ilość kanałów wychodzących: 7 (maksymalna wartość prądu - 500 mA na każdy), napięcie wyjściowe jest równe napięciu zasilania.
    3. Ilość kanałów wejściowych: 4.
    4. Sieć 1-wire, do której można podłączyć do 20 czujników DS18B20.
    5. Sterowanie i konfiguracja urządzenia z poziomu przeglądarki.
    6. Możliwość sterowania kanałami wychodzącymi za pomocą pilota RC5.
    7. Nazwy kanałów i czujników można przechowywać w pamięci EEPROM.
    8. Aktualizacja firmware przez USB.

    Niestety ENC28J60 potrzebuje ekranowania - mnie się nie udało dla niego zrobić jednostronnej płytki, dlatego kupiłem gotowy moduł:

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    Układ 1

    Zasilanie:

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    Zasilanie 6-35V DC jest stabilizowane na poziomie 5V za pomocą przetwornicy impulsowej MC34063A. Dławik najlepiej dobrać na min. 1A.

    Układ 2


    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    Mikrokontroler Atmega32, pamięć AT24C64, zamiast tranzystorów na kanałach wychodzących został zastosowany układ scalony ULN2003. Napięcie zasilania modułu ethernetowego wynosi 3,3V, dlatego zastosowałem stabilizator typu 1117-3.3. Sygnał z pilota jest odbierany za pomocą TSOP1736. Aby uniemożliwić odbiór sygnału, wystarczy zastosować zworkę. 2 tranzystory 2N7002 obsługują 1-wire, zamontowane obok 2 diody chronią obwód przed przepięciami (jeśli kabel będzie długi). Oprócz tego zamontowałem jeszcze czujnik temperatury DS18B20. PORT6 służy do podłączenia modułu ethernetowego, złącze USB zaś do podłączenia do komputera. Zworka bootloadera służy do przejścia urządzenia w tryb aktualizacji firmware.

    Tak wygląda płytka:

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    W lewym górnym rogu jest pokazane gdzie należy podłączyć moduł. Kanały wyjściowe są typu OC, co oznacza, że jeśli chcemy podłączyć obciążenie, to włączamy je między + zasilania i wyjście danego kanału. Kanały wejściowe uznaje się za aktywne, jeśli są zwarte do masy (GND). Dodatkowe czujniki DS18B20 są podłączane do złącza U4.

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    Mikrokontroler trzeba zaprogramować bootloaderem. W tym celu korzystamy z pliku bootloader.hex. Następnie ustawiamy fuse bity: LOW=0x3F, HIGH=0xDA. Bootloader jest już zaprogramowany, więc do wgrania firmware nie potrzebujemy programatora. Montujemy mikrokontroler do urządzenia, podłączamy kabel USB, zakładamy zworkę bootloadera, a następnie włączamy zasilanie - komputer powinien wykryć nowe urządzenie HID i je zainstalować (sterowniki nie są potrzebne). Tym samym urządzenie przeszło w tryb programowania. Aby zaprogramować urządzenie, potrzebujemy 3 plików: bootloadHID.exe - program hosta, boot.bat - plik z poleceniami i LAN_Control.hex czyli właściwe firmware. Kiedy będziemy programować, ten plik należy zamienić nowym. Wszystkie 3 pliki powinny się znajdować w jednym katalogu. Włączamy boot.bat - pojawi się czarne okno z „biegającymi” cyframi. Kiedy się zamknie, programowanie możemy uznać za skończone.

    Wyciągamy zworkę, podłączamy zasilanie - wtedy D6 powinno się zaświecić i zgasnąć. Jeśli jednak nadal się ono świeci, ponownie zakładamy zworkę bootloadera, co spowoduje przywrócenie ustawień standardowych. Obowiązkowo należy to zrobić przy pierwszym włączeniu. Po ich przywróceniu dwa razy powinna mignąć dioda.

    Ustawienia standardowe są następujące:
    • IP: 192.168.1.170.
    • MAC: 84.85.88.16.0.41.
    • Port: 80

    Jeśli wejdziecie w menu Waszego routera, może (ale nie musi) się tam wyświetlać informacja o podłączeniu tego urządzenia. Żeby sprawdzić, czy komputer łączy się z urządzeniem (powinny pracować w jednej sieci lokalnej i być podłączone do jednego routera) wpisujemy w wierszu poleceń ping 192.168.1.170. Powinny pojawić się 4 odpowiedzi:

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    To znaczy, że połączenie jest w normie.
    Teraz wpisujemy w przeglądarkę adres http://192.168.1.170/ - powinno pojawić się przykładowo takie okno:

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    W moim przypadku jest podłączony jeden zewnętrzny czujnik, dlatego wyświetla się 2. Teraz jesteśmy w stanie sterować kanałami wychodzącymi, ale najpierw lepiej je nazwać. Klikamy w „Настройки” [ustawienia] i pojawia się taka strona:

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    Następnie nazywamy każdy komponent. W tym celu wybieramy „Термодатчик” [czujnik temperatury], numer 1 i wprowadzamy nazwę. To samo robimy w przypadku pozostałych czujników temperatury oraz 7 wychodzących i wejściowych kanałów. Teraz klikamy w „Выходящие каналы” [kanały wejściowe].

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    W moim przypadku pierwszy kanał nazywa się „one”, drugi – „two” itd. Jeśli wyjście jest aktywne, to obok niego będzie ON, jeśli nieaktywne - OFF. Żeby zmienić tryb, należy wcisnąć „Изменить” [zmień].

    Tak wygląda karta „Входящие каналы” [kanały wejściowe]:

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    Kontynuujemy konfigurację urządzenia. W tym celu należy przejść do panelu administratora. Żeby to zrobić, na włączonym urządzeniu zakładamy zworkę bootloadera i wpisujemy adres http://192.168.1.170/admin.

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    Tu można zmienić adres IP, MAC i port (reszty na razie nie trzeba). Wprowadzone zmiany będą widoczne po resecie urządzenia. Należy wziąć pod uwagę, że port 80 to standardowy port serwera, więc jeśli nie będzie się nazywało „80”, a np. „200”, to w pasku adresu po IP i dwukropku należy wskazać nazwę portu, tzn. http://192.168.1.170:200/.

    Teraz, znając adres IP urządzenia, spróbujemy się z nim połączyć przez Internet.

    Na początek ustawiamy przekierowanie portu na IP urządzenia. Następnie jeśli ktoś przejdzie z sieci zewnętrznej? IP:порт_устройства [port_urządzenia], to zapytanie przejdzie na samo urządzenie.

    Konfiguracja przekierowania portu nie powinna sprawiać trudności; ja korzystam z routera WR1043 z firmware OpenWrt. W tym celu należy wejść w interfejs routera (zwykle http://192.168.1.1), następnie „Сеть” [Sieć] – „Межсетевой экран” [zapora sieciowa] i „Перенаправления” [przekierowania]. Na koniec należy kliknąć „Добавить” [dodać].

    Zdalne sterowanie za pomocą sieci lokalnej, Internetu i pilota

    Nazwa jest obojętna, może być „protokół TCP+UDP” lub po prostu „TCP”, port zewnętrzny to port urządzenia, zewnętrzny adres IP to IP urządzenia. Zewnętrzny port może pozostać pusty. Konfigurację zapisujemy. Teraz próbujemy połączyć się z urządzeniem przez Internet (można to też zrobić w sieci lokalnej). Sprawdzamy IP routera w sieci zewnętrznej. W tym celu otwieramy http://speedtest.net/ - w największym oknie na dole po lewej wyświetli się nasze IP. Teraz otwieramy w przeglądarce to IP i po dwukropku wpisujemy port (np. u mnie to http://130.185.30.125:80/) - powinno się pojawić to samo, co przy przejściu po IP urządzenia.

    Tym samym nasze urządzenie jest dostępne przez Internet. Mogliśmy się z nim połączyć, bo znaliśmy IP. Co jeśli go nie znamy?

    W tym celu stworzyłem mały serwis, którego działanie polega na tym, że użytkownik się w nim rejestruje, a następnie wprowadza login i hasło w panelu administracyjnym. Wtedy urządzenie okresowo przesyła mu login, hasło i nazwę portu na ten serwis, serwis zaś określa IP, z którego przychodzą dane (czyli IP routera w sieci zewnętrznej) i zapisuje te dane w bazie. Następnie użytkownik wchodzi na stronę, wpisuje hasło i login, po czym pojawia się karta z ramką wyświetlającą przejście do IP:port.?

    A teraz po kolei:

    Rejestrujemy się na stronie http://kibermaster.net/, potem otwieramy http://lc.kibermaster.net/, „Регистрация” [rejestracja] i wpisujemy ten sam login, hasło i e-mail, które podaliśmy na http://kibermaster.net/. Teraz wchodzimy w panel administracyjny urządzenia (u mnie to http://192.168.1.170/admin), wprowadzamy login, hasło, częstotliwość raportowania (jak często będą przesyłane dane na serwis) oraz IP routera w sieci zewnętrznej (zazwyczaj 192.168.1.1). Zapisujemy, wyciągamy zworkę bootloadera i resetujemy urządzenie. Jeśli częstotliwość raportowania jest różna od 0, wtedy przy włączeniu na serwis będą wysyłane dane urządzenia; będą one również wysyłane co konkretną, ustaloną jednostkę czasu (częstotliwość raportowania).

    Wideo:

    http://www.youtube.com/watch?feature=player_embedded&v=D7_VO58ZotA

    Źródło: http://kibermaster.net/lan-control-sistema-udalennogo-upravleniya-cherez-lokalnuyu-set-internet-i-pdu/

    Cool? Ranking DIY
    About Author
    Stiepanowna
    Level 12  
    Offline 
    Stiepanowna wrote 90 posts with rating 75, helped 1 times. Live in city Kraków. Been with us since 2011 year.
  • #2
    winiar2014
    Level 10  
    serwer ich padnie i sprzęt do śmieci, lepiej by było napisać sterowanie z obsługą tylko przeglądarki