Moduł przekaźników sterowanych przez Wi-Fi

Moduł przekaźników sterowanych przez Wi-Fi
Pobierz PDF Download icon

Układu ESP8266 nie trzeba nikomu przedstawiać. Zdobył ogromną popularność i stał się bazą do realizacji wielu różnych pomysłów. Prezentowane urządzenie również wykorzystuje układ ESP, jednak na tle innych rozwiązań wyróżnia się przede wszystkim łatwością konfiguracji i obsługi. Ma też dodatkowe funkcjonalności: zabezpieczenie dostępu hasłem oraz tryb pracy czasowej, które znacznie poszerzają wachlarz zastosowań urządzenia. Rekomendacje: moduł przyda się w automatyce domowej.

Podstawowe parametry:

  • 4 wyjścia przekaźnikowe.
  • Konfiguracja i sterowanie przez stronę www.
  • Zabezpieczenie dostępu hasłem.
  • Funkcja pracy czasowej.
  • Parametry wyjść: maksymalnie 250 V AC/5 A.
  • Zasilanie 12 V minimum 500 mA.

Urządzenie działa jak mikroserwer www, więc interfejsem, poprzez który komunikuje się z użytkownikiem, jest strona internetowa. Do wyświetlenia strony internetowej potrzebne jest urządzenie z zainstalowaną dowolną przeglądarką internetową oraz potrzebny jest adres ip strony. 

Moduł pracuje w dwóch trybach: pierwszy z nich to praca jako punkt dostępowy Wi-Fi - access point. Jego domyślna nazwa to PRO-RELAYS i będzie widoczna na liście dostępnych sieci Wi-Fi (rysunek 1). Przy próbie dołączenia do access pointa należy wprowadzić hasło, które domyślnie ma wartość 12345678. Gdy zostanie nawiązane połączenie, można uruchomić przeglądarkę internetową i na pasku adresu wpisać adres IP, który ma wartość 10.10.10.10. Wyświetli się strona internetowa jak na rysunku 2. Należy teraz podać hasło, które jest takie samo jak hasło do access pointa, czyli domyślnie 12345678. Dopiero teraz zostanie wyświetlona strona główna urządzenia (rysunki 3 i 4). Jest to pierwszy sposób dostępu do urządzenia, całkowicie wystarczający do jego pełnej obsługi w sytuacji, gdy pracuje poza zasięgiem jakiejkolwiek sieci lokalnej (domowej).

Rysunek 1. Urządzenie widoczne na liście dostępnych sieci Wi-Fi.
Rysunek 2. Strona logowania do urządzenia.
Rysunek 3. Okno główne, pierwsza część

Rysunek 4. Okno główne, druga część.
Rysunek 5. Okno ustawień, część dotycząca ustawień access pointa.
Rysunek 6. Okno ustawień, część dotycząca ustawień routera

Urządzenie może pracować w innym trybie, wygodniejszym pod względem użytkowania, wymaga tylko przeprowadzenia konfiguracji. Strona konfiguracyjna zostanie wyświetlona po naciśnięciu przycisku Settings, który znajduje się u dołu strony głównej. Wygląd strony konfiguracyjnej pokazano na rysunkach 5 i 6, w górnej części (rysunek 5) znajdują się pola umożliwiające nadanie nowej nazwy i hasła. Nazwa dotyczy nazwy access pointa ale jest także nazwą urządzenia i jest wyświetlana na stronie logowania i stronie głównej urządzenia. Hasło dotyczy hasła dostępu do access pointa oraz jest hasłem logowania na stronie internetowej. Po wprowadzeniu nowej nazwy i hasła należy nacisnąć przycisk Save umieszczony pod tymi polami. Urządzenie zapamięta nowe ustawienia w pamięci nieulotnej a po około 30 sekundach uruchomi się ponownie i będzie działało z nowymi ustawieniami.

W dolnej części strony konfiguracyjnej (rysunek 6) znajdują się pola, które pozwalają skonfigurować połączenie z lokalną siecią Wi-Fi. Urządzenie może zostać podłączone do domowego routera i wtedy każdy użytkownik podłączony do tego samego routera może mieć dostęp do urządzenia. Aby uruchomić taki tryb pracy, należy wpisać w odpowiednich polach strony konfiguracyjnej nazwę sieci Wi-Fi (tzw SSID) oraz hasło do wybranej sieci Wi-Fi i zakończyć poprzez naciśnięcie przycisku Save pod tymi polami. Urządzenie zapamięta nowe ustawienia w pamięci nieulotnej a po ok 30 s uruchomi się ponownie i jeśli wszystko przebiegło pomyślnie, podłączy się do sieci o podanej nazwie.

