Sterowanie oświetleniem domu za pomocą Arduino

IMG_20150406_113656W ostatnim poście opisywałem jak sterować pinami w Arduino za pomocą biblioteki Teleduino. Dzisiaj chciałem pokazać praktyczny przykład jak wykonać sterowanie oświetleniem domu za pomocą Arduino. W tym celu wykorzystamy moduł przekaźnika 220V (koszt około 7zł). Zasada jest bardzo prosta. Przekaźniki elektromagnetyczne działają na zasadzie elektromagnesu: prąd płynący w cewce przekaźnika wywołuje pole magnetyczne przyciągające żelazną kotwiczkę, która zamyka (lub otwiera) odpowiedni styk lub grupę styków. W naszym przypadku wysyłamy na wybrany pin podłączony do przekaźnika stan wysoki i w tym momencie przekaźnik zamyka obwód a prąd zaczyna płynąć. Poniżej przedstawiam schemat połączeniowy.

Sterowanie oświetleniem domu za pomocą Arduino
1. Układ testowy

 

Podczas łączenia obwodu proszę zachować ostrożność i uwagę, gdyż w tym wypadku pracujemy z prądem 220V, który stanowi niebezpieczeństwo dla życia i zdrowia.

Sterowanie przekaźnikiem obywa się dokładnie na takiej samej zasadzie jak sterowanie zwykłą dioda led. Dokładny opis znajduje się w tym poście. 


Dzięki temu modułowi, możemy w bardzo prosty sposób sterować wybranymi urządzeniami wysokiego napięcia przez Internet. Biblioteka Teleduino posiada nie tylko metody sterowania pinami. Ostatnio w dokumentacji znalazłem metodę, która zwraca nam stany wszystkich pinów. I w tym momencie rozwiązałem problem informowania użytkownika o stanie zasilania danego urządzenia.

Aplikacja do sterowania oświetleniem
2. Aplikacja do sterowania oświetleniem

 

Po użyciu metody getAllInputs zostaje nam zwrócona informacja z danymi na temat wszystkich pinów.

Poszczególne liczby po „values” są to stany pinów, zaczynając od A0 do A13, sześć ostatnich to piny analogowe. Informacja zwracana jest jako tablica wielowymiarowa za pomocą JSON, co umożliwia nam szybką obróbkę otrzymanych danych. Aplikacja kliencka oparta jest o PHP więc potrzebowałem funkcji, która odwoła się do danych w tej tablicy. Jak odczytywać dane znalazłem tutaj oraz w oficjalnej dokumentacji phpNie będziemy zajmować się pisaniem kodu PHP, gdyż jest to inna tematyka. Jeżeli ktoś jest zainteresowany lub potrzebuje pomocy proszę o kontakt.

Ogólna zasada działania aplikacji:

  1. Wyświetlenie listy dostępnych pokoi gdzie zainstalowane są przekaźniki.
  2. Sprawdzenie stanów konkretnych pinów (metoda GetAllInputs).
  3. Wyświetlenie stanu pinu w formie obrazka.
  4. Wyświetlenie przycisku akcji w zależności od stanu pinu (wyłącz/włącz).
  5. Informacja zwrotna po wciśnięciu konkretnego przycisku.

Podsumowując: kolejny raz zachwalam projekt Teleduino. Dzięki tej bibliotece, mamy nieograniczone możliwości sterowania naszym projektem przez Internet. Tylko od nas zależy jak wykorzystamy udostępnione nam funkcje. Komunikaty zwrotne pozwalają nam zbudować funkcjonalności do interakcji z użytkownikiem. Wymiana informacji jest bezpośrednia i nie musimy korzystać z baz danych. Dane są aktualne i przesyłane na bieżąco.

IMG_20150406_114605 IMG_20150406_113743

5 myśli na temat “Sterowanie oświetleniem domu za pomocą Arduino

  1. Hej! Dzięki za kolejny świetny opis projektu! Mam pytanko. Jak zrobiłeś w php zmianę kontrolek z zielonej na czerwoną(wiem że to obrazki 🙂 ) oraz zmianę klasy przycisku? Czy też może podmieniasz całe przyciski?

  2. Cześć, zobacz sobie pliki źródłowe http://www20.zippyshare.com/v/IAsqASkI/file.html . Zasada jest prosta – pobieram sobie tablice stanów pinów za pomocą teleduino. Po użyciu metody getAllInputs zostaje nam zwrócona informacja z danymi na temat wszystkich pinów:

    {“status”:200,”message”:”OK”,”response”:{“result”:1,”time”:0.45036482810974,”values”:[1,1,0,0,0,1,0,1,0,0,1,1,1,0,1023,1023,658,545,341,399,373,354]}}

    Poszczególne liczby po „values” są to stany pinów, zaczynając od A0 do A13, sześć ostatnich to piny analogowe. Informacja zwracana jest jako tablica wielowymiarowa za pomocą JSON, co umożliwia nam szybką obróbkę otrzymanych danych.

  3. Czy to wszystko da się uruchomić na arduino mega adk podłączonego do sieci poprzew WIFI przes ESP8266 czy wymagany jest ethernet shield ?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *