Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterownik Bluetooth - kontrola w zasięgu komórki

poczitamagoczi 12 Lip 2010 14:00 13749 19
  • Sterownik Bluetooth - kontrola w zasięgu komórki

    Niedawno w San Francisco odbyła się premiera nowego IPhona, teraz ja na elektrodzie, ogłaszam równie ważną dla ludzkości premierę mojego sterownik bluetooth noszącego roboczą nazwę BlueGate.

    Poniżej przedstawiam parametry techniczne:
    - 4 wejścia cyfrowe
    - 4 wyjścia przekaźnikowe z wyprowadzeniami NC i NO. Zakres napięć wyjściowych: od 12 do 30V dla prądu stałego oraz od 24 do 250V dla prądu zmiennego
    - zegar RTC pozwalający na ustalenie czasu danego zdarzenia
    - moduł komunikacyjny Bluetooth posiadający zasięg 100m (klasa 1) BTM222
    - termometr ds18b20
    - wyjście komunikacyjne RS 485 pozwalające na komunikacje z innymi urządzeniami automatyki budynkowej, istnieje możliwość komunikacji przy użyciu protokołów Modbus lub BacNet
    - wyjścia pozwalające na podpięcie panelu kontrolnego, składającego się z wyświetlacza, klawiatury oraz buzera.

    Wejścia i wyjścia są oczywiście zabezpieczone transoptorami. Od strony zasilania układ jest zabezpieczony filtrem EMC dla spełnienia wymogów CE.
    Rysunki schematu i zarys płytki przedstawiam poniżej :
    Sterownik Bluetooth - kontrola w zasięgu komórki Sterownik Bluetooth - kontrola w zasięgu komórki Sterownik Bluetooth - kontrola w zasięgu komórki Sterownik Bluetooth - kontrola w zasięgu komórki





    A tak wygląda sterownik w całości:
    Sterownik Bluetooth - kontrola w zasięgu komórkiSterownik Bluetooth - kontrola w zasięgu komórki

    Oprogramowanie:
    Mikrokontroler oprogramowałem w AVR-GCC. Program sterujący opiera się na algorytmie szeregowania zadań który sam napisałem. Stosuje też semafory, sekcje krytyczne i flagi systemowe więc można powiedzieć że jest to taki mini RTOS ;) Najistotniejszym zasobem urządzenia jest oczywiście moduł btm222 wszystko to co nadeśle jest ładowane do kolejki FIFO i w odpowiednim czasie obsłużone przy czym maksymalna zwłoka po odbiorze paczki danych wynosi 2 ms.
    Kwesje bezpieczeństwa dostępu rozwiązałem tak:
    Urządzenie zewnętrzne musi wysłać specjalny kod aby mgło uzyskać dostęp do kontroli sterownika, taki sam kod na podstawie pewnych parametrów generuje sterownik, musi on dość szybko dokonać obliczeń dlatego też zastosowałem kwarc 16 MHz. Niby standard bluetooth sam w sobie umożliwia kodowanie transmisji ale w większość komórek z którymi się zetknąłem (programując pod J2ME przy wykorzystaniu JSR82) było to niemożliwe.

    Od strony telefonu komórkowego napisałem małą ale efektowną aplikacje komunikującą cię na żądanie ze sterownikiem.
    Sterownik Bluetooth - kontrola w zasięgu komórkiSterownik Bluetooth - kontrola w zasięgu komórki
    Powstało parę wersji oprogramowania na telefon komórkowy,
    - do sterowania bramą
    - do sterowania roletami
    - do otwierania przejść na zakładzie przemysłowym(konkretnie 3 przejść, furtka i drzwi x2), ta wersja pełni jednocześnie funkcje rejestratora wejść.
    Tak to wygląda w praktyce:

    Sterownik rejestruje też wszystkie wejścia , dane te można odczytać za pomocą programu komputerowego połączonego że sterownikiem przez rs485. Z programu można też bezpośrednio otworzyć jakieś przejście. Obecnie pracuje też nad połączenie za pomocą bluetootha.
    Sterownik Bluetooth - kontrola w zasięgu komórkiSterownik Bluetooth - kontrola w zasięgu komórkiSterownik Bluetooth - kontrola w zasięgu komórki

    Teraz pracuje nad oprogramowanie wersji z LCD i przyciskami oraz nad stworzeniem softa dedykowanego do telefonów z Symbianem.

    Sterownik Bluetooth - kontrola w zasięgu komórki


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • #2 12 Lip 2010 16:16
    Tomekddd
    Poziom 23  

    AVE \m/
    Bardzo ciekawe urządzenie.
    Z czego uczysz się J2ME? Od dawna chcę sobie popisać w tym języku szczególnie obsługę bluetooth ale żadnego ciekawego poradnika nie znalazłem.
    Czy transmisja między sterownikiem a telefonem jest ciągła? czy tylko telefon wysyła komendę po ingerencji użytkownika?

  • #3 12 Lip 2010 18:31
    917964
    Użytkownik usunął konto  
  • #4 12 Lip 2010 18:55
    poczitamagoczi
    Poziom 14  

    Cytat:

    Z czego uczysz się J2ME?

    Swego czasu przestudiowałem sobie "J2ME praktyczne projekty" , no ale osobiście nie zam dobrej polskiej książki opisującej wnikliwie J2me i bluetootha.
    Cytat:

    Czy transmisja między sterownikiem a telefonem jest ciągła? czy tylko telefon wysyła komendę po ingerencji użytkownika?

    Połączenie trwa tylko krótką chwile, po przyjęciu kodu oraz komendy urządzenia są rozłączane. Połączenie jest inicjalizowane przez użytkownika komórki który wydaje konkretną komendę w programie J2me.
    Cytat:

    Ile kosztuje wykonanie takiego jednego modułu?

    Przy serii dziesięciu sterowników koszt samych elementów jednego sterownika to około ~ 180 zł. Najdroższy jest elementy to
    btm222
    płytka
    przekaźniki
    atmega 128

  • #5 12 Lip 2010 19:01
    tmf
    Moderator Mikrokontrolery Projektowanie

    Ciekawy projekt. Mam kilka pytań - po co zabezpieczałeś transoptorem przekaźniki? Z ich strony ci nic nie grozi :) A wsadzenie tam transoptora przy braku separacji galwanicznej zasilania jest IMHO bez sensu. Druga rzecze to podłączenie transceivera RS485. Widze podłączone piny Rx i Tx, ale nie RE/DE - to błąd, czy tylko na schemacie tak to wygląda? Przy wejściach cyfrowych dodałbym jakieś zabezpieczenie samych transoptorów. Jakiś transil?

    Dodano po 1 [minuty]:

    No i mała uwaga - fajnie, że pomyślałeś o ograniczeniu dostępu poprzez jakieśtam szyfrowanie - dlaczego nie zdecydowałeś się na jakąś gotową implementację powszechnie uznanych metod, np. AES?

  • #6 12 Lip 2010 19:43
    poczitamagoczi
    Poziom 14  

    Cytat:
    Nie wiem dlaczego kojarzy mi się to z komercyjną produkcją.

    I jest to komercyjny produkt. Jednak zgodzenie z zasadami tego działu przedstawiam konkretne rozwiązania techniczne.

    Dodano po 39 [minuty]:

    Cytat:
    Ciekawy projekt. Mam kilka pytań - po co zabezpieczałeś transoptorem przekaźniki? Z ich strony ci nic nie grozi Smile A wsadzenie tam transoptora przy braku separacji galwanicznej zasilania jest IMHO bez sensu. Druga rzecze to podłączenie transceivera RS485. Widze podłączone piny Rx i Tx, ale nie RE/DE - to błąd, czy tylko na schemacie tak to wygląda? Przy wejściach cyfrowych dodałbym jakieś zabezpieczenie samych transoptorów. Jakiś transil?

    Kurde no i wyszło że jestem niedouczony :P myślałem że te przekaźniki mogą czasami posłać jakieś groźne piki więc postanowiłem to tak rozwiązać, sugerowałem się wtedy jakimś podobnym projektem ale teraz nie pamiętam. RE/DE jest wyprowadzone tylko akurat tam uciąłem screnna .

    Cytat:
    No i mała uwaga - fajnie, że pomyślałeś o ograniczeniu dostępu poprzez jakieśtam szyfrowanie - dlaczego nie zdecydowałeś się na jakąś gotową implementację powszechnie uznanych metod, np. AES?

    To chyba wiara we własny geniusz :P A na poważnie to liczyłem że autorskie rozwiązanie będzie czynnikiem który zwiększy bezpieczeństwo, w końcu nikt oprócz mnie algorytmu nie zna ;) Ale myślałem też o AES...

  • #7 12 Lip 2010 20:17
    wtl
    Poziom 10  

    Projekt fajny kosztował zapewne dużo pracy.

    Cytat:
    Teraz pracuje nad oprogramowanie wersji z LCD i przyciskami oraz nad stworzeniem softa dedykowanego do telefonów z Symbianem.


    Taka mała wskazówka jeśli kolega chce pisać w J2ME pod Symbianem i realizować połączenia RFCOM (SPP) z modułami BTM to życzę powodzenia. Łatwiej będzie zapewne skorzystać z SDK dostępnego dla Symbiana gdyż JAVA i Symbian nie zawsze chcą dzielić się zasobami.

    Pozdrawiam

  • #8 12 Lip 2010 21:08
    poczitamagoczi
    Poziom 14  

    Cytat:
    Taka mała wskazówka jeśli kolega chce pisać w J2ME pod Symbianem i realizować połączenia RFCOM (SPP) z modułami BTM to życzę powodzenia. Łatwiej będzie zapewne skorzystać z SDK dostępnego dla Symbiana gdyż JAVA i Symbian nie zawsze chcą dzielić się zasobami.

    Miałem na myśli to że jestem w trakcie pisania aplikacji natywnej w C++ pod Symbiana bo aplikacja J2ME działają mi bez problemów na komórkach z Symbianem. Program J2ME testowałem na Nokii 6220 Classic, Nokii 6330 i Nokii E71. Owszem swego czasu miałem problemy z obsługą jsr82 i komunikacją z modułem btm222, w sumie spędziłem nad rozwiązaniem tego problemu parę bezsennych nocy ale w końcu się udało. Cały myk polega na ustaleniu odpowiedniej zwłoki czasowych po nawiązaniu połączenia, podaje Ci na tacy całą tajemnice .

  • #9 12 Lip 2010 21:50
    szymon122
    Poziom 37  

    nie no gościu piękna robota !!!! :D
    i chyba dobrze rozumiem że ten program działał by na zwykłej nokii która obsługuje jave??

  • #10 12 Lip 2010 22:51
    Svavo
    Poziom 23  

    poczitamagoczi napisał:
    (..)
    - 4 wyjścia przekaźnikowe z wyprowadzeniami NC i NO. Zakres napięć wyjściowych: od 12 do 30V dla prądu stałego oraz od 24 do 250V dla prądu zmiennego
    (..)

    Skąd wzięły się minimalne napięcia wyjściowe - przecież to styki przekaźników? Napięcia zdaje się, że mają być 250Vac i 300Vdc, obciążalność 10A (opis na przekaźnikach). Transoptory nie są konieczne.

    Nie myślałeś o podtrzymaniu bateryjnym w razie zaniku sieci?

  • #11 13 Lip 2010 00:31
    poczitamagoczi
    Poziom 14  

    Cytat:
    i chyba dobrze rozumiem że ten program działał by na zwykłej nokii która obsługuje jave??

    Na niektórych starszych komórkach z JAVĄ które posiadają profil MIDP 1 aplikacja nie pójdzie. No ale na rynku teraz dominuje standard MIDP 2 i na tych modelach aplikacja chodzi bez problemu.
    Cytat:
    Skąd wzięły się minimalne napięcia wyjściowe - przecież to styki przekaźników? Napięcia zdaje się, że mają być 250Vac i 300Vdc, obciążalność 10A (opis na przekaźnikach). Transoptory nie są konieczne.

    Wartości wiozłem z opisu na przekaźnikach ;) Pisze tam :
    10A250V~AC
    10A30VDC

  • #13 13 Lip 2010 07:32
    krzysztofh
    Poziom 29  

    Gratuluję Koledze wykonania ale przede wszystkim wiedzy programistycznej.
    Chylę czoła.
    Mam pytanie dotyczące płytki. Wygląda na bardzo ładą. Jeżeli to wykonanie komercyjne, to pewnie była robiona na zamówienie. Jeżeli tak to dlaczego nie ma na niej opisów elementów?
    Natomiast jeżeli były wykonywane samodzielnie to proszę i parę słów na temat soldermaski.

    Jeżeli chodzi o funkcjonalność urządzenia to powiem - taka sobie IMHO.
    Przy otwieraniu bramy zdecydowanie prostszym rozwiązaniem jest użycie pilota kodowanego. Jedno naciśnięcie guzika i już. Zabawa z komórką podjeżdżając samochodem ... ?
    Dlaczego Kolega zdecydował się na takie rozwiązanie?

  • #14 13 Lip 2010 15:30
    poczitamagoczi
    Poziom 14  

    Avatrar a jakiego frameworka używasz do J2ME? Moim zdaniem NetBeans jest bezkonkurencyjny.

    Cytat:
    Jeżeli to wykonanie komercyjne, to pewnie była robiona na zamówienie. Jeżeli tak to dlaczego nie ma na niej opisów elementów?

    No wykonanie na zamówienie ale w ramach oszczędności w wersji bez opisu elementów.
    Cytat:

    Jeżeli chodzi o funkcjonalność urządzenia to powiem - taka sobie IMHO.
    Przy otwieraniu bramy zdecydowanie prostszym rozwiązaniem jest użycie pilota kodowanego. Jedno naciśnięcie guzika i już. Zabawa z komórką podjeżdżając samochodem ... ?
    Dlaczego Kolega zdecydował się na takie rozwiązanie?

    Przede wszystkim chciałem sprawdzić jak to jest , każde rozwiązanie ma swoje mocne i słabe strony. Aplikacje otwierającą bramę można odpalić też jednym przyciskiem na niektórych modelach telefonu (np. przez klawisz dedykowany w Nokii 6220C) w innych zazwyczaj trzeba kombinować ze skrótami klawiszowymi naciskając od 3 do 4 przycisków... Od razu zanim zrobi to kto innym mogę wymienić inne wady rozwiązania jakimi są : dość słaby zasięg telefonów komórkowych wyposażonych w moduły BT klasy1 czyli teoretycznie do 10m praktycznie do 20 m na otwartym terenie. Kolejną wadą może być awaryjność telefonów, miałem wcześniej parę pytań co jeśli wyczerpie się bateria w komórce - no ale to są wady które często są wynikiem nawyków ludzkich, można je łatwo zniwelować (kupując np. zapasowy akumulatorek albo ładowarek samochodową za 10 zł)

    Ale główną zaletą takiego rozwiązania jest właśnie nawiązywanie połączeń z większą ilością urządzeń elektronicznych (docelowo urządzenie może być sterowane i z laptopa i z komórki), jeśli chcemy komuś dać dostęp do jakiegoś obiektu wtedy wystarczy wgrać tylko aplikacje a nie dzwonić po kolejnego pilota. Jeśli chcemy możemy też łatwo wykasować jego IP Bluteooth z programu sterującego i odciąć mu dostęp. Wszystko może być pod nadzorem jakiegoś systemu kontroli.

    Nie mowie że to rozwiązanie jest lepsze czy gorsze, stwarzam porostu alternatywę.

  • #15 13 Lip 2010 17:37
    Ficu
    Poziom 31  

    Witam,
    jakiś czas temu zrobiłem zdalne odpalanie skutera przez bluetooth. Niestety nie potrafiłem napisać aplikacji w javie która będzie mi obsługiwała urządzenie więc byłem zmuszony użyć terminala w wm.
    Czy trudne byłoby napisanie aplikacji w javie która wysyłałaby komendy jak np. hyperterminal? Czyli np. komenda 10 + znak entera.

    Pozdrawiam

  • #16 17 Lip 2010 12:05
    perkins1
    Poziom 11  

    Witam.mam pytanko dotyczące zasięgu ze strony sterownika jest to 100m interesuje mnie jak to wygląda ze strony fona np.mój LG kp501 ledwo daje rade na pare metrów jak to wypada w twoim przypadku?

  • #17 18 Lip 2010 10:48
    fixian
    Poziom 21  

    Telefon ma zasięg ok. 10 metrów

  • #19 18 Lip 2010 20:57
    marcelix007
    Poziom 14  

    Niby tak. W moim robocie używam btm222 z anteną od routera +2dB oraz standardowy gwizdek z bluetooth 2 klasy do komputera i uzyskiwałem zasięgi około 150 metrów(ponad). Przy wbudowanym module BT w laptopie zasięgi były również spore.

  • #20 18 Lip 2010 21:51
    Brzozza93
    Poziom 15  

    Cytat:
    Niby standard bluetooth sam w sobie umożliwia kodowanie transmisji ale w większość komórek z którymi się zetknąłem (programując pod J2ME przy wykorzystaniu JSR82) było to niemożliwe.
    A hasło używane do powiązania urządzeń BT? Ono generuje klucz szyfrujący.
    Tak na marginesie, może być ono nawet alfanumeryczne, np. na Nokii trzymając # przełączamy się z 123 na ABC