Inteligenty dom i małe centrum multimedialne

Inteligenty dom i małe centrum multimedialne

Witam serdecznie. 
Chciałbym przedstawić mój pierwszy projekt oparty o platformę Arduino. 
Część elektroniczną  wykonywałem sam, a program napisany został w oparciu o szablon Ethernet. Podziękowania dla użytkownika z elektrody ditomek za pomoc w zrozumieniu kodu – szablonu Ethernet.

Przeglądałem wcześniej inne projekty inteligentnych domów, ale nie wzorowałem się na nich. Projekt jest cały czas rozwijany i będzie rozwijany, stad też na chwilę obecną nie publikuję kodu źródłowego :) (dla wyjaśnienia)  Musi on przejść jeszcze poprawki oraz nie jest na 100% gotowy.

1. Platforma:
Projekt oparty jest o klon Arduino Mega oraz Ethernet shield. Za łączność Shield -> WiFi odpowiada Router Asusa. 

2. Cel projektu
Projekt jest podzielony na dwie części – inteligenty dom oraz centrum multimedialne. 
Inteligenty dom ma umożliwiać sterowaniem światłem lub kontaktami za pomocą Arduino poprzez przeglądarkę internetową, dzięki czemu każde urządzenie podłączone do sieci WiFi lub routera przez kabel Ethernet ma możliwość sterowania przekaźnikami – komputer PC, laptop, smartphone, tablet czy SmartTV. Cześć multimedialna – jest to strona www postawiona na lokalnym serwerze w domu. Można za jej pomocą oglądać filmy, zdjęcia, czy pobierać jakieś pliki. Strona jest obecnie w budowie i będzie jeszcze aktualizowana. Oparta jest o szablon, znaleziony na dysku. Oparty jest o tabelki dzięki czemu strona jest w pełni responsywna.

3. Inteligenty dom, forma przedstawienia
Projekt został przedstawiony za pomocą makiety na której umieszczone są dwie oprawki na żarówki oraz dwa kontakty. Dodatkowo umieszczone są dwa przełączniki schodowe, dzięki czemu sterowanie światłem bez problemu może odbywać się bez podłączonego Arduino. Jeśli więc z jakiś powodów Arduino odmówi posłuszeństwa nie jesteśmy pozbawieni sterowania światłem. Przekaźniki oraz przełączniki są podłączone na zasadzie dwóch przełączników schodowych – bardzo dobrze jest to wytłumaczone na serwisie YouTube. 

Wszystkie przekaźniki są połączone do kabli UTP cat. 5 – do każdego przekaźnika używane są 3 żyły – 5V, GND, Sygnał. Nie jest to przerost nad treścią ponieważ mamy jeszcze 3 wolne żyły, które w przyszłości zamierzam użyć do rozwoju projektu.
Kable zakończone końcówkami RJ 45 T568A – niektóre miałem, niektóre zaciskałem sam.
Przekaźniki to gotowe moduły, zawierają optoizolator. Można to zrobić samemu jak najbardziej, jednak cena jaka oferowana przez sąsiadów z Chin jest jest zbyt atrakcyjna.

Wiem jak dużo osób narzeka na porządek w kablach, mam nadzieję, że spełniłem Wasze oczekiwania wobec tego aspektu :)

Wszystkie kable UTP są podłączone do “płyty komunikacyjnej” która jest “pośrednikiem” pomiędzy makietą a Arduino. 
Ona również nie jest skończona, bo jak wspominałem wyżej mamy do dyspozycji jeszcze 3 żyły :)

4. Centrum multimedialne.
Tutaj screeny z komputera oraz telefonu. Na obecną chwilę 21.04.2017 działa odtwarzanie filmów. Wybór z lewego menu i wyświetlanie zawartości na środku strony realizowane jest za pomocą javyscript. Ikonka muzyki będzie zastąpiona ikoną żarówki. Nie widzę sensu odtwarzania muzyki na takiej stronie.
Jeśli chodzi o połączenie – strona wystawiona za pomocą programu XAMP na porcie 8080 z tego względu że strona na Arduino będzie działać na porcie 80. Połączenie między stroną centrum multimedialnego a a Arduino to po prostu odnośnik. 
W planach jest zrobienie logowania do strony oraz zabezpieczanie strony sterującej specjalnym hasłem. 

Na dole w stopce wyświetlana jest także aktualna data oraz godzina – zrealizowana również za pomocą javyscript. Wszystkie skrypty są mojego autorstwa.

Przewijanie filmów oraz oglądanie jest bardzo płynne. Nic się nie zacina, nie trzeba czekać na buforowanie. 

