Lampka biurkowa dla leniwych

Chciałbym zaprezentować mój kolejny projekt, który jest przejawem totalnego lenistwa i wygody. Jest nim modyfikacja lampy biurkowej, która pozwala na sterowanie światłem przez internet. Teraz już nigdy nie będę próbował wyjechać kursorem myszki poza ekran i wcisnąć przycisk na lampce (całkiem często się zdarzało), tylko wejdę na odpowiednią zakładkę na moim panelu sterowania i załączę bądź wyłączę światło. I to wszystko bez odrywania ręki od myszki i zmiany długo układanej pozycji na fotelu. Aby nie było to urządzenie takie próżne to dołożyłem 5 sztuk cyfrowych LEDów WS2812, które mogą sygnalizować cokolwiek, w moim przypadku najczęściej jest to temperatura wody w instalacji CO, lub temperatura na zewnątrz.

Elektronika

Zasilanie

Ze względu na żarówkę LED cały układ zasilany jest z zasilacza wtyczkowego 12V, które jest następnie obniżane przez przetwornicę do 5V. Te napięcie służy do zasilania diod WS2812 oraz stabilizatora napięcia LF33, który daje napięcie 3.3V. Dzięki zastosowaniu przetwornicy step-down ograniczyłem straty energii, co jest bardzo ważne, że względu, że urządzenie jest stale zasilane.

Mikrokontroler

Do sterowania lampą wybrałem mikrokontroler ESP8266 osadzony w module ESP12. W ten sposób załatwiłem komunikacje ze światem i sterowanie za jednym razem.

Sterowanie żarówką LED

Mikrokontroler steruje żarówką przy użyciu metody PWM. Jako element wykonawczy zastosowałem najprostsze możliwe rozwiązanie, czyli tranzystor bipolarny NPN BC337. Równolegle do żarówki dałem kondensator elektrolityczny o pojemności 470μF. Pojemność została dobrana doświadczalnie i ma na celu eliminację widocznych przeskoków jasności podczas zmian.

Czujniki

Do kontaktu z fizycznym światem lampa ma do dyspozycji dwa czujniki. Jednym z nich jest przełącznik, a drugim czujnik światła bazujący na fotorezystorze.

Obwód drukowany

Jest to pierwsza płytka PCB dwustronna jaką wykonałem w warunkach domowych i nawet jestem zadowolony. Co prawda wszystko zmieściło by się na jednej stronie ale jednak ze względu na diody WS2812 które musiały być na górnej warstwie zastosowałem taki druk a nie inny. Potraktowałem to jako ćwiczenie.

Oprogramowanie ESP12

Całość oprogramowania bazuje na moim wcześniejszym projekcie sterowania głównym oświetleniem w pokoju. Jego główne zadania to:

  • subskrybowanie i publikowania danych przez protokół MQTT
  • przetwarzanie otrzymanych informacji i podejmowanie stosownej akcji
  • obsługa programowania OTA

Całość programu powstała z wykorzystaniem środowiska Arduino, oraz programu Atom z wtyczką PlatformIO.

Problemy natury mechanicznej

Oryginalnie lampka była zasilana przez tradycyjny transformator sieciowy obniżający napięcie do 12V. Po wymontowaniu transformatora okazało się, że pełnił on także inną bardzo ważną funkcje. Był też najzwyklejszym ciężarkiem. Bez niego lampka przewracała się do przodu. W jakiś sposób musiałem uzupełnić tą brakującą masę (około 400g). Najprostszym rozwiązaniem było by zostawienie transformatora tak jak był, tylko go nie podłączać, ale nie podobało mi się to rozwiązanie. Postanowiłem wykonać okrągły ciężarek przykręcany od spodu lampy. Płytka pełniąca funkcję ciężarka została wycięta na zamówienie laserem ze stali nierdzewnej o grubości 4mm. W ten sposób udało się uzupełnić masę brakującą po transformatorze a lampa znowu stała się stabilna.

Zużycie energii

Ponieważ lampka jest cały czas załączona, to jednym z moich celów była minimalizacja zużycia energii. W tym celu zastosowałem impulsowy zasilacz wtyczkowy, do obniżenia napięcia zastosowałem przetwornicę, oraz wymieniłem 20W żarówkę na oszczędną LED 2W.

Gdy żarówka LED oraz diody WS2812 nie świecą to lampka pobiera z sieci tylko 0.5W, a gdy ustawimy wszystkie źródła światła na maksymalną moc to pobór energii osiąga 2.9W.  Dla porównania oryginalnie lampa pobierała około 25W. Takie parametry uznaję z zadowalające choć wiem, że poprzez odpowiednie usypianie układu na pewno dało by się osiągnąć więcej.

 

Panel sterowania

Od sterowania lampką dorobiłem dodatkowy moduł w moim panelu wykonanym w Node-RED.

Składa się on z dwóch części, jedna służy do sterowania żarówką LED, a druga pozwala skonfigurować pracę diod RGB. Możemy wybrać która temperatura ma być sygnalizowana, możemy ręcznie ustawić kolor, oraz sterować jasnością w trybie automatycznym i ręcznym. Tryb automatyczny wykorzystuje informację z wbudowanego czujnika światła.

Podsumowanie

Projekt sprawia wiele radości, szczególnie, że korzystam z tej lampki codziennie, a sygnalizacja temperatur jest bardzo intuicyjna. Dzięki czujnikowi światła diody RGB nie oślepiają w nocy, a w dzień są odpowiednio widoczne.

Cała dokumentacja projektu jest dostępna na moim githubie pod adresem: https://github.com/PawelJanik/WiFi-Controller-desk-lamp

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.