ARS3-ER - sterownik z serwerem Web. Możliwość załączania 4 wyjść oraz kontroli/wizualizacji poziomu na 4 wejściach. cz. 1

ARS3-ER - sterownik z serwerem Web. Możliwość załączania 4 wyjść oraz kontroli/wizualizacji poziomu na 4 wejściach. cz. 1
Pobierz PDF Download icon
Prezentowany w artykule serwer Web jest łatwy w budowie, ale ma zaawansowane funkcje. Stan 4 wyjść i 4 wejść można kontrolować poprzez sieć Ethernet, która może być dostępna np. za pośrednictwem routera również "z zewnątrz" tj. za pomocą Internetu. Sterownik może wyświetlać strony HTML przygotowane przez użytkownika i wysyłać e-maile z powiadomieniami. Łatwy w obsłudze może być łatwo przystosowany do wymagań sieci, w której będzie pracował i aplikacji, której będzie elementem. Rekomendacje: serwer przyda się w aplikacjach związanych z automatyką domową lub przemysłową.

Sterownik powstał jako rozwinięcie wcześniejszej konstrukcji - zestawu AVT5450. Tamto urządzenie doskonale sprawdzało się w nieskomplikowanych zastosowaniach wymagających jedynie zdalnego włączenia lub wyłączenia jakiegoś urządzenia.

Ze względu na prostotę obsługi, miał jednak ograniczone możliwości konfiguracyjne, co utrudnia jego użycie w bardziej wyrafinowany sposób. Strony HTML wyświetlane na przeglądarce mają uproszczony wygląd bez możliwości zmian np. dołączenia elementów graficznych. Ostatecznie powstało całkiem nowe urządzenie, które nazwałem ARS3-ER.

Budowa

Rysunek 1. Schemat ideowy sterownika z serwerem Web

Schemat ideowy sterownika pokazano na rysunku 1. Jego sercem jest mikrokontroler STM32F107VCT w obudowie ze 100 wyprowadzeniami. Wyposażono go w wewnętrzną pamięć programu Flash mieszczącą 256 kB oraz pamięć RAM o pojemności 64 kB. Mikrokontroler ma wbudowany interfejs MAC (Media Access Controller) umożliwiający dołączenie do sieci Ethernet.

Do dołączenia do sieci potrzebne są jeszcze dwa elementy: układ pełniący funkcje interfejsu PHY (Physical Interface Device) i transformator z gniazdem do fizycznego przyłączenia sterownika do sieci. W opisywanym urządzeniu w roli interfejsu PHY zastosowano układ DP83848VV. Zastosowano również gniazdo RJ45 z wbudowanym transformatorem separującym.

Na schemacie mikrokontroler U1 pokazano jako osobne bloki portów i segmenty pozostałych wyprowadzeń funkcjonalnych. Układ U2 jest interfejsem PHY. Łączy się z kontrolerem liniami portów programowo skonfigurowanymi do współpracy tych dwu elementów. Z kolei do U2 jest dołączony sprzęg magnetyczny J1, do którego bezpośrednio przyłącza się wtyczkę kabla sieciowego. Warto wspomnieć, że U2 (interfejs PHY) ma kilka wyprowadzeń wstępnie ustawiających tryb jego pracy. Stan tych wyprowadzeń badany jest podczas restartu układu U2.

Jeśli:

  • wyprowadzenie 26 (AN_EN /LED_ACT/COL) jest wewnętrznie podciągane do poziomu wysokiego,
  • wyprowadzenia 27 i 28 (AN_1 /LED_SPEED), (AN_0 /LED_LINK) są poprzez diody LED podciągane do poziomu wysokiego,
  • to przy ustawieniu interfejs PHY będzie pracował w trybie negocjacji. Oznacza to, że będzie możliwa praca w trybach half i full duplex, zarówno z wolniejszymi urządzeniami 10BASE-T jak i szybszymi 100BASE-TX. Jeśli:
  • wyprowadzenie 39 (MII_MODE /RX_DV) zostanie podciągnięte do poziomu wysokiego opornikiem R11,
  • wyprowadzenie 6 (SNI_MODE /TXD_3) jest wewnętrznie wyzerowane (zwarte z masą),
  • to przy takim ustawieniu wyprowadzeń układ U2 (interfejsu PHY) łączy się z U1 (mikrokontrolerem) w trybie RMII (tryb zredukowanej linii połączeń). Dane transmitowane są dwiema liniami TXD i dwiema RXD. W tym trybie zegar taktujący U2 ma częstotliwość 50 MHz i jest podawany z portu PA1 mikrokontrolera.