5. Podsumowanie na dzień 21.04
W najbliższym czasie postaram się dodać zdjęcia z podłączenia oraz działania. 
Program do Arduino jest prawie gotowy – na ukończeniu jest strona sterująca. 
Strona do centrum multimedialnego robi się :) 
Pokuszę się może o jakiś materiał multimedialny w postaci filmu jak to działa :)
Dzisiaj na wieczór będę dalej robił stronę. 
Postaram się też omówić kod oraz go udostępnić razem ze skryptami. 
Liczę na dobre oceny. 
Mój pierwszy post proszę więc o wyrozumiałość. Projekt będzie nadal rozwijany, szczególnie zaraz po maturach :)
Dziękuję za uwagę :)

P.S
Przy okazji pozdrawiam maturzystów :)

6. Aktualizacja 22.04 – strona WWW dla Arduino :)

Dzisiaj skończyłem pisać kod strony WWW dla Arduino. 
Jutro postaram się go udostępnić – muszę go poukładać i dodać komentarze. 
Dzięki za komentarze, nie rozumiem tylko tego pośpiechu z Waszej strony i słabe oceny za nie udostępniony kod.
Tak wygląda końcowa strona WWW:

Tutaj jeszcze filmik, przepraszam za jakość, ale dzisiaj jest już późno, a nagrywanie monitora zawsze tak się kończy :)
https://drive.google.com/open?id=0B_F5lnky8FjdbXU4cGFXc0V3aEk
Zamiast prawdziwych świateł mamy diody, mam nadzieje że to co najważniejsze widać. 
Pozdrawiam :)

7. Aktualizacja 03.06.2017
Cześć wstawiam opisany kod.
Powinien działać bez problemu.
Tutaj załączam link z bibliotekami
https://drive.google.com/open?id=0B_F5lnky8FjdOWxvd2d3YlFfNGc
które wklejamy do :
Dokumenty > Arduino.
Biblioteka IR gryzie się z biblioteką IR robots i trzeba ją usunąć.
Znajduje się ona w folderze Arduino.
U mnie jest to : C:\Program Files (x86)\Arduino\libraries
Teraz wystarczy wgrać kod do Arduino. Jak widać w programie piny 22, 24, 26 oraz 28 to piny wejściowe do przekaźników.

Tutaj wstawiam prosty programik do zamiany wyrazu na liczbę

W komentarzach wszystko jest wpisane. Jednak tutaj chciałbym jeszcze raz powiedzieć, że używając Xampa jako serwer do obrazków oraz stylów CSS należy go skonfigurować na porcie 8080. Jutro będzie aktualizacja w której pokażę jak to zrobić. Ja jednak mam w planach wykorzystać kartę SD do przechowywania obrazków, stylów CSS, może i całej strony. W najbliższym tygodniu może nagram jakiś materiał :)
UWAGI :
1. Arduino jak na razie nie ma możliwości weryfikacji tego czy światło jest zapalone czy też nie
2. W kodzie mogą być byczki oraz duplikaty, wstawiam kod działający, nie chciałem go zmieniać, ponieważ obecnie nie mam jak go przetestować
Pozdrawiam
P.S
Kod wstawiony liczę wiec na zmianę ocen :)

 

Ocena: 3.75/5 (głosów: 8)

Podobne posty

19 komentarzy do “Inteligenty dom i małe centrum multimedialne

    • Router Asus RT-N12vD – zasięg – szczerze ? Średni, nie wiele większy od Sagecom od orange który ma antenę wbudowaną. Może coś popsułem w ustawieniach, sprawdzę to na dniach i dam znać. Brak USB to też słabo. Ale ładnie wygląda :P Za tą cenę nie ma co narzekać.

      Odpowiedz
      • Takie realia, należało udostępnić kod. Zawsze można później poprawić, jeżeli bardzo Ci zależy na jego niepublikowaniu, należało zaczekać z artykułem.
        Bardzo dużo cyny poszło na tą płytkę prototypową :)

        Odpowiedz
        • Zależy jak kto lutuje, ja mam swój sposób które nie marnuje aż taki cyny.
          Końcówkę cyny dokładasz do kropki na płytce i dotykach lutownicą.
          Przez całą płytkę tam gdzie ma być ścieżka cynujesz same kropki.
          Później robisz to samo co wyżej tylko końcówkę cyny dotykach między dwie kropki.
          Nie wiem dlaczego niektórzy mają problem z tym że nie publikuję teraz kodu.
          Wykonałem połączenia, kody są testowe , gdzie 3/4 to rzeczy niepotrzebne, więc ciężko by było komukolwiek się w nich połapać.
          Pozdrawiam :)

          Odpowiedz
          • Nie mogę się zgodzić, że nie marnujesz cyny. Ja bym w tych miejscach użył kabla. W dodatku trochę to brzydko wygląda i w niektórych miejscach można mieć wątpliwości co do jakości połączenia.

            Co do kodu: artykuł po prostu nie jest kompletny bez kodu. Na majsterkowo.pl raczej są oczekiwane artykuły, które pozwalają zreplikować przedstawianą pracę. W tym przypadku kod jest zwyczajnie ciekawszy niż jak zrealizowałeś połączenia. Wiedzieliśmy już wiele wariantów inteligentnego domu na Arduino, ale w tym konkretnie Twój kod to jest coś nowego. Niestety, nie zamieściłeś go. Nawet kiepski kod jest lepszy niż brak kodu. No i jak mówiłem, mogłeś opublikować artykuł później.

            Odpowiedz
  • Ja ciągle ubolewam, że co 3 dni wychodzi nowy projekt nowego systemu automatyki domowej, każdy ma być rozwijany, każdy ma wielkie plany, po czym po 3 miesiącach projekt kończy jako artykuł na blogu opisujący jak z telefonu włączyć lampkę na biurku. Sam zresztą popełniłem również ten błąd i zabrałem się za tworzenie własnego systemu parę lat temu, po czym jednak zdecydowałem się zainwestować w system typu opensource, z którego już trochę ludzi korzysta, który ma już podstawowe klocki i są one przetestowane i sprawdzone w różnych warunkach. Mając takie zaplecze można taki system śmiało rozbudowywać o własne moduły i na prawdę nie ma w tym odrobiny wstydu, że sam tego nie zrobiłem od początku – bo tutaj na prawdę jest co robić projektując taki system od podstaw. W obecnych czasach jest to po prostu strata cennego czasu na wymyślanie koła od nowa, tym bardziej, że prócz autora nikt inny nie będzie w stanie tego systemu rozgryźć a i sam autor po roku będzie miał problem z poprawieniem czegokolwiek.

    Ze swojej strony zainteresowanym polecam system Hapcan. Społeczność jakaś wokół niego jest, ale przydała by się większa :).

    Odpowiedz
    • Z tym się nie zgodzę akurat. System ten jest bardzo prosty i nawet typowy kowalski poradzi sobie z tym.
      Największą trudnością jest tutaj wykonanie połączenia tego wszystkiego. Te kable wyglądają strasznie, ale wcale takie nie są.
      Można też się dużo nauczyć

      Odpowiedz
      • Tzn z czym się nie zgodzisz? Mogę się założyć, że system nie rozwinie się na tyle, aby którykolwiek z kowalskich chciał z niego korzystać. Takich projektów są tysiące, w tym jeden mój, który skończył w szufladzie. Po prostu samemu trudno takie coś ciągnąć bo to są naprawdę lata pracy aby taki system był używalny, łatwy w utrzymaniu, programowaniu itp. Już sama kwestia obudów, montażu tego w bezpieczny sposób zgodnie z normami to nie jest prosta sprawa. Co innego zrobić prostą tablicę z dwiema żarówkami a co innego zaplanować instalację w domu, położyć ją, podłączyć, utrzymywać i aby ktokolwiek inny w razie awarii mógł ją naprawić. Szacunek, że podejmujesz wyzwanie, ale moim zdaniem nie warto rozwiązywać w kółko tych samych problemów od podstaw – warto zainwestować swój czas w coś co już istnieje, skorzystać z tego, że ktoś inny odwalił już kawał ciężkiej roboty i się nią podzielił ze światem. To jest tak jak z programowaniem. Można wymyślić swój własny framework na którym można tworzyć swoje własne programy, ale zdecydowanie lepiej zapoznać się z istniejącymi i skorzystać z ich możliwości. Praca idzie przyjemniej bo skupiasz się na efektach a nie ma tym jak to działa pod spodem i nie rozwiązujesz od nowa tych samych problemów przez które przechodził twórca frameworka.

        Odpowiedz
        • Bartek, ten system wcale nie musi się rozwinąć do wersji powszechnej, to złe założenie. To będzie rozwiązanie lokalne i szyte na miarę możliwości autora. Z tego co widzę to automatyka w tym projekcie jest trochę “gorszym bratem” tego co będzie się działo w kwestii oprogramowania end-user’owego. Zobacz jak dopieszczona jest strona. Poczekajmy na efekt.
          Jeśli chodzi o stronę automatyki to ciężko nazwać ją póki co automatyką a na pewno smart-home.
          Jeśli chodzi o Twoją opinię co do budowy własnego lub korzystania już z istniejących platform. Powiem szczerze, że sam się długo nad tym zastanawiałem. Kusi mnie by wybrać coś i zacząć oglądać efekty. Zacząłem kiedyś czytać o Supli, zainstalowałem Domoticza i niestety stanąłem w miejscu w obu przypadkach. Nie umiem korzystać z takich framework’ów :( Nie umiem podjąć filozofii autora. Dlatego siedzę na poziomie DB, UDP i robię od podstaw. Właśnie ta nadmiarowość by narzędzie było uniwersalne mi nie pasuje.
          Dlatego czytam każdy artykuł o Arduino, kolejne “gniazdko włączacze” i kontynuuje swój rozwój i rozwój projektu.
          Przy czym zgodzę się Bartku z Tobą – nie publikuje się niedokończonych projektów na portalu DYI, chyba że są to ukończone moduły większego projektu. I jest jeszcze jedna rzecz wynikająca z Twoich słów co kuleje u 90% projektantów i developerów – DOKUMENTACJA !!! (w kodzie i wersjonowana w papierze – może być też GIT). Dokumentacja wszystkiego – kodu, przebiegu fizycznego kabli, logiki i połączeń, zachowania standardów i opisania które zastosowaliśmy. Wtedy nawet jak odłożysz na chwilę projekt to wracając szybko się wdrożysz a nie porzucisz projekt.
          Ja obecnie stanąłem na zagadnieniu, czy czujniki powinienem oprzeć o NRF i przesyłać dane do stacji NRFEthernet, która odłoży to insertem do DB, czy od razu podpinać je do ESP i poprzez WiFi odkładać w DB. Pierwsze rozwiązanie to problem SPI (ENC i NRF) a drugie pobór mocy i bezpieczeństwo. Póki co testuję drugie rozwiązanie.

          Odpowiedz
  • Kolejny projekt typu „chwalimy się – nie pokazujemy szczegółów”.
    Pomysł fajny, projekt fajny ale sorry, dla majsterkowicza, który chciałby skorzystać albo czegoś się nauczyć jest prawie bezwartościowy :(

    Odpowiedz
  • Cierpliwości :) We wtorek będzie można już zobaczyć kod arduino, stronę oraz skrypty.
    Projekt będzie można zobaczyć we wtorek/środę w Piasecznie koło Warszawy, więcej info – priv :)

    Odpowiedz
  • “Dodatkowo umieszczone są dwa przełączniki schodowe, dzięki czemu sterowanie światłem bez problemu może odbywać się bez podłączonego Arduino. Jeśli więc z jakiś powodów Arduino odmówi posłuszeństwa nie jesteśmy pozbawieni sterowania światłem”

    A w tym miejscu jaki masz patent na sprawdzenie aktualnego stanu światła?
    Bo widzisz… jeśli zapalisz światło z arduino, a wyłączysz ręcznie to… arduino skąd ma wiedzieć czy światło świeci czy jest zgaszone?
    Jeśli arduino nie będzie znać stanu światła to sterowanie (a tym bardziej na odległość) przez arduino staje się bezużyteczne – także chętnie poznam jaki pomysł Ty zastosowałeś (lub właśnie uświadomiłem Ciebie o sporym braku w projekcie) :)

    Odpowiedz
    • Hej,
      A w tym miejscu jaki masz patent na sprawdzenie aktualnego stanu światła?
      Patent jest bardzo prosty – Wpinasz się pod gniazdo żarówki lub wyjście przełącznika. Z 230V zasilasz transoptort – w tej chwili będę robił to na zasilaczu impulsowym, 230 ~ > 5V, następnie przetwornica step down i zasilenie transoptora.
      Tak wiem można zamiast przetwornicy dać rezystor, ale w moim przypadku nawet przy dużych rezystorach transoptory uległy przepaleniu.
      Będę jeszcze testować zasilanie prosto z 230V > kontestatory MKT, rezystor i dioda prostownicza, muszę zamówić więcej transoptorów.
      Następne aktualizacje projektu będą po maturach,
      Pozdrawiam :)

      Odpowiedz
  • Przeglądam Twoje projekty i jestem pod wrażeniem! Mam pytanie naury zasobów, gdzie się zaopartujesz? Ja natknąłem się w necie na stronę https://dlaelektrykow.pl/ i wydają się mieć dosyć uczciwe ceny i szybką dostawę. Korzystałeś może? A możesz polecić coś jeszcze? Teraz zdecydowanie będę zaglądał tu regularnie :)

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?