Sterowanie oświetleniem przez wifi – prototyp

Projekt powstał jako przejaw totalnego lenistwa, niema nic gorszego niż odrywanie się od pisania programu aby zapalić światło, albo zgasić gdy okazuje się, że już rano. Założenia są proste, możliwość załączania i wyłączania oświetlenia, oraz regulacja jasności. Dodatkowo cały system ma tyć niewidoczny z punktu widzenia codziennego użytkowania, czyli tradycyjny włącznik światła ma działać bez zmian. Oraz całość ma pobierać jak najmniej energii.

Źródło światła

Oświetlenie do wysterowania to cztery halogenki zasilane z 12V, gdzie każda żarówka jest o mocy 10W. Pierwszym krokiem była wymiana źródła światła. W tym celu zakupiłem żarówki LED z odpowiednim mocowanie (G4) o mocy 2W. Po podmianie jednej okazało się, że światło ma bardzo podobną barwę do oryginalnego oświetlenia a nawet jest trochę mocniejsze. Dzięki temu zabiegowi zmniejszyłem pobór energii o 80% bez strat na jakości oświetlenia.

Kolejnym plusem zmiany źródła światła jest uproszczenie układu sterowania. Wystarczy mały tranzystor bipolarny, w testach zastosowałem BC337, oraz rezystor ograniczający prąd bazy.

Obsługa wyłącznika naściennego

Początkowo nie chcąc rozkuwać ściany w celu dostania się do zagipsowanej puszki postanowiłem wykrywać stan wyłącznika sprawdzając czy wyłącznika podaje fazę lub nie. W tym celu wykonałem prosty układ wykrywania fazy. Po sprawdzeniu kilku rozwiązań uzyskałem zadowalający efekt i na wyjściu układu otrzymuje 5V lub 0V zależnie od pozycji wyłącznika.

Ostatecznie spaskudziłem ścianę i dostałem się do puszki, więc w docelowym układzie jednak będzie to wykonanie w prostszy sposób. Wyłącznik będzie pracował jako zwykły przełącznik.

Sterownik

Jako układ sterowania w prototypie zastosowałem Raspberry Pi 3, głównie ze względu na to, że leżał mi akurat na biurku, i ma wszystko co potrzeba (wifi, oraz porty GPIO z PWM).

Oprogramowanie

Program powstał przy użyciu biblioteki Qt5 wraz z modułem Qt MQTT, oraz biblioteki WiringPi. A całość napisałem w środowisku Qt Creator.

Jak już wspomniałem wcześniej wykorzystałem protokół MQTT do komunikacji ze światem. W ten sposób ułatwiłem sobie kwestie aplikacji sterującej, ponieważ może to być jakiekolwiek urządzenie wspierające komunikacje z wykorzystaniem protokołu MQTT, może to być na przykład smartfon z zainstalowaną odpowiednią aplikacją.

Kod programu testowego można obrać z adresu https://github.com/PawelJanik/roomLightTest.git  choć nie jest to żaden wzorzec jak należy programować. Jest tam raczej sporo rozwiązań testowych, które lepiej wykonywać w inny sposób, a na pewno w mniej chaotyczny.

Sterowanie mobilne

Do sterowania mobilnego z telefonu wykorzystałem gotową aplikację, która robi dokładnie to co trzeba. Po sprawdzeniu kilku dostępnych apek uznałem, że najlepiej korzysta mi się z Iot MQTT Panel która jak najbardziej polecam.

Podsumowanie

Prototyp sprawdza się bardzo dobrze, zastosowane rozwiązania spełniają początkowe założenia. Jednak w docelowym układzie wprowadzę kilka zmian. O pierwszej już wspomniałem, czyli zmodyfikuję odpowiednio instalację elektryczną aby wyłącznik światła dawał tylko informację zwarty/rozwarty. Kolejną dużą zmianą będzie ESP8266 jako kontroler. Umożliwi to zmniejszenie poboru energii, oraz kosztów samego układu.

Dodatkowo wprowadzę pomiar poboru energii przez oświetlenie, w sumie tylko jako ciekawostkę. Przy okazji dołączę do układu czujnik temperatury oraz wilgotności i może coś mi jeszcze przyjdzie do głowy. W przyszłości myślę także o funkcji załączania oświetlenia razem z budzikiem, ale mając oświetlenie podłączone do świata (internetu) myślę, że przyjdą mi do głowy jeszcze inne bardziej lub mniej praktyczne pomysły.

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.