Gniazdo Mini-USB J2 i interfejs USB U3 pełnią podwójną rolę. Umożliwiają komunikację programu serwisowego SerwUs ze sterownikiem i zmianę jego ustawień. Za pośrednictwem J2 można także zasilić sterownik z portu USB. Alternatywnym sposobem zasilania urządzenia jest podanie napięcia +5 V na gniazdo J4. Zasilanie może być podłączone jednocześnie do obydwu gniazd, ponieważ gniazda zabezpieczone są diodami.

Wyjściowymi układami wykonawczymi są 4 przekaźniki K1-4, sterowane poprzez tranzystory liniami kontrolera PE2-5. Styki przekaźników wyprowadzone są na gniazda zaciskowe do przykręcania zewnętrznych przewodów.

Na grzebień złącza J6 wyprowadzone zostały bezpośrednio 4 linie portów kontrolera PA4-7. Do linii można doprowadzić sygnały o poziomach logicznych 0...3,3 V, których stan jest czytany i wyświetlany na przeglądarce internetowej. Należy unikać podawania na nie napięcia przekraczającego podany zakres, co może grozić uszkodzeniem kontrolera, ponieważ wejścia nie są zabezpieczone.

W pamięci EEPROM (U4) przechowywane są parametry konfiguracyjne urządzenia również po odłączeniu zasilania. Kwarc Q2 i bateria BT1 są jedynymi elementami zewnętrznymi bloku zegara czasu rzeczywistego wbudowanego w mikrokontroler. Dzięki baterii zegar pracuje również po wyłączeniu zasilania. Ponieważ informacje o czasie pobierane z zegara wykorzystywane są przez system powiadomień, bateryjne podtrzymanie RTC jest niezbędne dla prawidłowego funkcjonowania urządzenia.

Zapis programu do pamięci Flash mikrokontrolera można wykonać za pomocą interfejsu JTAG wyprowadzonego na gniazdo J5 bądź poprzez port USB. O wyborze decyduje ustawienie zwory JP1 podczas restartu, który można wymusić naciskając przycisk S1.

Wykaz elementów

Rezystory: (SMD 0805)
R1...R4: 49,9 Ω
R5: 4,87 kΩ
R6, R7, R10, R11: 2,2 kΩ
R8, R9: 220 Ω
R12, R13: 100 kΩ
R14, R15, R20...R23: 3 kΩ
R16: 10 kΩ
R17: 1 kΩ
R18, R19: 27 Ω
R24...R27: 1 kΩ

Kondensatory: (SMD 0805)
C1...C10, C17, C19, C23: 100 nF
C11...C14: 15 pF
C15, C16: 10 µF/16 V (SMD "B")
C18: 10 µF/16 V (SMD "B")
C20: 10 nF
C21, C22: 47 pF

Półprzewodniki:
D1...D2: LL4148 (mini MELF)
D3...D6: MBR0530T1G (SOD123)
LED1...LED5: dioda LED SMD, 0805
T1...T4: BC847 (SOT23)
U1: STM32F10XVXT6 (TQFP100)
U2: DP83848 (LQFP48)
U3: FT230XS (SSOP16)
U4: 24LC256SN (SO8)
U5: LM1117-3.3 (SOT223)

Inne:
BT1: bateria litowa z podstawką
J1: gniazdo RJ45 z transformatorem
J2: gniazdo mini USB
J3: złącze ARK
J4: złącze zasilania DG301-5.0
J5: złącze PAK100/2500-20 3M (TM) Pak 100 4-Wall Header
J6: złącze FE06-1
JP1: zwora
K1...K4: przekaźnik np. FD41-5 (cewka na 5 V)
L1, L2: 1 mH (SMD 0805)
Q1: rezonator kwarcowy 25 MHz (HC49S)
Q2: rezonator kwarcowy 32,768 kHz
S1: przycisk OMRON B3F-10XX

Montaż

Rysunek 2. Schemat montażowy sterownika z serwerem Web

Schemat montażowy sterownika pokazano na rysunku 2. Zmontowanie samej płytki z elementami nie jest skomplikowane. Standardowo, przed rozpoczęciem montażu warto dokładnie obejrzeć płytkę drukowaną, co zwiększa szanse zauważenia ewentualnych przetrawionych ścieżek czy zwarć. Następnie, jako pierwszy należy wlutować mikrokontroler U1.

Przy układzie ze 100 wyprowadzeniami lepiej nie mieć ograniczeń dostępu stwarzanych przez wcześniej zamontowane inne komponenty. Przy montażu elementu o tak gęstym rastrze wyprowadzeń jest wskazane użycie dobrych narzędzi, topnika w płynie i mała ilość lutowia na końcu grota.

Nie bez znaczenia jest również doświadczenie. Po wlutowaniu elementu warto sprawdzić omomierzem czy nie występują zwarcia, choćby linii zasilania 3,3 V do masy. Łatwiej je będzie znaleźć i usunąć, niż w wypadku stwierdzenia tego faktu po wlutowaniu wszystkich elementów.

