kontrolowany zdalnie sterownik oświetlenia
DESCRIPTION
Projekt dotyczący stworzenia zdalnie kontrolowanego sterownika oświetleniaTRANSCRIPT
1. Założenia
Stworzenie serwisu internetowego, którego główną funkcją będzie manipulowanie
oświetleniem dzięki komunikacji z zewnętrzną jednostką sterującą. Komunikacja będzie
odbywać się z wykorzystaniem sieci WiFi.
Rys. 1 Idea projektu
Założenia dotyczące serwisu internetowego:
-stworzenie bazy danych przechowującej informacje o użytkownikach
-możliwość sterowania oświetleniem tylko dla zarejestrowanych i aktywowanych użytkowników
-zastosowanie formularzy wykluczających przesłanie nieprawidłowych/nie pełnych danych
-stworzenie prostej w obsłudze dla użytkowników komunikacji z sterownikiem oświetlenia
Założenia dotyczące sterownika oświetlenia:
-możliwość łączenia się z serwisem internetowym poprzez dostępne sieci WiFi
-sterowanie gniazdem kablowym 230V
-sterowanie gniazdem USB 5V z możliwością regulacji jasności podłączonej lampy LED
-możliwość zwiększenia liczby sterowanych gniazd bez potrzeby tworzenia całego układu od nowa
-sygnalizacja stanu urządzenia przy pomocy diód LED
-łatwość modyfikowania programu sterującego
-niska cena i niezawodność
2. Przedstawienie serwisu internetowego
Serwis internetowy widnieje pod adresem http://www.light-menager.cba.pl .
Każdy użytkownik, aby móc w pełni korzystać ze strony musi posiadać zarejestrowane,
aktywne konto. Aktywacja konta następuje poprzez kliknięcie w unikalny link aktywacyjny
otrzymany drogą mailową. Poniżej widnieją okna logowania i rejestracji.
Rys. 2 Widok pełnej strony – obszar logowania i rejestracji
Oba powyższe formularze obsługiwane są poprzez skrypt php w połączeniu z bazą
danych mySQL. Skrypt ma za zadanie wykrywanie i informowanie użytkownika o
poprawności wykonanej operacji, a także przesłanie danych do bazy. Kod html w tym
przypadku odpowiada za dopilnowanie wypełnienia wszystkich wymaganych pól. Poniżej
przedstawiono kilka możliwych sytuacji:
Rys. 3 Przykładowe komunikaty
Po zalogowaniu jesteśmy proszeni o podanie nr IP sterownika z którym chcemy się połączyć:
Rys.4 Pierwszy krok połączenia z sterownikiem
Po podaniu numeru IP jesteśmy przekierowani do panelu, z którego możemy sterować
podłączonymi do sterownika urządzeniami (Rys. 6). Gniazdem 230V możemy manipulować
klikając w rysunek żarówki, natomiast gniazdem USB przesuwając suwak i klikając przycisk
wyślij. W przypadku gniazda USB oprócz możliwości załączenia lub wyłączenia urządzenia
możemy także regulować jego jasność. Klikając w przycisk na dole strony możemy sprawdzić
aktualny stan sterownika.
Nawigacja po stronie jest możliwa dzięki aktywnemu menu na górze strony:
Rys. 5 Nawigacja serwisu
Rys. 6 Panel sterowania
Poza możliwością sterowania oświetleniem użytkownik może także zobaczyć listę
zarejestrowanych użytkowników(Rys. 7) oraz skontaktować się z administratorem korzystając
z gotowego formularza(Rys. 8).
Rys. 7 Tabela użytkowników
Rys. 8 Formularz kontaktowy
3. Sterownik oświetlenia
Wykorzystane elementy:
Moduł WiFi ESP-01 ESP8266
-Napięcie zasilania: 3,3 V -Napięcie pracy wyprowadzeń: 3,3 V -Pobór prądu do 300 mA -Wspiera standard WiFi WiFi 802.11 b, g, n -Pracuje na częstotliwości 2,4 GHz -Wspiera zabezpieczenia WPA / WPA2 -Może pracować w trybie AP (Access Point), STA (standalone) oraz AP+STA -Moc nadajnika: 19,5 dBm -Posiada wbudowaną pamięć Flash: 512 kB -Komunikacja poprzez interfejs szeregowy UART -Posiada wbudowaną antenę PCB -Wyprowadzone dwa cyfrowe piny I/O Wymiary: 24 x 14 mm
Konwerter USB-UART FTDI 3,3/5V
-Konwerter umożliwia komunikacje pomiędzy dwoma popularnymi interfejsami szeregowymi USB i UART. Moduł oparty na niezawodnym układzie FT232RL firmy FTDI, zapewnia stabilną pracę oraz współpracę z najpopularniejszymi systemami operacyjnymi. -Moduł posiada wyprowadzenia w postaci kątowych złącz goldpin z sygnałami RxD, TxD, RTS, CTS oraz linie zasilania: PWR i GND. Poziom napięcia na pinie PWR wybierany jest przy pomocy zworki(5V lub 3,3V)
Konwerter poziomów logicznych dwukierunkowy, 4-kanałowy - SparkFun
-Moduł pozwala na komunikację pomiędzy systemami wykorzystującymi dwa najpopularniejsze poziomy napięć: 3,3 V i 5 V. -Pracuje w obu kierunkach jednocześnie. -Obniża napięcie 5 V na 3,3 V oraz podnosi 3,3 na 5 V w tym samym czasie. Ta funkcja przydatna jest w dwukierunkowych protokołach komunikacyjnych np. SPI w trybie full duplex. -Konwerter współpracuje także z napięciami niższymi: 2,8 V i 1,8 V. Posiada cztery kanały.
Arduino Leonardo
-Napięcie zasilania: 7 V do 12 V (zalecane), 6 V - 20 V (maksymalne) -Napięcie pracy: 5V -Mikrokontroler: ATmega32u4 -Maksymalna częstotliwość zegara: 16MHz -Pamięć SRAM: 2,5 kB Pamięć Flash: 32 kB (4kB zarezerwowane dla bootloadera) -Pamięć EEPROM: 1 kB -Piny I/O: 20 Kanały -PWM: 7 -Ilość wejść analogowych: 12 (kanały przetwornika A/C) -Interfejsy szeregowe: UART, I2C, SPI
Moduł 1-kanałowy przekaźnik 5V 10A
-Napięcie zasilania: 5V -Możliwość sterowania bezpośrednio z pinu procesora -Maksymalne obciążenie 10A -Sygnalizacja LED zasilania -Sygnalizacja LED stanu przekaźnika -Możliwość konfiguracji stanu przełączania (załączenie przekaźnika stanem LOW lub HIGH) -Wymiary: 50x27x20mm
BD140-16 - Tranzystor PNP 1.5A
-Typ: bipolarny, PNP -Maksymalny prąd: 1,5A -Maksymalne napięcie kolektor-emiter: 80V -Maksymalne napięcie kolektor-baza: 100V -Obudowa: TO126
Stabilizator LDO 3,3V LM1117MP
-Maksymalne napięcie wejściowe: 15V -Napięcie wyjściowe: 3,3V -Maksymalny prąd wyjściowy: 800mA -Obudowa: SOT223 – SMD
Zasilacz nokia
-Napięcie wejściowe: 100-240V -Napięcie wyjściowe: 5V -Maksymalne obciążenie: 1,3A
Dodatkowo: -przewód zasilający z włącznikiem -obudowa -kondensatory -rezystory -diody LED -płytka uniwersalna do montażu elementów w obudowie THT -gniazdo USB -gniazdo na kabel 230V
Etapy budowania sterownika:
-stworzenie listy wymaganych elementów oraz ich zakup
-wgranie aktualnego firmware do pamięci modułu ESP8266 z wykorzystaniem konwertera USB-UART
-stworzenie prototypowego układu do testowania programu sterującego(Rys. 9)
-połączenie, zlutowanie i umieszczenie całego układu w obudowie(Rys. 10)
Rys. 9 Prototyp sterownika
Rys. 10 Gotowy układ umieszczony w obudowie
Rys. 11
Rys. 12
Na powyższych zdjęciach widać układ w zamkniętej obudowie wraz włącznikiem,
sterowanym gniazdem 230V(Rys. 11) oraz gniazdem USB(Rys.12). Układ posiada dwie diody
kontrolne: zieloną i żółtą. Odpowiednio pierwsza z nich sygnalizuje włączenie zasilania, natomiast
druga gotowość urządzenia do pracy (połączenie się z siecią WiFi oraz uruchomienie serwera na
uzyskanym adresie ip).
Rys. 15
Powyższe trzy ilustracje pokazują gotowy do pracy sterownik(zapalone obydwie diody).
Na rysunku nr. 13 możemy zobaczyć zapaloną lampę podłączoną do gniazda 230V, natomiast efekt
regulacji jasności lampki LED widnieje na Rys. 14 – 15. Regulacja jasności odbywa się z
wykorzystaniem PWM oraz tranzystora NPN, natomiast rolę przełącznika gniazda 230V pełni moduł
przekaźnika sterowany napięciem 5V.
4. Podsumowanie
Efekt końcowy został osiągnięty, serwis internetowy działa, łączy się z zewnętrznym
sterownikiem i za pośrednictwem niego steruje podłączonym oświetleniem. Nie udało się jednak
uzyskać pełnej komunikacji między serwisem, a sterownikiem. Możliwe jest wysyłanie danych tylko w
jedną stronę: serwer www -> sterownik. Komunikacji sterownik -> serwer www nie udało się uzyskać.
Jest to spowodowane prawdopodobnie ustawieniami serwera, na którym znajduje się strona
internetowa. Problem braku informacji zwrotnej o stanie sterownika udało się rozwiązać poprzez
postawienie serwera na adresie ip sterownika i wyświetlania tam aktualnych danych. W oknie panelu
sterowania serwisu widnieje przycisk, który służy do przekierowania użytkowników na aktualny adres
ip zewnętrznego serwera, gdzie mogą sprawdzić bieżący stan sterownika.
Koszt części wykorzystanych do budowy sterownika wyniósł około 220 zł. Od tej ceny można
jednak odjąć 35zł z racji jednorazowego użycia konwertera USB-UART(wgranie aktualnego firmware
modułu WiFi). Docelowo w projekcie miała być wykorzystana ATmega 328P, jednakże z nieznanych
przyczyn nie było możliwe poprawne przesłanie komendy uruchamiającej serwer na aktualnym ip
sterownika. W związku z powyższym zdecydowano się użyć przetestowane w etapie prototypu
Arduino Leonardo, co w dużym stopniu przełożyło się na cenę projektu. Biorąc pod uwagę wyżej
wymienione aspekty cena części wchodzących w skład gotowego produktu mogła by wynosić nawet
około 108zł.