Rysunek 7. Okno główne – elementy służące do sterowania wyjściami.
Rysunek 8. Okno podsumowania ustawień dla pracy czasowej.

Rysunek 9. Okno dodawania ustawień dla pracy czasowej.
Rysunek 10. Okno ustawiania zegara.

Aby sprawdzić, czy wszystko przebiegło prawidłowo, należy podłączyć się do urządzenia poprzez access point i na stronie konfiguracyjnej sprawdzić, czy pole IP zawiera numer IP. Należy zapamiętać ten numer, zwykle będzie miał wartość 192.168.x.xxx i będzie to numer IP, który router przydzielił dla naszego urządzenia. Teraz można rozłączyć się z access pointem, podłączyć się do domowego routera i wpisać w oknie dowolnej przeglądarki zapamiętany adres IP. Wyświetli się strona logowania naszego urządzenia.

Obsługa

Na stronie głównej urządzenia, na samej górze, znajduje się nazwa urządzenia, domyślnie jest to PRO-RELAYS, poniżej wyświetlany jest czas zegara zawartego w urządzeniu. Wyświetlana wartość czasu nie jest automatycznie aktualizowana, jest to wartość z chwili ostatniego odświeżenia strony. Kolejne elementy strony głównej to cztery bliźniacze sekcje odnoszące się do czterech wyjść urządzenia. Każda sekcja opisuje aktualny stan wyjścia w postaci tekstu - Out ON lub Out OFF a poniżej wyświetla przycisk, który pozwala zmienić stan wyjścia (rysunek 7).

Następnym elementem strony głównej jest przycisk opisany jako Work time. Po jego naciśnięciu otwiera się strona, która przedstawia aktualne ustawienia pracy czasowej, podzielone na cztery sekcje odpowiadające czterem wyjściom, jak pokazano na rysunku 8. W górnej części strony znajduje się przycisk Modify, który przenosi na kolejną stronę umożliwiającą wprowadzenie zmiany w harmonogramie pracy czasowej (rysunek 9). Dla każdego wyjścia można ustawić dwa niezależne przedziały czasowe określające czas załączenia i czas wyłączenia wyjścia. Aby zrezygnować z pracy czasowej, należy ustawić wartości czasów na godzinę „24:00”. Takie ustawienia będą wyświetlane jako --:-- i będą oznaczały funkcję nieaktywną.

Rysunek 11. Schemat ideowy modułu przekaźników z Wi-Fi

Rysunek 12. Schemat montażowy modułu przekaźników z Wi-Fi

Rysunek 13. Opis sygnałów na złączu programowania

Każda z podstron ma u dołu przycisk opisany Back, który pozwala na powrót do poprzedniej strony. Natomiast wszelkie zmiany należy potwierdzić przyciśnięciem przycisku Save na danej stronie.

Działanie funkcjonalności pracy czasowej wymaga ustawienia prawidłowego czasu. Aby ustawić czas zegara wbudowanego w urządzenie, należy na stronie głównej kliknąć przycisk Clock set, zostanie wyświetlona strona jak na rysunku 10. W odpowiednie pola należy wpisać czas i datę i zatwierdzić przyciskiem Save. Urządzenie zawiera niezależny zegar RTC z podtrzymaniem bateryjnym, więc czas będzie odmierzany nawet przy odłączonym zasilaniu urządzenia. Oczywiście w takiej sytuacji nie będą załączane wyjścia.

Po zakończeniu pracy z urządzeniem należy się wylogować, przyciskając Log out na głównej stronie urządzenia. Urządzenie ma funkcję automatycznego wylogowywania - jeśli po zalogowaniu, nie będzie żadnej aktywności ze strony użytkownika przez 60 s, to zostanie automatycznie wylogowany.

Budowa

Schemat ideowy urządzenia zamieszczono na rysunku 11. Na schemacie widoczny jest podział na bloki funkcjonalne: blok zasilania ze stabilizatorami IC1 i IC2, blok sterowania wyjściami z driverem IC6, blok zegara RTC z układem IC4, blok modułu Wi-Fi IC5 typu ESP8266 oraz blok mikrokontrolera sterującego IC3 typu LPC824.

Do prawidłowej pracy urządzenie wymaga doprowadzenia do złącza CON5 źródła zasilania o napięciu ok. 12 V i wydajności prądowej minimum 500 mA. Do zacisków wyjściowych doprowadzone są styki przekaźników, które w stanie aktywnym zwierają zaciski danego wyjścia. Takie rozwiązanie pozwala sterować praktycznie dowolnym obwodem, nawet 230 V AC.

Stan pracy urządzenia sygnalizują dwie diody świecące:

  • LED1 sygnalizuje aktywność modułu ESP8266.
  • LED2 migając co około 2 sekundy, sygnalizuje aktywność mikrokontrolera.

Na płytce zamontowano listwę szpilek goldpin, która obejmuje złącza CON1...CON4 widoczne na schemacie. Złącza te służą do zaprogramowania oraz aktualizacji oprogramowania mikrokontrolera oraz modułu Wi-Fi.

Program

Najważniejszych elementów urządzenia nie widać na schemacie - są to programy sterujące zawarte w pamięci modułu Wi-Fi oraz mikrokontrolera. Program dla modułu ESP8266 został napisany w środowisku Arduino a jego główne zadania to przesyłanie treści metody GET wydzielonej z żądania HTTP Request poprzez interfejs UART do mikrokontrolera. W odpowiedzi mikrokontroler przesyła do modułu treść kodu HTML opisującego wygląd generowanej strony internetowej. Jednak na początku, w sekcji SETUP programu w Arduino, przeprowadzana jest inicjalizacja, której istotny fragment widoczny jest na listingu 1. Po pierwsze moduł wysyła żądania o nazwę dla access pointa, hasło dla access pointa, nazwę sieci Wi-Fi oraz hasło do sieci Wi-Fi, które przechowuje w pamięci nieulotnej mikrokontroler. Następnie moduł rozpoczyna pracę jako access point a jeśli otrzymał nazwę i hasło do sieci Wi-Fi to przełącza się na tryb łączony access point/station mode. Jeśli połączy się z siecią Wi-Fi, to przesyła do mikrokontrolera adres IP, który otrzymał, jeśli połączenie się nie powiedzie, to powraca do pracy w trybie access pointa. Na koniec moduł ESP8266 przesyła do mikrokontrolera komendę o treści statOK, która oznacza koniec inicjalizacji. Wszystkie komendy i żądania zachowują format metody GET i mają treść podobną do tej: GET /?statOK&HTTPr.

Procedura, która przygotowuje i przesyła metodę GET, realizowana jest w przerwaniu handleRoot. Jej treść widoczna jest na listingu 2, w zmiennej serialString umieszczane są nazwy parametrów i ich wartości, a następnie cała treść jest przesyłana do mikrokonrtrolera - Serial.print(serialString);. Następnie moduł oczekuje na kod opisujący treść strony internetowej BodySend(); Na koniec treść strony, poprzedzona nagłówkiem i odpowiednio zakończona, tworzy treść odpowiedzi serwera webServer.send(200, „text/html”, PageHeader + serialContent + PageClosed);

Program mikrokontrolera realizuje mnóstwo zadań, najistotniejsze z nich to interpretacja komend odbieranych z modułu Wi-Fi. Budowa każdej komendy rozpoczyna się od GET /? a dalej znajduje się bardzo istotny parametr logId. Mikrokontroler zapamiętuje 5 ostatnich wartości tego parametru, które były powiązane z udanym logowaniem. Jeśli parametr logId ma wartość, która znajduje się w puli zapamiętanych, oznacza to potwierdzony dostęp do strony, jeśli wartości nie ma w puli zapamiętanych to wyświetlana jest strona logowania. Wartości kolejnych parametrów są generowane prostym, ale wystarczającym algorytmem. Po wylogowaniu lub po upływie czasu dana wartość logId zostaje usunięta z puli zapamiętanych. Następnym parametrem jest pageNum określający, którą stronę należy wyświetlić. Kolejne parametry dotyczą konkretnych elementów, np. actId=1 wraz z parametrem pageNum=1 pozwala zmienić stan wyjścia numer 1. Cała komenda wygląda wtedy tak:

GET /?logId=555&pageNum=1&actId= 1&HTTPr

Lista nazw wszystkich parametrów jest zamieszczona na listingu 3, po nazwach łatwo rozszyfrować ich znaczenie.

Montaż i uruchomienie

Schematy montażowy płytki drukowanej pokazano na rysunku 12. Urządzenie zostało zbudowane w większości z elementów SMD o bardzo małym rastrze. Chociaż nie ma wielu elementów, to montaż wymaga odpowiednich narzędzi i umiejętności. Po zmontowaniu i wstępnym skontrolowaniu napięć zasilających należy wykonać programowanie dwóch układów. Na płytce znajduje się złącze, które umożliwia przeprowadzenie niezbędnych czynności. Jednak potrzebny będzie dodatkowo konwerter USB-UART z wyjściami RX i TX o poziomie napięcia 5 V. Jeśli dysponujemy tylko konwerterem z wyjściami o poziomie 3,3 V, to należy usunąć z płytki rezystor R10.

W pierwszej kolejności należy zaprogramować moduł ESP, w tym celu należy założyć zworki na szpilki goldpin, zgodnie z opisem PROGRAMOWANIE MODUŁU ESP na rysunku 13 i podłączyć zasilanie. Teraz należy otworzyć w środowisku Arduino program ProRelArd, w ustawieniach wybrać płytkę NodeMCU (ESP-12E Module) i uruchomić proces kompilacji i programowania modułu. W razie problemów dokładniejsze wskazówki dotyczące programowania modułu ESP8266 za pośrednictwem Arduino można bez problemu znaleźć w Internecie.

Następnym krokiem będzie zaprogramowanie mikrokontrolera, można tego dokonać za pomocą programu Flash Magic poprzez ten sam konwerter USB-UART, który posłużył do zaprogramowania modułu ESP. Należy wtedy założyć zworki na szpilki goldpin, zgodnie z opisem PROGRAMOWANIE UKŁADU LPC na rysunku 13 i włączyć zasilanie. W oknie programu należy wybrać typ układu - LPC824, wskazać plik - ProRelays.hex i nacisnąć przycisk Start. W razie problemów dokładniejsze wskazówki dotyczące programowania układu LPC za pośrednictwem Flash Magic można można znaleźć np. w opisie modułu z LPC824, opublikowanego w EP. Innym sposobem na zaprogramowanie układu LPC jest zastosowanie programatora LPC-LINK wraz ze środowiskiem MCUXpresso IDE. Po tych czynnościach urządzenie będzie gotowe do pracy.

Podsumowanie

Na koniec kilka przydatnych informacji:

  • Wszystkie nazwy i hasła mogą mieć maksymalną długość 19 znaków.
  • Jeśli zostanie ustawione niewłaściwe hasło do istniejącej sieci Wi-Fi, to moduł ESP podejmie kilka prób połączenia z tą siecią. Próby oczywiście zakończą się niepowodzeniem i ostatecznie moduł przejdzie to pracy w trybie access pointa, ale cały proces może potrwać kilka minut.
  • Zapomnianego hasła nie da się usunąć, ale można je „podejrzeć”, podłączając do urządzenia konwertera USB-UART i zamieniając sygnały RX i TX. Podczas uruchamiania urządzenia mikrokontroler przesyła hasło do modułu ESP.
  • Urządzenie podłączone do domowego routera po restarcie zasilania może zmienić adres IP. Aby tego uniknąć, należy w ustawieniach routera przypisać stały adres ip dla tego urządzenia.
  • Jeśli urządzenie jest podłączone do routera a router, ma stały publiczny adres ip to możliwe jest sterowanie urządzeniem z dowolnego miejsca na ziemi. Należy wtedy w ustawieniach routera uruchomić funkcję przekierowania portu nr 80 na numer IP, który otrzymało urządzenie, a w przeglądarce wpisać publiczny adres ip routera.

KS
ep@prolab.waw.pl

Artykuł ukazał się w
Elektronika Praktyczna
kwiecień 2019
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio kwiecień 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje marzec 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna marzec 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich kwiecień 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów