Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Inteligentny dom - Połączenie informatyki z elektroniką do automatyzacji domu

masterpascaler 07 Jan 2016 15:32 3090 9
Relpol
  • #1
    masterpascaler
    Level 11  
    Postanowiłem połączyć informatykę z elektroniką, aby samodzielnie zbudować tani, szybki i w pełni konfigurowalny projekt inteligentnego domu, na dodatek sterowanego głosem w języku polskim. Projekt wykorzystuje:
    - smartfona z systemem Android do rozpoznawania głosu (speech recognition) i kolejkowania zadań
    - kit AVT5353 na układzie FT232 jako moduł wykonawczy przekaźnikowy (plusem tego rozwiązania jest to że można do 1 komputera podłączyć dowolną ilość takich układów, a dzięki ich identyfikacji po numerach seryjnych można w dowolnej chwili dowolnie adresować którykolwiek, a więc mieć np. jeden w garażu, jeden w dużym pokoju, jeden w kuchni itd. itp.)
    - Raspberry Pi 2 jako moduł wykonawczy (podczerwień), oraz wejściowy (stan krańcówek, kontraktronów, zliczanie ile razy ktoś dzwonił do drzwi pod naszą nieobecność itd)
    - starego laptopa wartego 200 zł jako centrum obliczeniowe
    Program piszę w Delphi 7, całość jest mocno rozwojowa, zastanawiam się co jeszcze można zaprogramować, na tą chwilę na pewno chcę dodać w najbliższym czasie harmonogram, aby program wykonywał również zlecone na później zadania, a także rozpoznawanie czy polecenie zostało wydane w obrębie tej samej sieci wi-fi, czy będąc poza domem, wtedy feedback głosowy programu wysyłany byłby na telefon.
    Zapraszam do zapoznania się z moim kanałem, gdzie prezentuję skromne początki projektu:

    LINK

    Zapraszam do dyskusji, komentowania a także wszelakich sugestii :)
    Do you have a problem with Raspberry? Ask question. Visit our forum Raspberry.
  • Relpol
  • #2
    piterek-23
    Level 33  
    Ciekawie się zapowiada.
    Może pokażesz coś więcej?

    Najbardziej ciekawi mnie "gadanie do Androida" Jakiego programu używasz i w jaki sposób łączysz się z głównym komputerem? ;)
  • Relpol
  • #3
    masterpascaler
    Level 11  
    piterek-23 wrote:

    Najbardziej ciekawi mnie "gadanie do Androida"

    Do tego używam programu Autovoice - koszt kilka złotych w sklepie Play, jest dostępny również 7-dniowy trial. Tryb z którego korzystam to Autovoice Continous (program słucha cały czas i tłumaczy wszystko "w locie").
    piterek-23 wrote:
    Jakiego programu używasz i w jaki sposób łączysz się z głównym komputerem? ;)

    Autovoice może działać jako wtyczka do programu Tasker (kilkanaście złotych w sklepie Play), który zależnie od polecenia zapisuje do pliku odpowiednią linijkę np. monitor0, swiatlo0, tvunmute. Równolegle na telefonie działa serwer ftp (program FTP Server Pro - koszt 4 zł w sklepie Play, jest też wersja darmowa z reklamami). Z tego serwera komputer Windowsowym poleceniem ftp pobiera plik na dysk(lub nie jeśli go nie ma, czyli nie zlecaliśmy żadnego zadania), i usuwa go z serwera. Program w Delphi odczytuje komendę z pliku i wykonuje działania - ustawia odpowiednie stany przekaźników na układzie FT232, lub poprzez program Putty przygotowanymi skryptami wykonuje działanie na Raspberry - wysłanie sekwencji przycisków na podczerwień (jak widać na filmiku numer 3). Odczyt stanów GPiO Raspberry wykonuję poprzez program plink - jest to pod względem funkcjonalności taki sam program jak Putty, z tą różnicą że wypluwa do konsoli Windowsowej to co wypluje konsola na Raspberry, dzięki czemu możemy przechwycić to do pliku i zanalizować w naszym programie.
  • #4
    piterek-23
    Level 33  
    Dziękuję za wszystkie informacje.
    Jak tak sobie popatrzyłem na Twoje filmiki to aż Ci zazdroszczę normalnie-fajnie to działa ;)

    A znasz może jakiś program na Androida który by rozpoznawał mowę (taka jak u Ciebie) po rozpoznaniu polecenia wysłał coś takiego:
    curl http://IP/cos.php?on=1
  • #5
    masterpascaler
    Level 11  
    piterek-23 wrote:
    Dziękuję za wszystkie informacje.
    Jak tak sobie popatrzyłem na Twoje filmiki to aż Ci zazdroszczę normalnie-fajnie to działa ;)


    A dzięki ;)

    piterek-23 wrote:
    A znasz może jakiś program na Androida który by rozpoznawał mowę (taka jak u Ciebie) po rozpoznaniu polecenia wysłał coś takiego:
    curl http://IP/cos.php?on=1


    Także Tasker. To jest tak konfigurowalny program że pewnie nie używam ani 1% jego możliwości. Teraz tak w nim zerkam na szybko i w zadaniach sieciowych które może wykonać jest np. HTTP Post i HTTP Get, może to ci się przyda :)

    Obecnie zmieniłem telefon na nowszy, więc przy okazji zoptymalizuję program na laptopie i polecenia w Taskerze. Przyszły też dzisiaj cyfrowe termometry do Raspberry :) Przy okazji, chciałbym dodać funkcjonalność włączania czajnika elektrycznego, ale nie wiem jak rozwiązać sprawdzanie czy w czajniku jest nalana woda? Myślałem o bramce IR po dwóch stronach czajnika lub odległościomierzu, ale raz że nie wiem czy przez wodę to będzie działać jakbym chciał dwa że to już gruba przeróbka czajnika, hmm.. Jakby ktoś miał jakieś pomysły byłoby super :)
  • #6
    tomix
    Level 16  
    masterpascaler wrote:
    Myślałem o bramce IR po dwóch stronach czajnika lub odległościomierzu, ale raz że nie wiem czy przez wodę to będzie działać jakbym chciał dwa że to już gruba przeróbka czajnika, hmm.. Jakby ktoś miał jakieś pomysły byłoby super :)


    Polecam polski (chociaż bardziej chiński polecam) portal zakupowy i użycie frazy "water level sensor", rozwiązań jest multum (dla wysokich temperatur również) w tym wysokoprądowych, dzięki obejdzie się bez dodatkowych komponentów/elektroniki.
  • #7
    masterpascaler
    Level 11  
    tomix wrote:
    Polecam polski (chociaż bardziej chiński polecam) portal zakupowy i użycie frazy "water level sensor", rozwiązań jest multum (dla wysokich temperatur również) w tym wysokoprądowych, dzięki obejdzie się bez dodatkowych komponentów/elektroniki.

    Dzięki za podpowiedź, na polskim nie znajduję nic co miałoby się sprawdzić w takim zastosowaniu. Natomiast na chińskim znalazłem ciekawostkę. Czujnik składający się po prostu z diody IR i fototranzystora. Schemat:
    Inteligentny dom - Połączenie informatyki z elektroniką do automatyzacji domu
    Zdaniem chińczyków ma się to sprawdzić jako czujnik poziomu wody,hmm.. Byłoby o tyle fajne że wystarczyłoby to wkręcić w pokrywę czajnika, wyjście na konwerter A/D i odczytać na Raspberry wartość. W poniedziałek kupię fototranzystor i spróbuję czy to będzie się sprawdzać.
  • #8
    tomix
    Level 16  
    Zamierzasz wpakować RPi do czajnika? Dobrze rozumiem? :)
  • #9
    Jacek Rutkowski
    Level 27  
    Według mnie lepiej zastosować 4 lub więcej sprężynek np. przyciętych od długopisów pod podstawę czajnika dobranych tak żeby ciężar samego czajnika nie powodował opadania oraz małego switcha jako czujnik. Można nawet zastosować osobną podkładkę pod podstawę np. z małej tacy żeby nie ingerować w czajnik nie tracąc gwarancji. Wykrycie obecności wody wtedy jest 100% pewne i łatwe.
    Czujnik umieszczony wewnątrz czajnika to bardzo słaby pomysł. Wilgoć z gotowanej wody załatwi szybko każde połączenie. O estetyce i sterylności nawet nie wspominam....
  • #10
    masterpascaler
    Level 11  
    tomix wrote:
    Zamierzasz wpakować RPi do czajnika? Dobrze rozumiem? :)

    He he, oczywiście że nie :)

    Jacek Rutkowski wrote:
    Według mnie lepiej zastosować 4 lub więcej sprężynek np. przyciętych od długopisów pod podstawę czajnika dobranych tak żeby ciężar samego czajnika nie powodował opadania oraz małego switcha jako czujnik. Można nawet zastosować osobną podkładkę pod podstawę np. z małej tacy żeby nie ingerować w czajnik nie tracąc gwarancji. Wykrycie obecności wody wtedy jest 100% pewne i łatwe.

    Najlepsze rozwiązania to te najprostsze. Świetny pomysł, tak zrobię! :) Dzisiaj udało mi się ulepszyć program (właściwie ujednolicić sposób kolejkowania zadań) i przepisać wszystkie komendy do nowego telefonu (niestety Tasker nie ma funkcji import/export). Po tym jak zaspałem dzisiaj i moja musiała na mnie czekać wkurzona, siadam właśnie do opracowania harmonogramu, tak żeby móc zaplanować pewne zadania na późniejszy czas wykonania (np. "obudź mnie za pół godziny") ;)

    Dodano po 2 [godziny] 29 [minuty]:

    Na harmonogram jednak brakło czasu, za to zabrałem się za sprawdzanie pogody poprzez parsowanie pliku html pobranego przez Httrack ze strony twojapogoda.pl. Kto subskrybuje mój kanał zapewne już dostał powiadomienie, dla pozostałych link tutaj:

    Link