Dla ułatwienia montażu można na początku wlutować także pozostałe układy scalone, a dopiero w dalszej kolejności kondensatory, oporniki i tranzystory SMD. Na samym końcu montujemy większe gabarytowo złącza, gniazdo baterii oraz przekaźniki.

Programowanie pamięci FLASH kontrolera STM32

Zapis programu w postaci pliku HEX lub pliku binarnego BIN można wykonać dwoma typowymi dla STM32 sposobami: poprzez port JTAG lub korzystając ze złącza USB.

Złącze JTAG J5 przystosowane jest do podłączenia programatora typu ST-Link lub któregoś z jego klonów np. ZL30PRGv2. Po włożeniu programatora do gniazda J5 należy połączyć go z portem USB komputera, na którym jest uruchomiony program narzędziowy STM32 ST-LINK Utility. Przed zasileniem płytki sterownika zwora JPI musi być rozwarta. Następnie, za pomocą poleceń programu STM32 ST-LINK Utility należy wczytać plik HEX i zapisać jego zawartość do pamięci Flash mikrokontrolera U1.

Dla skorzystaniu z drugiego sposobu programowania poprzez złącze J2 (mini-USB) na płytce będzie potrzebny specjalny program narzędziowy uruchamiany na komputerze. Może to być firmowy Flash loader demonstrator lub któryś z jego odpowiedników np. FlyMCU. Po połączeniu kablem portu USB komputera z gniazdem J2 płytki sterownika należy na komputerze uruchomić program Flash loader demonstrator.

W tym momencie płytka jest już zasilana poprzez port USB. Następnie należy założyć zworę na złącze JP1 i nacisnąć przycisk Reset sterownika. Od tego momentu znajduje się w trybie programowania. Korzystając z opcji Flash loader demonstrator-a należy wczytać plik HEX i zaprogramować kontroler na płytce. Na koniec trzeba usunąć zworę z JP1 i nacisnąć przycisk Reset na płytce.

Uruchamianie: sterowniki konwertera USB

Rysunek 3. Nowy, wirtualny port COM

Po zapisie programu do pamięci Flash mikrokontrolera sterownik prawdopodobnie nie będzie pracował... Należy jeszcze do pamięci EEPROM zapisać ustawienia standardowe. Potrzebny do tego będzie program narzędziowy SerwUs przystosowany do współpracy z ARS3-ER. Program komunikuje się ze sterownikiem poprzez port USB i gniazdo J2 (mini-USB).

Zanim jednak przejdziemy do zapisu ustawień standardowych należy się przekonać czy system w komputerze "widzi" konwerter USB na płytce sterownika. W Windows7 należy w tym celu otworzyć zakładkę Control Panel → Hardware and Sound → Device Manager (w innych wersjach systemu kolejność otwierania zakładek może się różnić) i sprawdzić czy w Ports (COM & LPT) po dołączeniu sterownika został dodany nowy, wirtualny port COM, tak jak pokazano na rysunku 3.

Oczywiście, w zależności od liczby zainstalowanych sterowników jego numer może być inny na każdym ze współpracujących komputerów. Jeżeli port nie został automatycznie dodany, może to wynikać z błędu montażu, uszkodzenia konwertera U3 lub niesprawnego kabla USB. Jednak bardziej prawdopodobną przyczyną może być brak w systemie sterowników do obsługi układu U3 (FT230X).

W tym drugim wypadku odszukujemy w Internecie stronę producenta, czyli http://www.ftdichip.com, wybieramy element FT230X i VCP_Drivers. Następnie, zależnie od zainstalowanej wersji systemu, wybieramy plik .exe, który automatycznie zainstaluje sterowniki w systemie. Po tej operacji podłączenie do komputera płytki sterownika ARS3-ER powinno powodować dodanie informacji o nowym porcie, jak pokazano na rysunku 3.

Uruchamianie: program SerwUs i ustawienia standardowe

Rysunek 4. Zakładka "Ustawienia" programu

Kiedy sterowniki konwertera USB wykryją dołączenie do komputera płytki sterownika i zostanie automatycznie dodany port wirtualny, można przejść do dalszych etapów przystosowania sterownika ARS3-ER do pracy w sieci. Posłuży do tego wspomniany wcześniej program narzędziowy SerwUs. Po jego uruchomieniu otrzymamy dostęp do 3 zakładek, z których pierwszą pokazano na rysunku 4.

Najpierw należy ustanowić połączenie pomiędzy programem a sterownikiem. Naciśnięcie przycisku "Automatyczne wykrywanie podłączonego urządzenia" inicjuje proces szukania ARS3-ER dołączonego do dowolnego portu USB.

Ponieważ bezpośrednio po włączeniu zasilania sterownik jest zajęty pewnymi czynnościami związanymi z ustanawianiem połączenia sieciowego, wyszukiwanie najlepiej rozpocząć po 10 sekundach od załączenia zasilania sterownika.

Jeżeli wszystko przebiegnie pomyślnie na sterowniku przez moment zaświeci się dioda LED5 a w oknie Logu programu SerwUs wyświetli się część informacji pokazanych na rys. 4. Teraz należy kliknąć klawisz programu z czerwonym napisem USTAWIENIA STANDARDOWE. Rozpocznie się proces wymazywania w EEPROM-ie starych zapisów i zastępowanie ich nowymi pozwalającymi na standardowe funkcjonowanie ARS3-ER.

Po chwili ponownie zapali się dioda LED5, a po jej zgaśnięciu na ekranie powinien pojawić się napis informujący o sukcesie przywracania ustawień standardowych. W kolejnym kroku można jeszcze otworzyć zakładkę COM i RTC dla zmiany szybkości transmisji poprzez port szeregowy (USB) oraz ustawić aktualny czas i datę na zegarze czasu rzeczywistego RTC. Żeby po odłączeniu zasilania ustawienia nie zostały utracone, w gnieździe BT1 należy umieścić baterię litową 3 V.

Dołączanie sterownika do sieci Ethernet

W domowym zastosowaniach najczęściej sieć jest organizowana w oparciu o któryś z tanich routerów. Zazwyczaj działają one bardzo podobnie, więc dalszy opis powinien odpowiadać większości przypadków. Komunikacja w mniejszej lub większej sieci odbywa się z wykorzystaniem tzw. adresów IP. Każde urządzenie dołączone do węzła sieci tworzonego przez ruter musi być identyfikowany przez unikatowy, 4-bajtowy adres IP (w wersji v.4).

Przy adresowaniu dynamicznym adres każdemu urządzeniu jest przydzielany przez router w miarę dołączania do sieci kolejnych urządzeń. Czas utrzymywania adresów przydzielonych urządzeniom można zmienić w ustawieniach routera. Urządzenie może też występować w sieci pod niezmiennym adresem statycznym. Wówczas jego numer powinien mieścić się w zakresie wymaganym przez daną sieć. Oczywiście, ten adres musi być unikatowy i w tym węźle nie może posługiwać się nim żadne inne urządzenie.

Sterownik ARS3-ER może pracować z adresem statycznym lub dynamicznym. Po zaznaczeniu w programie SerwUs opcji "Wybór statycznego IP" sterownik będzie odpowiadał na adres wpisany ręcznie. Można go ustawić w dowolnym zakresie akceptowanym przez sieć.

Przydzielając dynamiczny adres IP router identyfikuje urządzenia za pomocą numeru MAC, który powinien być unikatowy w danym węźle sieci. Jest on 6-bajtowy i w sterowniku może być ustawiony za pomocą programu SerwUs.

Ostatnia opcja, która wymaga ustawienia przed dołączeniem sterownika do sieci Ethernet znajduje się na zakładce "Pliki HTML" programu SerwUs. Ponieważ jeszcze nie dysponujemy własną wersją stron HTML, do wyświetlania należy wybrać opcję stron predefiniowanych.

Pierwsze uruchomienie ARS3-ER

Rysunek 5. Predefiniowana strona sterownika

Po zakończeniu wstępnych ustawień można podłączyć sterownik do rutera. Po podłączeniu zasilania i odczekaniu ok. 10 s można jeszcze raz uruchomić w programie SerwUs wyszukiwanie sterownika. Powinny wyświetlić się wszystkie wprowadzone ustawienia, a w okienku logu na pierwszej zakładce powinna być wyświetlona informacja o adresie IP, na który będzie reagował sterownik. Po uruchomieniu przeglądarki internetowej i wpisaniu na pasku tego adresu, powinna wyświetlić się strona pokazana na rysunku 5.

Na wyświetlanej, predefiniowanej stronie sterownika ARS3-ER jest kilka linków do podstron pozwalających przetestować jego działanie:

  • test wejść pokazuje poziom logiczny (0 lub 1) wejść IN1...IN4 automatycznie odświeżany co około 2 sekundy. Zwarcie do masy dowolnego z wejść powoduje zmianę wyświetlanej informacji.
  • test wyjść pozwala na sterowanie włączeniem każdego z przekaźników PK1...PK4.
  • test hasła to przykład strony zabezpieczonej hasłem. W ustawieniach predefiniowanych hasło to "123456".

Zakładka "Złącza" prezentuje podręczny opis gniazd i złącz dostępnych na płytce sterownika.

W kolejnej części artykułu opiszę sposób tworzenia własnych stron sterujących wyjściami i odczytem wejść w oparciu o technikę tagów. Zostanie także przedstawiony sposób uruchomienia powiadomień e-mail o zdarzeniach.

Ryszard Szymaniak, EP

Artykuł ukazał się w
Elektronika Praktyczna
maj 2015
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów