Płytka sterownika jest zasilana napięciem +12 V doprowadzonym do złącza DC. Zastosowano konwerter DC-DC AIMTEC AMSR-7805-NZ w celu obniżenia napięcia z +12 V na +5 V. Wspomniany konwerter to zamiennik popularnego układu LM7805, zgodny z nim pod względem wyprowadzeń, jednak mający większą sprawność. Napięcie +3,3 V uzyskano za pomocą stabilizatora liniowego LM1117-3.3. Dla zapewnienia odpowiedniej impulsowej wydajności prądowej zastosowano kondensatory tantalowe ze względu na ich małą rezystancję ESR. Jako zabezpieczenie obwodu zasilania zastosowano bezpiecznik polimerowy PTC 750 mA.
Przekaźniki mają cewki zasilane napięciem 12 V i są załączane za pomocą ULN2803. Jako wyprowadzenia przekaźników użyto 3-pinowych złączy śrubowych ARK500/3, dzięki czemu są dostępne styki NO i NC. Poprawne zasilanie jest sygnalizowane świeceniem LED1, natomiast LED2 sygnalizuje zerowanie i wejście w tryb programowania.
Montaż i uruchomienie
Schemat montażowy sterownika pokazano na rysunku 3, natomiast płytki z diodami sygnalizacyjnymi LED na rysunku 4. Moduł pasuje do obudów uniwersalnych typu Z101J oraz Z101JFP. Różnica między nimi to przezroczyste okno w wersji Z101JFP. W zależności od potrzeb można wykorzystać dodatkową płytkę z diodami wyświetlającymi stan przekaźników – pasującą do wersji Z101JFP. Łączy się ona z główną płytą 6-żyłowym przewodem za pomocą złącza SV2. Niestety, w obudowie nie ma żadnych zatrzasków, więc trzeba ją zamocować samodzielnie. W obudowie trzeba wykonać dwa otwory – na przewód USB i wtyk zasilający.
Na płytce przewidziano powiększone otwory na śrubki montażowe M3, aby można było łatwiej zamontować płytkę w przypadku użycia innej obudowy.
W handlu jest dostępnych wiele modułów z mikrokontrolerem ESP8266. Różnią się one przede wszystkim wymiarami, sposobem montażu, pojemnością pamięci Flash, częstotliwością taktowania rdzenia oraz typem anteny. Moduł ESP07 ma wbudowaną antenę oraz złącze SMA dające możliwość użycia anteny zewnętrznej. Jest to o tyle ważne, że moduł można zamknąć w szafce, natomiast antenę zamocować poza nią, aby uzyskać lepszy zasięg.
Programowanie
Do programowania układu ESP8266 zastosowanego w module możemy używać różnych kompilatorów, ale dobrym pomysłem jest użycie Arduino IDE. W programie zdefiniowano stałe służące do identyfikacji sieci Wi-Fi, z którą będziemy się łączyli, co zmusza nas do skompilowania programu za każdym razem, gdy zmieniamy sieć lub miejsce zainstalowania moduł.
Aby umożliwić programowanie modułu ESP07 z poziomu Arduino IDE, musimy zainstalować oprogramowanie umożliwiające jego obsługę. W starszych wersjach oznaczałoby to ręczne podmienianie zawartości plików w folderach konfiguracyjnych. Na szczęście od wersji 1.6 jest wspierany mechanizm automatycznego pobierania dodatkowych modułów – Additional Boards Manager.
Przetestujmy teraz, czy możemy komunikować się ze sterownikiem i zapisywać jego pamięć programu. Włączamy zasilanie (+12 V DC), a następnie przewodem miniUSB łączymy sterownik z komputerem PC. Po zainstalowaniu sterowników zostanie wyświetlony nowy, wirtualny port COM. W razie niepowodzenia instalacji sterowników – wgrywamy te z plików dołączonych do magazynu lub wyszukujemy najnowsze dla układu CH340 w wersji zależnej od posiadanego systemu operacyjnego.
![]() |
![]() |
Z menu Arduino IDE wybieramy Narzędzia -> Płytka -> Generic ESP8266 Module. Zmieniamy je w taki sposób, jak pokazano na rysunku 8. Oczywiście, używamy takiego numeru portu COM, jaki został nadany w przez system Windows po zainstalowaniu sterowników. Następnie wybieramy Plik Przykłady ESP8266 Blink. Jest to program zmieniający stan wyprowadzenia z częstotliwością 1 Hz. Wprowadzamy tam jednak małą modyfikację – zamiast „LED_BUILTIN” wpiszmy wszędzie 5 – jest to pin wyjście sterujące jednym z przekaźników (program o nazwie ESP_test w materiałach).
Musimy teraz uruchomić moduł ESP07 w trybie programowania:
- Naciskamy przycisk Reset.
- Trzymając go, wciskamy przycisk Program.
- Puszczamy Reset, cały czas trzymając Program.
- Puszczamy przycisk Program.
Po tych czynnościach powinna zaświecić się dioda LED2 oznaczająca, że moduł ESP07 jest w trybie programowania. Teraz w Arduino IDE klikamy na Wgraj. Program zostanie skompilowany i rozpocznie się proces programowania. Jeśli wszystko przebiegnie prawidłowo, w polu komunikatów zostanie wyświetlona wiadomość, jak na rysunku 9 oraz usłyszymy „stukanie” przekaźnika, a odpowiadający mu LED na panelu będzie na przemian gasł i zaświecał się.
![]() |
![]() |
![]() |
Użytkowanie sterownika
Konfiguracja środowiska za nami. Pora na opisanie dwóch sposobów kontrolowania pracy sterownika ESP Relay, są to: użycie platformy Blynk lub przez wbudowaną stronę internetową.
Platformę Blynk opisałem w poprzednim wydaniu „Elektroniki Praktycznej” (EP 4/2017). Korzystając z drugiej metody, możemy załączać wyjścia za pomocą dowolnego urządzenia mającego przeglądarkę internetową i dostęp do sieci, w której pracuje nasz sterownik.
Aby umożliwić sterowanie za pomocą przeglądarki, musimy uruchomić w ESP8266 oprogramowanie serwera strony www i wykonać stronę z przyciskami do sterowania. Ja do tego celu posłużyłem się przykładem „Advanced Web Serwer” z biblioteki obsługi ESP8266. Znajdziemy go w materiałach do artykułu.
Aby dostosować program do swoich potrzeb, trzeba poprawić linie:
//ustawienia parametrow sieci
const char *ssid = "b97488";
const char *password = "280740688";
Należy w nich podać nazwę i hasło dostępu do sieci Wi-Fi, z którą będziemy się łączyli. Następnie w przeglądarce w polu adresu wpisujemy przydzielony przez router adres IP. Możemy go poznać na kilka sposobów – po wgraniu wsadu/restarcie/uruchomieniu zasilania podłączyć się terminalem (np. Putty) do układu. Zobaczymy wtedy podgląd zdarzeń, w tym przydzielony adres IP:
Connected to b97488
IP address: 192.168.0.22
MDNS responder started
HTTP server started.
Program rozpoczyna pracę od konfiguracji wyprowadzeń jako wyjścia i ich wyzerowania. Następnie inicjalizuje pracę UART do debugowania i próbuje nawiązać połączenie z siecią zdefiniowaną w parametrach. Oczekuje przy tym na połączenie w pętli, wysyłając co 500 ms znak kropki na współpracujący terminal. Zazwyczaj połączenie następuje po 4 sekundach. Kolejnym krokiem jest przypisanie funkcji, które mają się wykonać, gdy serwer odbierze zapytanie. Zapytaniem domyślnym jest znak „/” – wtedy serwer przesyła stronę główną bez żadnej dodatkowej akcji. Gdy odbierze „relays”, serwer oczekuje na dodatkowe parametry dotyczące włączenia/wyłączenia przekaźników, wykonuje zadaną akcję i ponownie przesyła stronę startową. W przypadku błędnego adresu jest odsyłany komunikat „błąd 404” informujący o braku żądanej strony (listing 1).
Stronę sterującą wykonano w języku HTML. Zawiera 8 przycisków, których kliknięcie powoduje wywołanie odnośnika włączającego lub wyłączającego odpowiedni przekaźnik. Jego przesłaniem zajmuje się pokazana na listingu 2 funkcja handleRoot(). Źródło strony zapisano w programie w postaci stałej typu string, stąd obecność znaków „/” na końcach linii i przed znakami specjalnymi. Wygląd strony głównej sterownika pokazano na rysunku 10.
Przemek Michalak
projektydmb.blogspot.com