53
AKADEMIA GÓRNICZO-HUTNICZA IM. STANISLAWA STASZICA W KRAKOWIE WYDZIAL INFORMATYKI, ELEKTRONIKI I TELEKOMUNIKACJI KATEDRA ELEKTRONIKI PRACA DYPLOMOWA INŻYNIERSKA BEZPRZEWODOWA SIEĆ KONTROLNO-STERUJĄCA Z INTERFEJSEM BLUETOOTH DLA URZĄDZEŃ MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE FOR MOBILE DEVICES WITH ANDROID SYSTEM Imię i nazwisko: Lukasz Tomaszowicz Kierunek studiów: Elektronika i Telekomunikacja Opiekun pracy: dr inż. Jacek Kolodziej Kraków, rok 2013

PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE

WYDZIAŁ INFORMATYKI , ELEKTRONIKI I TELEKOMUNIKACJI

KATEDRA ELEKTRONIKI

PRACA DYPLOMOWA

INŻYNIERSKA

BEZPRZEWODOWA SIEĆ KONTROLNO-STERUJĄCA Z INTERFEJSEM BLUETOOTH DLA URZĄDZEŃ MOBILNYCH Z SYSTEMEM ANDROID

CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH

INTERFACE FOR MOBILE DEVICES WITH ANDROID SYSTEM

Imię i nazwisko: Łukasz Tomaszowicz

Kierunek studiów: Elektronika i Telekomunikacja

Opiekun pracy: dr in ż. Jacek Kołodziej

Kraków, rok 2013

Page 2: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

2/53

Oświadczam, świadomy odpowiedzialności karnej za poświadczenie nieprawdy,

że niniejszą pracę dyplomową wykonałem osobiście i samodzielnie i że nie korzystałem

ze źródeł innych niż wymienione w pracy.

Page 3: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

3/53

Spis treści 1.Wstęp ........................................................................................................................................ 5

1.1 Cel i zakres pracy ................................................................................................................ 5

1.2 Założenia projektowe ......................................................................................................... 6

2. Charakterystyka warstwy sprzętowej modelu sieci ................................................................. 8

2.1 Moduły kontrolno– sterujące............................................................................................. 9

2.1.1 Blok centralny – mikrokontroler ATmega8L ............................................................... 9

2.1.2 Blok zasilania ............................................................................................................. 11

2.1.3 Przełącznik konfiguracyjny ........................................................................................ 13

2.1.4 Blok komunikacji radiowej ........................................................................................ 13

2.1.5 Wejścia analogowe oraz wyjścia przekaźnikowe ...................................................... 15

2.1.6 Zewnętrzne złącza rozszerzające .............................................................................. 17

2.1.7 Blok serwisowy .......................................................................................................... 19

2.1.8 Projekt płytki drukowanej modułu kontrolno- sterującego ...................................... 20

2.1.9 Fizyczny wygląd modułów kontrolno-sterujących .................................................... 22

2.2 Moduł punktu dostępowego............................................................................................ 22

2.2.1 Blok centralny – mikrokontroler ATmega32L ........................................................... 23

2.2.2 Moduł komunikacji Bluetooth BTM112 .................................................................... 25

2.2.3 Projekt płytki drukowanej punktu dostępowego ...................................................... 26

2.2.4 Fizyczny wygląd punktu dostępowego ...................................................................... 28

2.3 Wykaz wykorzystanych elementów ................................................................................. 29

3. Oprogramowanie modułu kontrolno-sterującego, punktu dostępowego oraz aplikacja dla

systemu Android ........................................................................................................................ 30

3.1 Wspólne fragmenty kodu dla urządzeń kontrolno– sterujących oraz punktu

dostępowego ......................................................................................................................... 30

3.1.1 Komunikacja radiowa 868MHz ................................................................................. 30

3.1.2 Ramki komunikacyjne ............................................................................................... 31

3.1.3 Komendy komunikacyjne pomiędzy urządzeniami podrzędnymi a nadrzędnym ..... 33

3.1.4 Wejścia analogowe ................................................................................................... 34

3.1.5 Wyjścia przekaźnikowe oraz diody statusowe .......................................................... 35

3.1.6 Obsługa magistrali 1-wire ......................................................................................... 36

3.2 Punkt dostępowy ............................................................................................................. 37

3.2.1 Algorytm wyszukiwania nowych i obsługi podłączonych urządzeń .......................... 37

3.2.2 Obsługa komunikacji Bluetooth ................................................................................ 39

3.2.3 Komendy komunikacyjne pomiędzy urządzeniem nadrzędnym a aplikacją Android39

Page 4: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

4/53

3.2.3 Algorytm działania urządzenia .................................................................................. 41

3.3 Moduły kontrolno- sterujące ........................................................................................... 42

3.3.1 Obsługa przełącznika konfiguracyjnego .................................................................... 42

3.3.2 Algorytm działania urządzenia .................................................................................. 44

3.4 Aplikacja użytkownika dla systemu Android .................................................................... 45

3.4.1 Kilka słów o Androidzie ............................................................................................. 45

3.4.2 Narzędzia niezbędne do pisania oprogramowania ................................................... 47

3.4.3 Koncepcja Aplikacji .................................................................................................... 47

4. Podsumowanie i możliwości dalszego rozwoju projektu ....................................................... 49

Bibliografia ................................................................................................................................. 52

Dodatek A. Spis zawartości płyty DVD ....................................................................................... 53

Page 5: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

5/53

1.Wstęp

Szybki wzrosty liczby smartfonów, tabletów i innych urządzeń mobilnych,

otwiera nowe możliwości zastosowania elektroniki. Bezpowrotnie minęły czasy, w

których jedynym interfejsem użytkownika systemu mógł być skomplikowany zestaw

przełączników i lampek. Smartfony są dziś powszechnym narzędziem ułatwiającym

pracę, rozrywkę czy edukację, a jako urządzenia w pełni multimedialne są budowane w

oparciu o duże ekrany dotykowe, co sprawia, iż doskonale nadają się do prezentacji

graficznego interfejsu użytkownika zbudowanego systemu. Do bezprzewodowej

komunikacji z innymi urządzeniami można wykorzystać interfejsy bezprzewodowe

WLAN lub Bluetooth. Powoduję to, iż koszt budowy sytemu może zostać znacznie

zmniejszony, gdyż sprzętowo nie jest już wymagany dodatkowy komputer z monitorem

czy dedykowany wyświetlacz. Takim wyświetlaczem może być przecież tablet lub

smartfon.

Oczywiście sam smartfon, podobnie zresztą jak komputer, bez odpowiednich

aplikacji jest bezużyteczny. Analizując udział w rynku poszczególnych mobilnych

systemów operacyjnych okazuje się, iż ponad połowę rynku (50,9% [1]) zajmują

urządzenia pracujące pod kontrolą systemu Android. Dlatego myśląc o napisaniu

aplikacji na urządzenia mobilne w pierwszej kolejności należy skupić swoją uwagę na

aplikacji uruchamianej na tych właśnie urządzeniach.

1.1 Cel i zakres pracy

Celem pracy dyplomowej jest opracowanie i wykonanie prototypu

bezprzewodowej sieci kontrolno-sterującej z interfejsem Bluetooth dla urządzeń

mobilnych pracujących z systemem Android. Do zakresu pracy należy:

• rozpoznanie i analiza postawionego problemu,

• analiza możliwości rozwiązań,

• przygotowanie niezbędnych schematów ideowych elektroniki urządzeń,

• zaprojektowanie obwodów drukowanych urządzeń na podstawie schematów,

• produkcja obwodów drukowanych,

• przygotowanie, wg stworzonego projektu, odpowiedniej liczby urządzeń,

wystarczającej do przetestowania zaproponowanego rozwiązania postawionego

problemu,

Page 6: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

6/53

• napisanie oprogramowania wbudowanego dla urządzeń, zapewniającego

prawidłowe działanie sieci,

• napisanie oprogramowania dla systemu Android pozwalającego na pełną

kontrolę nad zbudowaną siecią za pomocą urządzenia wyposażonego w interfejs

Bluetooth,

• analiza zastosowanego rozwiązania oraz wnioski.

1.2 Założenia projektowe

Przed przystąpieniem do praktycznej realizacji celu pracy dyplomowej, na

podstawie wstępnej analizy problemu, określone zostały następujące założenie

techniczne dotyczące projektu:

• Sieć kontrolno-sterująca będzie pracować w oparciu o model Master/Slave.

• Urządzeniami typu Slave będą moduły kontrolno-sterujące.

• Urządzeniem nadzorującym prace sieci, typu Master, będzie punkt dostępowy.

• Dostęp do modułów kontrolno-sterujących będzie możliwy tylko za

pośrednictwem punktu dostępowego.

• Komunikacja między punktem dostępowym, a modułami kontrolno-sterującymi

będzie odbywać się tylko drogą radiową na częstotliwości nośnej 868MHz.

• Komunikacja między punktem dostępowym, a urządzeniem mobilnym będzie

odbywać się za pośrednictwem interfejsu Bluetooth (2,4GHz).

• Moduły kontrolno-sterujące zostaną wyposażone między innymi w: 2 wyjścia

przekaźnikowe, 2 wejścia analogowe, interfejs 1-wire.

• W jednej sieci może pracować maksymalnie 8 modułów kontrolno-sterujących,

rozróżnialnych na podstawie unikalnych nastaw przełącznika konfiguracyjnego.

• Wszystkie zaprojektowane urządzenia będą mogły być zasilane ze źródła

napięcia stałego od 7 do 15V.

• Opracowane protokoły transmisyjne powinny zapewniać: możliwość

sprawdzenia poprawności otrzymanej ramki (sumy kontrolne), retransmisję

uszkodzonych ramek (pola sekwencyjne), oraz bezproblemową transmisję

ramek o długości co najmniej 40 bajtów (licząc wraz z nagłówkiem i suma

kontrolną).

Page 7: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

7/53

• Podczas konfiguracji sieci zmiana adresu urządzenia nie powinna wymagać

restartu urządzenia kontrolno-sterującego.

• Interfejs użytkownika powinien posiadać: możliwość śledzenia aktualnego

stanu wejść analogowych, wyjść przekaźnikowych oraz umożliwiać zmianę ich

stanu.

• Aplikacja użytkownika zostanie napisana dla systemu Android.

• Aplikacja użytkownika powinna posiadać moduł umożliwiający wyszukiwanie

i łączenie do urządzeń bluetooth.

• Zmiana stanu dowolnego wejścia analogowego lub wyjścia przekaźnikowego

powinna być przekazana i zobrazowana na interfejsie użytkownika, w czasie nie

dłuższym niż 3 sekundy od chwili wystąpienia wymuszenia.

• Zmiana stanu dowolnego wyjścia przekaźnikowego powinna nastąpić w czasie

nie dłuższym niż 3 sekundy od momentu wydania polecenia zmiany stanu w

interfejsie użytkownika,

• Rozłącznie lub podłączenie nowego urządzenia nie powinno wymagać

rekonfiguracji istniejącej sieci,

• Rozłączenie lub podłączenie urządzenia do istniejącej sieci następuje

automatycznie, bez ingerencji użytkownika systemu i jest sygnalizowane w

interfejsie użytkownika w czasie nie przekraczającym 3 sekund.

Page 8: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

8/53

2. Charakterystyka warstwy sprzętowej modelu sieci

Realizacja całego projektu opiera się o 3 podstawowe elementy. Są to: moduły

kontrolno-sterujące, moduł punktu dostępowego, oraz urządzenie z systemem

operacyjnym Android. Punkt dostępowy oraz moduł kontrolno-sterujący został

zaprojektowany w programie Altium Designer. Sercem tych urządzeń są popularne

mikrokontrolery z 8-bitowej rodziny firmy Atmel, odpowiednio ATmega32 oraz

Atmega8. Komunikacja pomiędzy omawianymi urządzeniami odbywa drogą radiową

w oparciu o moduły nadawczo-odbiorcze firmy HopeRF - RFM12B [2]. Punkt

dostępowy wyposażony jest dodatkowo w interfejs Bluetooth, umożliwiając

komunikację z urządzeniami kontrolno-sterującymi poprzez dowolne urządzenie

wyposażone w ten interfejs oraz odpowiednie oprogramowanie. W założeniach

projektowych zdefiniowano, iż interfejs użytkownika całości systemu zostanie

utworzony w systemie Android. Dlatego, jako urządzenie sterujące całością systemu

zastosowano tablet Archos 101 G9 16GB [3], który zaopatrzony został w system

Android 2.2. Należy jednak zwrócić uwagę na fakt, iż sprzętowo wymagane jest

jedynie, aby urządzenie nadzorujące pracę sieci wyposażone było w interfejs

komunikacyjny Bluetooth. W związku z tym może to być zarówno tablet, jak i telefon

komórkowy czy nawet komputer, niezależnie od systemu operacyjnego, o ile zostanie

przygotowane oprogramowanie pozwalające na obsługę protokołu komunikacyjnego

omawianego systemu. Oznacza to, że rozwinięcie systemu o obsługę dodatkowych

urządzeń z systemami iOS, Symbian, Windows czy Linux jest stosunkowo proste i nie

wymaga zmian w zaproponowanej strukturze sprzętowej przedstawionej na rysunku

2.1.

Page 9: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

9/53

Rysunek 2.1. Schemat sieci modułów kontrolno-sterujących

2.1 Moduły kontrolno–sterujące Moduły te są elementem znajdującym się najdalej od użytkownika w

hierarchicznej strukturze przedstawianego projektu. Jednak są bardzo ważnym jego

elementem. Na rysunku 2.1 został przedstawiony schemat blokowy urządzenia, który

zostanie omówiony w kolejnych podpunktach tego podrozdziału.

Rysunek 2.2. Schemat blokowy urządzenia kontrolno-sterujące

2.1.1 Blok centralny – mikrokontroler ATmega8L

Najważniejszym elementem urządzenia kontrolno-sterującego jest 8-bitowy

mikrokontroler ATmega8L [4] pozwalający zapisywać w nielotnej pamięci FLASH

program o rozmiarze nie przekraczającym 8kB.

Page 10: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

10/53

Tabela 2.1. Uzupełniająca specyfikacja kontrolera ATmega8 Typ układu scalonego mikrokontroler AVR Organizacja pami ęci Fla sh 8kx8bit Pojemno ść pami ęci EEPROM 512B Pojemno ść pami ęci SRAM 1024B Obudowa TQFP32 Częstotliwo ść taktowania 16MHz Liczba wej ść/wyj ść 23 Liczba kanałów PWM 3 Liczba timerów 8 -bit 2 Liczba timerów 16 -bit 1 Monta ż SMD Napięcie pracy 2.7 ÷ 5.5V

Mikrokontroler ten został wykorzystany, ponieważ oferowane przez niego możliwości

(np. wielkość pamięci Flash, ilość wejść/wyjść, obecność sprzętowego portu

szeregowego) są wystarczające do realizacji zadania określonego przez wymagania

projektowe, a jednocześnie jest on układem tanim i powszechnie dostępnym.

Rysunek 2.3 przedstawia schemat ideowy całego urządzenia. Jest on uproszczony

poprzez przedstawienie niektórych elementów, jako samodzielnych bloków

funkcjonalnych podłączonych do kontrolera. Dla przejrzystości bloki, o których mowa

zaznaczone zostały kolorem zielonym, znajdują one odzwierciedlenie w rysunku 2.2 i

zostaną szerzej umówione na kolejnych stronach niniejszego opracowania. Urządzenie

zawiera złącze ISP pozwalające na programowanie mikrokontrolera.

Page 11: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

11/53

Rysunek 2.3. Schemat ideowy urządzenia kontrolno- sterującego

2.1.2 Blok zasilania

Urządzenie kontrolno-sterujące wymaga zasilania 12V – DC o wydajności

prądowej nie mniejszej niż 200mA. Dlatego w przedstawianym projekcie każde z nich

zostało wyposażone w zewnętrzny zasilacz impulsowy, podłączany bezpośrednio do

sieci energetycznej ~230V – AC, który na wyjściu zapewnia 12V – DC. Aby możliwe

stało się zasilanie innych urządzeń (np. oświetlenia LED) z tego samego zasilacza jego

Page 12: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

12/53

wydajność prądowa znacznie przekracza wspomniane 200mA i wynosi 1,5A. Blok

zasilania został przedstawiony na rysunku 2.4.

Rysunek 2.4. Schemat ideowy bloku zasilania urządzenia kontrolno-sterujące

Krzemowa dioda prostownicza GL1B (ZAS_D1) na wejściu zabezpiecza urządzenie

przed odwrotną polaryzacją. Dzielnik napięcia, zrealizowany na rezystorach (ZAS:R1

oraz ZAS:R2) pozwala zmierzyć napięcie zasilania na jednym z kanałów ADC

mikrokontrolera, aby możliwe było przekazanie informacji o za wysokim lub zbyt

niskim napięciu do interfejsu użytkownika. Jak łatwo zauważyć stosunek podziału tego

dzielnika wynosi 10/1. Głównym elementem bloku zasilającego jest nieregulowany

stabilizator napięcia LDO (Low-dropout) LD1117 (ZAS:U1) w wariancie

zapewniającym na wyjściu napięcie w zakresie 3,235V do 3,365V o maksymalnej

wydajności prądowej do 800mA [5]. Układ ten posiada wewnętrzne zabezpieczenie

termiczne oraz prądowe, chroniące go przed uszkodzeniem w razie nadmiernego

obciążenia. Na wejściu oraz na wyjściu stabilizatora zastosowane zostały

elektrolityczne kondensatory filtrujące. Poprawne działanie bloku zasilania

sygnalizowane jest zieloną diodą LED (ZAS:D2).

Page 13: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

13/53

2.1.3 Przełącznik konfiguracyjny

Założenia projektowe wymuszają konieczność zastosowania w omawianym

urządzeniu przełącznika konfiguracyjnego. Przełącznik zapewnia między innymi

możliwość określenia unikalnego, dla danej sieci modułów, adresu urządzenia.

Rysunek 2.5. Schemat ideowy przełącznika konfiguracyjnego

Jak można zaobserwować na rysunku 2.5 przełącznik (DIP:U1) z jednej strony

podłączony jest do masy natomiast z drugiej do linii sygnałowych. Dzięki rezystorom

podciągającym (DIP:R1-R4), w przypadku, gdy przełącznik ma rozwarte styki, linia

sygnałowa znajduje się w stanie logicznej „1”. Jeśli natomiast jeden ze styków

przełącznika zostanie zwarty to odpowiadająca mu linia sygnałowa zmieni stan na

logiczne „0”. Linie sygnałowe są podłączone bezpośrednio do wejść cyfrowych

mikrokontrolera.

2.1.4 Blok komunikacji radiowej

Urządzenie zostało wyposażone w blok komunikacji radiowej, którego

głównym elementem jest wyprodukowany przez firmę HopeRF moduł RFM12B.

Można wybrać układ w jednej z czterech wersji częstotliwości 315, 433, 868 oraz

Page 14: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

14/53

915MHz. W omawianym projekcie został wykorzystany ten o częstotliwości 868MHz.

Do podstawowych zalet RFM12B zaliczyć należy [2]:

• małe wymiary 16x16x4,2 mm,

• brak konieczności stosowania dodatkowych elementów zewnętrznych,

• interfejs komunikacyjny – SPI,

• możliwość pracy z szybkością maksymalną 115200 bodów,

• minimalne napięcie zasilania 2,2V,

• możliwość zastosowanie tam gdzie wymagane jest zasilanie bateryjne, dzięki

dwóm specjalnym trybom pracy: Sleep oraz Wake-up timer.

Zbadany doświadczalnie zasięg uzyskany na antenach w postaci 8cm odcinków

przewodów wyniósł około 100 metrów w otwartej przestrzeni. Natomiast w badanej

przestrzeni zamkniętej nie stwierdzono problemów z komunikacją. Należy jednak

dodać, iż jako przestrzeń zamknięta rozumieć należy jednorodzinny dom zbudowany w

oparciu o 2 żelbetowe płyty o grubości 12 centymetrów i ściany wykonane z cegły

ceramicznej.

Rysunek 2.6. Blok komunikacji radiowej

Jak zostało pokazane na rysunku 2.6 do komunikacji mikrokontrolera z torem

radiowym zostały wykorzystane 4 linie interfejsu SPI (SDO, SDI, SCK, SEL) oraz linia

przerwania IRQ. Układ zasilany jest napięciem 3,3V, podobnie jak mikrokontroler,

dlatego nie są wymagane dodatkowe elementy dopasowujące poziomy napięć

poszczególnych linii interfejsu SPI.

Page 15: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

15/53

Rysunek 2.7. Wygląd modułu RFM12B w wersji SMD

Rysunek 2.8. Topologia wyprowadzeń modułu RFM12B w wersji SMD

Tabela 2.2 Opis wyprowadzeń modułu RFM12B Nazwa wyprowadzenia Pełniona funkcja nINT/VDI Przerwanie zewnętrzne VDD Zasilanie SDI Dane wejściowe SPI SCK Zegar SPI nSEL Wybór układu SPI SDO Dane wyjściowe SPI nIRQ Żądanie przerwania FSK/DATA/nFFS Dane wejściowe (FSK)/odbiór danych (FSK)/wybór FIFO DCLK/CFIL/FFIT Wyjście zegara/ kondensatory filtrujące (tryb analogowy)/

przerwanie zapełnienia buforu FIFO CLK Wyjście sygnału taktującego dla innego układu nRES Reset GND Masa

2.1.5 Wejścia analogowe oraz wyj ścia przeka źnikowe

Kolejnym blokiem niezbędnym w zaprojektowanym urządzeniu jest moduł

wejść analogowych. Został on zaprojektowany w taki sposób, aby możliwe było

wykrywanie poziomu dołączonej rezystancji. Jest to cecha pożądana z punktu widzenia

możliwości wykorzystania, jako wejść czujek SSWIN (system sygnalizacji napadu i

włamania). Oczywiście do wejść analogowych można podłączyć także zwykłe

przyciski mono lub bistabilne – będą one wykrywane jako zerowa lub nieskończona

Page 16: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

16/53

rezystancja. W przypadku wykorzystania przycisków przed wykrywaniem drgań jego

styków podczas zmiany stanu zabezpiecza kondensator (IN1C1 oraz IN2C1) włączony

równolegle z zabezpieczającą diodą Zenera (IN1_DZ1 oraz IN2_DZ1). Dioda chroni

pin mikrokontrolera przed dołączeniem do niego zbyt wysokiego potencjału dodatniego

(powyżej 3,6V) i ujemnego (większego niż -0,7V). Urządzenie zostało wyposażone w

dwa identyczne, ale niezależne obwody wejściowe podłączone do dwóch różnych

kanałów przetwornika ADC mikrokontrolera.

Rysunek 2.9. Wejścia analogowe

Urządzenie kontrolno-sterujące zostało wyposażone w dwa przekaźniki (OUT1_PK1

oraz OUT2_PK1), w których cewki są zasilane napięciem 12V. Do jej zasilana

wykorzystano tranzystor typu NPN-BC846 (OUT1_T1 oraz OUT2_T1). Rozłączenie

obwodów indukcyjnych w chwili rozwarcia cewki generuje szpilkę napięciową

związaną z mechanizmem samoindukcji [6]. Aby wyeliminować ewentualne skutki

tego zjawiska została do uzwojeń cewki przekaźnika włączona dioda prostownicza

GL1B (OUT1_D1 oraz OUT2_D1). Istnieje możliwość wybrania wyjściowych styków

przekaźnika jak normalnie otwartych (NO) lub jako normalnie zamkniętych (NC). O

aktualnym stanie każdego z przekaźników informuje odpowiednia dla każdego wyjścia

dioda LED (OUT1_D2 oraz OUT2_D2).

Page 17: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

17/53

Rysunek 2.10.Wyjścia przekaźnikowe

2.1.6 Zewnętrzne zł ącza rozszerzaj ące

W celu rozszerzenia funkcjonalności prezentowanego urządzenia został

wyprowadzony interfejs 1-wire umożliwiający podłączenie innych niewielkich

urządzeń jak np. termometr cyfrowy.

Rysunek 2.11. Zewnętrzne złącza rozszerzające W celu zaprezentowania takiej możliwości omawiane urządzenie zostało wyposażone

w popularny termometr cyfrowy DS18B20, co nie zostało pokazane na rysunku 2.11,

ponieważ jest to jedynie przykład wykorzystania wyprowadzonego interfejsu. W

stosunkowo prosty sposób można do urządzenia podłączyć także inne, np.

rezystancyjne, czujniki wykorzystując w tym celu interfejs analogowy. Warto dodać, iż

interfejs ten to zwykły dzielnik napięciowy, w którym istnieje możliwość uzależnienia

jednej z rezystancji od mierzonego przez czujnik parametru. Pełne wykorzystanie

Page 18: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

18/53

spektrum zmian rezystancji takiego czujnika może wymagać zmiany wartości

rezystancji (R_AN_IN) w bloku omawianego interfejsu.

Jak wspomniano, do interfejsu 1-wire, jako przykład zastosowania, dołączono

termometr cyfrowy DS18B20. W programie mikrokontrolera został natomiast

przygotowany odpowiedni zestaw procedur (o czym będzie mowa w kolejnym

rozdziale) pozwalający na obsługę tego urządzenia.

DS18B20 jest cyfrowym czujnikiem temperatury pozwalającym na

zaprogramowanie rozdzielczości pomiaru. Jego podstawowe cechy to [7]:

• „komunikacja za pomocą interfejsu 1-wire,

• każdy odbiornik posiada unikalny 64 bitowy kod umieszczony w wewnętrznej

pamięci ROM układu,

• maksymalnie uproszczony sposób odczytu temperatury,

• nie potrzebuje żadnych zewnętrznych komponentów,

• może być zasilany z linii danych,

• zasilanie od 3V do 5,5V,

• dokładność 0,5°C dla zakresu -10°C ÷ 85°C

• możliwość ustawienia rozdzielczości od 9 do 12 bitów,

• konwersja 12 bitowego słowa – maksymalnie 750ms.

Rysunek 2.12 przedstawia budowę logiczną układu DS18B20. Pamięć ROM 64-bitowa

zawiera unikalny adres układu. Scratchpad (notatnik) zawiera 2 bajtowy rejestr z

wartością temperatury dostarczoną cyfrowo z czujnika. W dodatku scratchpad

zapewnia dostęp do jedno-bajtowego rejestru porównań (TH i TL) oraz do

jednobajtowego rejestru konfiguracyjnego. Rejestr konfiguracyjny pozwala na

ustawienie rozdzielczości konwersji temperatury (9, 10, 11 lub 12 bitów). TH, TL oraz

rejestry konfiguracyjne są typu EEPROM, dlatego ich zawartość nie zmienia się po

wyłączeniu zasilania.”

Page 19: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

19/53

Rysunek 2.12. Schemat blokowy układu DS18B20 [8]

Rysunek 2.13. Topologia wyprowadzeń układu DS18B20 [8]

2.1.7 Blok serwisowy

W celu monitorowania poprawności wykonywania programu mikrokontrolera

został wprowadzony blok serwisowy. Pozwala on w łatwy sposób zdiagnozować

ewentualne błędy w oprogramowaniu. Wykorzystany został interfejs komunikacyjny

UART mikrokontrolera. Aby możliwe było bezpośrednie podłączenie urządzenia do

komputera za pomocą portu RS-232 wykorzystano konwerter MAX3232 [9], który jest

jednym z wielu wariantów popularnego układu MAX232 [10]. Podstawowa różnica

między układami jest taka, iż MAX3232 pozwala na pracę już od napięcia na poziomie

3,3V, a także wykorzystanie kondensatorów o mniejszej pojemności – 100nF.

Omawiane złącze posiada pin zasilający (3,3 V) umożliwiający zasilenie konwertera

(np. RS232-USB), jeśli taki byłby wymagany. Na rysunku 2.14 został przedstawiony

blok serwisowy urządzenia.

Page 20: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

20/53

Rysunek 2.14. Blok serwisowy urządzenia kontrolno-sterującego

2.1.8 Projekt płytki drukowanej modułu kontrolno- s teruj ącego

Przedstawione powyżej schematy są efektem analizy postawionego problemu,

próby jego rozwiązania, a także opracowania 2 płytek prototypowych. Ostatecznie

wersja płytki została przedstawiona na rysunkach 2.15, 2.16, oraz 2.17. Kształt obrysu

płytki, a także otworów montażowych został zaprojektowany tak, aby urządzenie

mogło zostać umieszczone w standardowej obudowie na szynę DIN - Z102 [11].

Rysunek 2.15. Projekt płytki drukowanej – warstwa TOP

Page 21: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

21/53

Przedstawiona płytka drukowana została wykonana na podstawie

przygotowanej dokumentacji technicznej w formacie GERBER, przez firmę SATLAND

Prototype z Gdańska [12]. Dwuwarstwowy obwód drukowany został zaprojektowany

w taki sposób, aby możliwe było osadzenie wszystkich elementów SMD tylko na

jednej stronie laminatu. Ma to duże znaczenie z uwagi na koszt seryjnej produkcji

urządzeń elektronicznych. Na potrzeby pracy dyplomowej zostały wykonane 3

identyczne urządzenia tak, aby możliwe stało się stosunkowo łatwe pokazanie

rozwiązania postawionego problemu. Płyta drukowana posiada wymiary 83x48[mm].

Rysunek 2.16. Projekt płytki drukowanej – warstwa BOTTOM

Rysunek 2.17. Projekt płytki drukowanej – warstwa TOP oraz BOTTOM

Page 22: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

22/53

2.1.9 Fizyczny wygl ąd modułów kontrolno-steruj ących

Na rysunku 2.18 przedstawiony został wygląd zmontowanego urządzenia.

Rysunek 2.18. Moduł kontrolno sterujący – rzeczywisty wygląd urządzenia

2.2 Moduł punktu dostępowego Punkt dostępowy to urządzenie nadzorujące pracę urządzeń kontrolno-

sterujących. Jego schemat blokowy został zamieszczony na rysunku 2.19.

Rysunek 2.19. Schemat blokowy urządzenia kontrolno-sterującego

Page 23: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

23/53

Jak widać punkt dostępowy zaprojektowany został jako urządzenie nieznacznie

różniące się od przedstawionego już urządzenia kontrolno-sterującego. Podstawowe

różnice w schemacie blokowym to:

- brak bloku serwisowego,

- brak przełącznika konfiguracyjnego,

- dodatkowy blok komunikacyjny – Bluetooth,

- mikrokontroler ATmega32L.

W kolejnych podpunktach niniejszego opracowania postaram się omówić tylko nowe

elementy, ponieważ pozostałe bloki są identyczne, jak w przypadku modułów

kontrolno-sterujących.

2.2.1 Blok centralny – mikrokontroler ATmega32L

Sercem modułu punktu dostępowego jest mikrokontroler ATmega32L [13].

Dzięki zastosowaniu tego układu programista otrzymuje do dyspozycji aż 32kB

nielotnej pamięci Flash. Biorąc pod uwagę zadania, jakie będzie wykonywał punkt

dostępowy, taka ilość pamięci wydaje się być niezbędna. Omawiany mikrokontroler

posiada także 2kB wewnętrznej statycznej pamięci RAM.

Tabela 2.3. Uzupełniająca specyfikacja kontrolera ATmega32L Typ układu scalonego mikrokontroler AVR Organizacja pamięci Flash 8kx8bit Pojemno ść pami ęci EEPROM 1024B Pojemno ść pami ęci SRAM 2048B Obudowa TQFP44 Częstotliwo ść taktowania 16MHz Liczba wej ść/wyj ść 32 Liczba kanałów PWM 4 Liczba timerów 8 -bit 2 Liczba timerów 16 -bit 1 Monta ż SMD Napięcie pracy 2.7 ÷ 5.5V

Dodatkowymi parametrami przemawiającymi za wyborem mikrokontrolera

ATmega32L niewątpliwie były jego dostępność oraz cena (aktualnie poniżej 10 zł). Na

rysunku 2.20 zaprezentowany został schemat ideowy urządzenia, w którym dla

uproszczenia na zielono zaznaczono bloki: zasilania, wejść/wyjść oraz komunikacji

radiowej. Moduł Bluetooth zastał dołączany do punktu dostępowego za pomocą 5-

pinowego złącza, jako dodatkowe urządzenia. Więcej szczegółów znaleźć można w

kolejnym podpunkcie.

Page 24: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

24/53

Rysunek 2.20. Schemat ideowy urządzenia kontrolno- sterującego

Page 25: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

25/53

2.2.2 Moduł komunikacji Bluetooth BTM112

Do komunikacji punktu dostępowego z urządzeniem mobilnym za pomocą

interfejsu Bluetooth wykorzystany został moduł BTM112. Od strony punktu

dostępowego wymaga on jedynie odpowiedniego podłączenia pinów RX oraz TX

interfejsu UART. Z tego powodu bazując na BTM112 został stworzony mały moduł

Bluetooth, działający jako niezależnie urządzenie, posiadający 5 wyprowadzeń o

następującym znaczeniu:

• ANT – Antena • VCC – Napięcie zasilania (5..15 V) • GND – Masa • RX – Odbiór danych UART • TX – Nadawanie danych UART

Rysunek 2.21 Wygląd BTM112 [14]

Rysunek 2.22 Schemat ideowy modułu Bluetooth

Rysunek 2.23 Wygląd jednowarstwowej płytki drukowanej modułu bluetooth

Page 26: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

26/53

BTM-112 jest zintegrowanym układem Bluetooth klasy 2 o stosunkowo niewielkim

rozmiarze (25x14.5x2.2mm), pracującym zgodnie ze standardem Bluetooth 2.0 EDR

[15]. Posiada on wyprowadzenia USB oraz UART. Potrafi pracować w trybie SPP

(Serial Port Profile). Dzięki obsłudze komend AT jego odpowiednia konfiguracja jest

prosta. Do poprawnej pracy wymaga napięcia zasilania w przedziale od 3 do 3,6V.

Nadajnik o mocy 2,5mW pozwala uzyskać zasięg do 10 metrów. Na potrzeby

omawianego projektu za pomocą komend AT zostały zmienione następujące

parametry:

• LocalEcho – OFF, • BaudRate - 115200bps, • DeviceName: PD_AGH_BLUETOOTH.

Warto dodać, iż parametry te zostały zmienione za pomocą komputera jeden raz i nie są

ustawiane przez punkt dostępowy przy starcie urządzenia. Ewentualna zmiana modułu

Bluetooth na inny musi zostać poprzedzona odpowiednią jego konfiguracją.

2.2.3 Projekt płytki drukowanej punktu dost ępowego

Na podstawie zaprezentowanych schematów ideowych została przygotowana

kolejna płytka drukowana. Jej wygląd został przedstawiony na rysunkach 2.24-26.

Rysunek 2.24 Projekt płytki drukowanej – warstwa TOP

Page 27: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

27/53

Rysunek 2.25 Projekt płytki drukowanej – warstwa Bottom

Rysunek 2.26 Projekt płytki drukowanej – warstwy TOP oraz Bottom

Page 28: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

28/53

2.2.4 Fizyczny wygl ąd punktu dost ępowego

Na rysunku 2.27 przedstawiony został wygląd zmontowanego urządzenia w

obudowie Z-100.

Rysunek 2.27 Punkt dostępowy – rzeczywisty wygląd urządzenia

Page 29: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

29/53

2.3 Wykaz wykorzystanych elementów

Tabela 2.4 przedstawia pełną listę elementów niezbędnych do produkcji punktu

dostępowego i modułu kontrolno-sterującego.

Tabela 2.4. Zestawienie elementów Nazwa Rodzaj Ilo ść

Punkt dost ępowy

JRC23 Przekaźnik 2

LD1117S33TR Stabilizator 3,3V 1

BTM_MODULE Moduł Bluetooth 1

ATmega32-16AI Mikrokontroler 1

GL1B Dioda prostownicza 3

DZ3V6 Dioda zenera 2

100µF/16V Kondensator elektrolityczny 2

100nF Kondensator mlcc 2

LED_B Dioda LED niebieska 1

LED_R Dioda LED czerwona 1

LED_G Dioda LED zielona 5

BC846 Tranzystor NPN 2

470R Rezystor 5

2k Rezystor 2

4k7 Rezystor 1

10k Rezystor 5

1k1 Rezystor 4

10R Rezystor 2

120R Rezystor 2

RFM12B Moduł radiowy 1

DG381-3.5-2P11 Listwa zaciskowa; 3,5mm; tory:2; 2

DG381-3.5-3P11 Listwa zaciskowa; 3,5mm; tory:3; 2

Moduł kontrolno steruj ący

JRC23 Przekaźnik 2

LD1117S33TR Stabilizator 3,3V 1

DIP_SW_4 Przełącznik konfiguracyjny 1

MAX3232 Układ scalony 1

ATmega8L-8AC Mikrokontroler 1

GL1B Dioda prostownicza 3

DZ3V6 Dioda zenera 3

100µF/16V Kondensator elektrolityczny 2

100nF Kondensator mlcc 8

LED_B Dioda LED niebieska 1

LED_R Dioda LED czerwona 1

LED_G Dioda LED zielona 3

BC846 Tranzystor NPN 2

2k Rezystor 2

10k Rezystor 10

1k1 Rezystor 3

430R Rezystor 1

470R Rezystor 2

270R Rezystor 2

4k7 Rezystor 1

10R Rezystor 2

120R Rezystor 2

RFM12B Moduł radiowy 1

DG381-3.5-2P11 Listwa zaciskowa; 3,5mm; tory:2; 2

DG381-3.5-3P11 Listwa zaciskowa; 3,5mm; tory:3; 2

Page 30: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

30/53

3. Oprogramowanie modułu kontrolno-sterującego, punktu dostępowego oraz aplikacja dla systemu Android

Kontrolę nad zaprojektowanymi urządzeniami sprawują 8-bitowe

mikrokontrolery AVR firmy Atmel. Do kompilacji napisanego kodu użyto WinAVR

(AVR-GCC dla Windows), natomiast pracę z kodem źródłowym ułatwiło dedykowane

środowisko IDE o nazwie AVR Studio w wersji 4. Do zapisania kodów źródłowych do

procesorów użyto programatora zgodnego z STK200/300. W kolejnych podrozdziałach

omówione zostały zagadnienia związane z oprogramowaniem wspomnianych

urządzeń, a także aplikacji użytkownika działającej w systemie Android.

3.1 Wspólne fragmenty kodu dla urządzeń kontrolno– sterujących

oraz punktu dostępowego

Na podstawie rozdziału drugiego niniejszego opracowania można wysnuć

słuszny wniosek, iż urządzenia są sprzętowo w wysokim stopniu podobne. Oczywistym

jest zatem fakt, że wiele fragmentów kodu lub nawet całe biblioteki mogą być z

powodzeniem wykorzystane w programie zarówno jednego, jak i drugiego urządzenia,

dlatego w pierwszej kolejności omówione zostaną te właśnie fragmenty. Natomiast w

podpunktach 3.2 oraz 3.3 tylko te, które nie zostały omówione z podpunkcie 3.1.

3.1.1 Komunikacja radiowa 868MHz

Jak wcześniej wspomniano, w obu urządzeniach komunikacja radiowa została

oparta o ten sam układ (RFM12B), dlatego została stworzona biblioteka do jego

obsługi. Do komunikacji z radiowym układem nadawczo-odbiorczym niezbędny jest

szeregowy interfejs urządzeń peryferyjnych SPI, dlatego została opracowana funkcja

RFM_write_Cmd , pozwalająca wysłać oraz odebrać 16 bitowe dane.

Do poprawnej inicjalizacji urządzenia wystarczy wywołać funkcję RFM_Init , która

wyśle ciąg instrukcji konfiguracyjnych, w tym np.: częstotliwość pracy bloku

radiowego, szybkość transmisji, wartość bajtów synchronizacji oraz opcje związane z

zarządzeniem energią. Do odbioru danych z RMF12B służy funkcja RFM_Recv,

natomiast do ich wysłania funkcja RMF_Send, która w pierwszej kolejności uaktywnia

nadajnik, następnie wysyła 4 bajtową preambułę (0xAA). W kolejnym kroku wysyłany

Page 31: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

31/53

jest kod synchronizacji (dla wszystkich urządzeń w projekcie są to bajty 0xD2D4,

ponieważ adresowanie realizowane jest na wyższej warstwie protokołu transmisyjnego)

Następnie wysłany jest bajt zawierający ilość bajtów ramki. Taka sekwencja

(preambuła, kod synchronizacji oraz ilość bajtów) wysyłana jest przed każdą ramką

komunikacyjną. Komunikacja pomiędzy urządzeniami wymaga określania pewnych

podstawowych zasad, według których urządzenia będą się komunikować miedzy sobą.

1. Urządzenie nadrzędne, nadzorujące prace pozostałych urządzeń, to punkt dostępowy.

2. Urządzeniami podrzędnym są moduły kontrolno-sterujące.

3. Tylko urządzenie nadrzędne może zainicjalizować wymianę informacji, czyli żadne

z urządzeń podrzędnych samo z siebie nie wyśle żadnych danych, dopóki nie zostanie o

to „poproszone” odpowiednią komendą.

4. Moduły kontrolno-sterujące nie mogą się komunikować bezpośrednio między sobą.

3.1.2 Ramki komunikacyjne

Przesłanie jakiekolwiek informacji pomiędzy modułem kontrolno-sterującym a

punktem dostępowym i odwrotnie, wymaga stworzenia odpowiedniej ramki

komunikacyjnej. Strukturę dwóch podstawowych typów ramek przedstawiono poniżej

- ramka do przesyłania komend (do modułów kontrolno- sterujących)

0xE1 (SOP)

Adres (0x00..0x08)

Seq (0..255)

Kod komendy

Dane B0

Dane B1

… Dane

Bn CRC16

B1 CRC16

B2 0xE2

(EOP)

- ramki do przesyłania odpowiedzi na komendy (z modułów kontrolno- sterujących) 0xE1

(SOP) Adres

(0x81..0x88) Seq

(0..255) Dane

B0 Dane

B1 …

Dane Bn

CRC16 B1

CRC16 B2

0xE2 (EOP)

Znaki specjalne to:

• 0xE1 – (SOP) początek ramki transmisyjnej,

• 0xE2 – (EOP) koniec ramki transmisyjnej,

• 0xE3 – (ESC) w przypadku, gdy którykolwiek z bajtów ramki równy jest

jednemu ze znaków specjalnych, nadawany jest bajt ESC oraz zanegowany bajt

specjalny.

Znaczenie poszczególnych pól ramki transmisyjnej:

• Dzięki bajtom SOP oraz EOP możliwe jest rozpoznanie startu/końca ramki

danych oraz transmisja dowolnych bajtów danych. Każdy bajt wysłany przed

SOP oraz po EOP jest ignorowany,

Page 32: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

32/53

• Pole adres zapewnia możliwość określenia do urządzenia pod jakim adresem

jest wysyłana ramka, a także czy jest to zapytanie czy odpowiedź na zapytanie.

Zapytania w polu adres generują bajty z przedziału (0x00..0x08) natomiast

odpowiedzi bajty (0x81..0x88),

• Pole seq służy do identyfikacji par typu pytanie-odpowiedź (ramka odpowiedzi

ma taką samą wartość pola seq). Dzięki temu urządzenie nadrzędne może w

prosty sposób zidentyfikować ramkę, która jest odpowiedzią na ramkę wysłaną.

Ponadto, dzięki polu sekwencyjnemu, istnieje możliwość retransmisji

uszkodzonych ramek. Jeżeli urządzenie nadrzędne (punkt dostępowy) wyśle

zapytanie i w odpowiedzi na nią otrzyma niepoprawną ramkę (np. błędna suma

kontrolna) to może wysłać tą samą ramkę, z taką samą wartością pola seq w

celu retransmisji ostatniej ramki. Jeżeli urządzenie podrzędne rozpozna taką

samą wartość seq, wyśle ponownie dane z bufora nadawczego, lecz nie będzie

po raz drugi wykonywać tej samej instrukcji (np. zmiany stanu wejścia na

przeciwny). Schemat postępowania w przypadku rozpoznania uszkodzonych

ramek w dużym uproszczeniu przedstawia poniższy rysunek. Próba retransmisji

odbywa się trzykrotnie.

Rysunek 3.1 Algorytm postępowania w przypadku uszkodzenia ramki

• Pola CRC pozwalają kontrolować poprawność otrzymanych danych. Do ramki

wysyłanej dodawane są 2 bajty CRC16 przed bajtem EOP natomiast w ramce

odebranej obliczona suma kontrolna porównywana jest z tą odebraną.

Page 33: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

33/53

• Pole kod komendy zawierają wywołania poszczególnych odpowiednich

procedur (pkt 3.1.3) wraz z określonymi w polu dane parametrami.

3.1.3 Komendy komunikacyjne pomi ędzy urz ądzeniami

podrz ędnymi a nadrz ędnym

a) Zmiana stanu wyjść przekaźnikowych kod komendy: ‘a’ we [1B] B0 – wartość wyjścia przekaźnikowego oraz maska zmian b0 – gdy 1 zmieniamy stan wyjścia 1 na taki jak ustawia b4, b1 – gdy 1 zmieniamy stan wyjścia 2 na taki jak ustawia b5, b2..3 – nic,

b4 – wartość wyjścia 1, b5 – wartość wyjścia 2, b6..7 – nic.

wy [1B] B0 – aktualny stan wyjść przekaźnikowych b0 – aktualny stan wyjścia 1, b1 – aktualny stan wyjścia 2, b2..7 – nic. Przykład:

Jeśli istniej potrzeba ustawienia na urządzeniu o adresie 4 wyjścia 2 w stan wysoki,

natomiast wyjście 1 ma pozostać w stanie nie zmienionym, to należy wysłać

następującą ramkę:

0xE1 0x04 0x01 0x61 0x22 0x5D 0xF9 0xE2

0xE1 – znacznik początku ramki 0x04 – adres urządzenia 0x01 – numer sekwencyjny ramki 0x61 – kod komendy ‘a’ 0x22 – ustawienie maski zmiany stanu wyjścia 2 oraz stan wyjścia 2 0x5D – pierwszy bajt sumy kontrolnej CRC16 0xF9 – drugi bajt sumy kontrolnej CRC16 0xE2 – znacznik końca ramki b) Status urządzenia kod komendy: ‘b’ we [0B] – nic wy [9B] B0 – wartość wejścia rezystancyjnego 1,

B1 – wartość wejścia rezystancyjnego 2, B2 – wartość napięcia zasilania, B3 – wartość wejścia analogowego, B4 – aktualny stan wyjść przekaźnikowych,

b0 – aktualny stan wyjścia 1, b1 – aktualny stan wyjścia 2,

Page 34: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

34/53

b2..7 – nic, B5 – wartość temperatury z czujnika cyfrowego,

b0..6 – całkowita wartość temperatury, b7 – znak (gdy 1 to minus), B6 – wartość temperatury z czujnika cyfrowego, b0..7 – wartość ułamkowa (maksymalnie 99), B7 – 0x00 – bajt rezerwowy, B8 – 0x00 – bajt rezerwowy.

Przykład:

W odpowiedzi na pytanie o status (urządzenie 4, seq 0x02) otrzymano ramkę:

0xE1 0x84 0x02 0x20 0x20 0x5C 0xFF 0x01 ... ... 0x00 0x00 0x00 0xFD 0x99 0xE2

0xE1 – znacznik początku ramki 0x84 – ramka odpowiedzi z adresu 4 0x02 – odpowiedź na ramkę o polu Seq=0x02 0x20 – wartość wejścia rezystancyjnego 1 0x22 – wartość wejścia rezystancyjnego 2 0x5C – napięcia zasilania (92*0.01294)*10=11.9V 0xFF – wartość wejścia analogowego 0x01 – wyjście 1 w stanie 1, wyjścia 2 w stanie 0 0x14 – temperatura, cześć całkowita 20 0x00 – temperatura, cześć ułamkowa 0 0x00 – bajt zarezerwowany 0x00 – bajt zarezerwowany 0xFD – pierwszy bajt sumy kontrolnej CRC16 0x99 – drugi bajt sumy kontrolnej CRC16 0xE2 – znacznik końca ramki c) Reset urządzenia

kod komendy: ‘R’ we [0B] – nic wy [0B] – nic

komentarz: Jedyna komenda, na którą urządzenie kontrolno-sterujące nie odpowiada.

3.1.4 Wejścia analogowe

Obsługa wejść analogowych mikrokontrolera sprowadza się do cyklicznego

pomiaru napięcia za pomocą 8 kanałowego przetwornika ADC. Aby poprawnie

zainicjować przetwornik wystarczy wywołać funkcję o nazwie analogi_init . Jej

zadaniem jest:

• ustawienie odpowiednich pinów jako wejść,

• wybór napięcia odniesienia (AREF),

Page 35: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

35/53

• ustawienie 8-bitowego wyniku pomiaru,

• ustawienie częstotliwości próbkowania na 125kHz.

Wartość napięcia z poszczególnych kanałów przetwornika ADC odczytywana jest

cyklicznie, w chwilach generacji przerwania pochodzącego od przepełniania licznika

Timer1 , dzięki wywołaniu funkcji get_adc_val(U8 kanal) . Podczas jednego

przerwania odczytywana jest wartość tylko jednego z kanałów, co oznacza, że aby

odczytać wszystkie niezbędne wartości napięć z przetwornika ADC, należy

wygenerować 4 przerwania od Timera1 , ponieważ tylko 4 z 8 kanałów są

wykorzystane.

Timer1 został skonfigurowany tak, aby generować przerwanie co 50ms, co oznacza,

iż każda z odczytanych przez ADC wartości jest automatycznie aktualizowana co

200ms.

3.1.5 Wyjścia przeka źnikowe oraz diody statusowe

Sygnałami wyjściowymi z zaprojektowanych urządzeń są styki przekaźników

(w modelu występują tylko 2 takie wyjścia) oraz diody sygnalizujące status pracy

urządzenia (tylko 2 takie wyjścia). Zatem niezbędne jest wykorzystanie tylko 4 pinów

jako wyjść. Konfiguracja odpowiednich portów odbywa się poprzez wywołanie funkcji

hw_init() , natomiast do samego sterowania przekaźnikami zostały stworzone

specjalne mikro funkcje:

- output_1_on()

- output_2_on()

- output_1_off()

- output_2_off()

Do zmiany stanów diod statusowych wykorzystano stworzone wcześniej makra:

- STA_1_ON()

- STA_2_ON()

- STA_1_OFF()

- STA_2_OFF()

- STA_1_TOGGLE()

- STA_2_TOGGLE()

Page 36: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

36/53

Diody STA_1 oraz STA_2 są wykorzystane do sygnalizowania transmisji radiowej.

Jeśli dane są aktualnie wysłane do świeci STA_1 (czerwona) natomiast jeśli dane są

odbierane to świeci STA_2 (niebieska).

3.1.6 Obsługa magistrali 1-wire

Obydwa zaprojektowane urządzenia posiadają sprzętową możliwość

podłączenia dowolnych urządzeń pracujących zgodnie z protokołem 1-wire. Aby

pokazać możliwości tego interfejsu został do niego podłączony popularny cyfrowy

termometr DS18B20, natomiast w kodzie źródłowym umieszczono odpowiednie

funkcje do jego obsługi. Oczywistym jest, iż aby z urządzeniem mogły współpracować

inne urządzenia niż DS18B20, konieczne będą drobne zmiany w kodzie źródłowym.

Do wysłania pojedynczego bitu na magistralę 1-wire została stworzona funkcja

write() , natomiast do odczytu bitu funkcja read() . Obie te funkcje zapewniają

odpowiednie czasy trwania impulsów (zgodnie z wymogami 1-wire). Są to funkcje

najniższego, bitowego poziomu. Aby wysłać lub odebrać cały bajty należy użyć

odpowiednio funkcji write_byte() oraz read_byte() . Do prawidłowego

działania komunikacji niezbędna jest również funkcja reset_pulse() , która

sprawdza obecność czujnika temperatury na magistrali. Aby pobrać temperaturę

należy, zgodnie z zaleceniami producenta [8]:

• Wywołać konwersję temperatury wysyłając bajty 0xCC, 0x44 ,

• Wywołać odczyt danych wysyłając bajty 0xCC, 0xBE,

• Odebrać 9 bajtów danych, których znaczenie przedstawia poniższy rysunek.

Rysunek 3.2 Znaczenie bajtów odebranych z czujnika temperatury [8]

Page 37: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

37/53

Jak widać ostatni bajt to suma kontrolna CRC odpowiedzi. Dzięki niej można nabrać

pewności, iż transmisja nie została zakłócona. Obliczaniem sumy kontrolnej po stronie

mikrokontrolera zajmuje się następujący fragment programu:

for (tmpu8=0; tmpu8 < 8; tmpu8++)

crc = _crc_ibutton_update(crc, tab[tmpu 8]);

Funkcję _crc_ibutton_update można wywołać dzięki dołączeniu pliku

nagłówkowego util/crc16.h . Przed analizą otrzymanych danych sprawdzany jest

bajt CRC, jeśli jest on nieprawidłowy cała ramka jest ignorowana, a próba kolejnej

konwersji i odczytu temperatury następuje za 800ms.

Czas potrzebny na konwersje temperatury przy maksymalnej rozdzielczości

pomiaru to 750ms, natomiast odczyt aktualnej wartości temperatury odbywa się co

1,6s. Wartość odczytanej temperatury jest wielkością ułamkową. Wielkość pliku

wynikowego po kompilacji z obsługą liczb typu float zwiększyła się niemal

dwukrotnie, dlatego zrezygnowano z obsługi liczb zmienno przecinkowych, a wynik

reprezentowany jest przez 2 bajty. W bajcie starszym zapisana jest liczba całkowita

oraz znak (najstarszy bit w bajcie równy 1 oznacza ‘-’). Natomiast w bajcie młodszym

zapamiętana jest ułamkowa część wyniku.

3.2 Punkt dostępowy

3.2.1 Algorytm wyszukiwania nowych i obsługi podł ączonych

urządzeń

Punkt dostępowy jako element nadzorujące pracę urządzeń wykonawczych

kontroluje przepływ informacji w sieci radiowej, według algorytmu przedstawionego

na rysunku 3.3. Dzieli on urządzenia na 2 grupy:

• podłączone,

• nie podłączone.

Aby jedno z urządzeń nie podłączonych mogło być wyszukane i podłączone, muszą

zostać obsłużone wszystkie już podłączone urządzenia. Takie podejście znacznie

ograniczona konieczność oczekiwania na urządzenia nieobecne, a co za tym idzie

przyspiesza komunikację z urządzeniami podłączonymi, ponieważ więcej ramek

obecnych w sieci trafia do urządzeń już podłączonych. Dobrze obrazuje to

Page 38: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

38/53

przedstawiony na rysunku 3.3 wykres, porównujący zastosowane rozwiązania z

algorytmem odpytywania liniowego, w którym każdemu z urządzeń, niezależnie od

tego czy jest podłączone czy nie, poświęcany jest taki sam czas.

Rysunek 3.3. Diagram blokowy algorytmu obsługi urządzeń podłączonych i nie podłączonych

Prównanie zastosowanego rozwi ązania z standardowym algorytmem liniowego odpytywania urz ądzeń

0

20

40

60

80

100

0 1 2 3 4 5 6 7 8

Ilość podł ączonych urz ądzeń

Ilość

ram

ek tr

afia

jąc

ych

do a

ktua

lnie

po

dłąc

zone

go u

rząd

zeni

a [%

]

Odpytyw anie liniow e

Zastosow ane rozw iązanie

Page 39: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

39/53

Rysunek 3.4. Porównanie zastosowanego rozwiązania z algorytmem stadardowym

3.2.2 Obsługa komunikacji Bluetooth

Punkt dostępowy wyposażony został w moduł bluetooth potrafiący działać w

trybie SPP, dzięki czemu komunikacja od strony mikrokontrolera sprawdza się do

wysyłania i odbierania danych za pośrednictwem portu UART. Aby skonfigurować

UART należy wywołać fukcję init_uart , która ustawia:

• baudrate (115200 kbps),

• ilość bitów stopu (1 bit),

• włącza nadajnik oraz odbiornik,

• włącza przerwanie od odbioru.

Po takiej inicjalizacji bajty, które są odbierane zostają wpisane do odpowiedniego

bufora, a następnie po wykryciu pełnej ramki przetwarzane.

Model komunikacji opisany dokładnie w punkcie 3.1.2 ma zastosowanie również w

tym miejscu, a jedyna różnica to inne znaki specjalne, czyli:

• 0xD1 – (SOP) początek ramki transmisyjnej,

• 0xD2 – (EOP) koniec ramki transmisyjnej,

• 0xD3 – (ESC) w przypadku, gdy którykolwiek z bajtów ramki równy jest

jednemu ze znaków specjalnych nadawany jest bajt ESC oraz zanegowany bajt

specjalny.

Każdy bajt wysłany przed SOP oraz po EOP będzie ignorowany.

3.2.3 Komendy komunikacyjne pomi ędzy urz ądzeniem nadrz ędnym

a aplikacj ą Android

a)Zmiana stanu wyjść przekaźnikowych na określonym urządzeniu kod komendy: ‘A’ we [2B] B0 – adres urządzenia docelowego B1 – wartość wyjścia przekaźnikowego oraz maska zmian b0 – gdy 1 zmieniamy stan wyjścia 1 na taki jak ustawia b4 b1 – gdy 1 zmieniamy stan wyjścia 2 na taki jak ustawia b5 b2..3 – nic

b4 – wartość wyjścia 1 b5 – wartość wyjścia 2 b6..7 – nic

wy [1B] lub [4B] B0 – aktualny stan wyjść przekaźnikowych

Page 40: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

40/53

b0 – aktualny stan wyjścia 1 b1 – aktualny stan wyjścia 2 b2..7 – nic B0..B4 = 0xFF, gdy urządzenie docelowe jest niepołączone

Przykład:

Jeśli istniej potrzeba ustawienia na urządzeniu o adresie 4 wyjście 2 w stan wysoki,

natomiast wyjście 1 ma pozostać w stanie nie zmienionym to należy wysłać

następującą ramkę:

0xD1 0x01 0x01 0x41 0x04 0x22 0xF1 0xCA 0xD2 0xD1 – znacznik początku ramki 0x01 – adres urządzenia dostępowego (aktualnie bez znaczenia bo nie obsługuje wielu punktów dostępowych) 0x01 – numer sekwencyjny ramki 0x41 – kod komendy ‘A’ 0x04 – adres urządzenie docelowego 0x22 – ustawienie maski zmiany stanu wyjścia 2 oraz stan wyjścia 2 0xF1 – pierwszy bajt sumy kontrolnej CRC16 0xCA – drugi bajt sumy kontrolnej CRC16 0xD2 – znacznik końca ramki b) Status wszystkich urządzeń podłączonych kod komendy: ‘B’ we [0B] – nic wy [0..(8*n)B] (gdzie n to ilość aktualnie podłączonych urządzeń) B0 – adres urządzenia którego dotyczy następne 7 bajtów danych, B1 – wartość wejścia rezystancyjnego 1,

B2 – wartość wejścia rezystancyjnego 2, B3 – wartość napięcia zasilania, B4 – wartość wejścia analogowego, B5 – aktualny stan wyjść przekaźnikowych,

b0 – aktualny stan wyjścia 1, b1 – aktualny stan wyjścia 2, b2..7 – nic,

B6 – wartość temperatury z czujnika cyfrowego, b0..6 – całkowita wartość temperatury,

b7 – znak (gdy 1 to minus, ‘-’), B7 – wartość temperatury z czujnika cyfrowego, b0..7 – wartość ułamkowa (maksymalnie 99),

Przykład:

W odpowiedzi na pytanie o status otrzymano ramkę:

0xD1 0x81 0x02 0x04 0x20 0x20 0x5C 0xFF ... ... 0x01 0x14 0x00 0xC2 0xA6 0xD2

Page 41: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

41/53

0xD1 – znacznik początku ramki 0x81 – ramka odpowiedzi z adresu 1 0x02 – odpowiedź na ramkę o polu Seq=0x02 0x04 – adres urządzenia którego dotycz kolejnych 7 bajtów 0x20 – wartość wejścia rezystancyjnego 1 0x20 – wartość wejścia rezystancyjnego 2 0x5C – napięcia zasilania (92*0.01294)*10=11.9V 0xFF – wartość wejścia analogowego 0x01 – wyjście 1 w stanie 1, wyjścia 2 w stanie 0 0x14 – temperatura, cześć całkowita 20 0x00 – temperatura, cześć ułamkowa 0 0xC2 – pierwszy bajt sumy kontrolnej CRC16 0xA6 – drugi bajt sumy kontrolnej CRC16 0xD2 – znacznik końca ramki Dodatkowo powyższa ramka niesie ze sobą informację, iż aktualnie podłączony jest

tylko jeden moduł kontrolno-sterujący (adres 4).

3.2.3 Algorytm działania urz ądzenia

Punkt dostępowy jako urządzenie nadrzędne inicjalizuje komunikację z

urządzeniami kontrolno-sterującymi. W pętli głównej programu cyklicznie sprawdzany

jest bufor nadawczy transmisji radiowej – jeśli są jakieś zapytania do wysłania są one

wysłane i urządzenie oczekuje, przez z góry określony czas na prawidłową odpowiedź.

Jeżeli otrzymanie prawidłowej odpowiedzi jest niemożliwe następuje retransmisja,

która w razie potrzeby może być powtarzana 3-krotnie. Po otrzymaniu prawidłowej

odpowiedzi ponownie sprawdzany jest bufor nadawczy. Urządzenie skonfigurowane

jest tak, aby dane przychodzące na porcie Bluetooth (pochodzące z aplikacji Android)

wywołały przerwanie i zostały zapisane, a następnie w głównej pętli programu

odpowiednio obsłużone.

Page 42: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

42/53

Rysunek 3.5. Diagram algorytmu działania punktu dostępowego

3.3 Moduły kontrolno-sterujące

3.3.1 Obsługa przeł ącznika konfiguracyjnego

Przełącznik konfiguracyjny służy do adresowania urządzeń kontrolno-

sterujących. Jak zostało wspomniane w założeniach projektowych możliwa jest obsługa

maksymalnie 8 tego typu modułów. W związku z tym do adresowania wykorzystane są

3 pary styków przełącznika. Podczas inicjalizacji urządzenia należy wywołać funkcję

dip_get_adr , która zwróci aktualnie ustawioną wartość adresu. Jeden z nich

Page 43: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

43/53

natomiast został wykorzystany w celu udostępnienia możliwości przełączenia

urządzenia w tryb serwisowy. Cechy odróżniające ten tryb od trybu standardowego to:

• pominięcie sprawdzania sum kontrolnych,

• pominiecie sprawdzania pola sekwencji, a co za tym idzie brak możliwości

retransmisji ramek,

• transmisja informacji serwisowych na porcie UART.

Wszystkie pozostałe funkcje urządzenia w tym trybie pozostają niezmienione. Tryb

serwisowy jest pomocny w przypadku zaistnienia konieczności wysłania ramki bez

pośrednictwa punktu dostępowego. Ręczne obliczanie, dla każdej nowo wysłanej ramki

sumy kontrolnej lub dbanie o prawidłową wartość pola sekwencyjnego, jest na tyle

uciążliwe, iż w większości przypadków diagnozowania urządzenia tryb serwisowy

zostanie włączony. Wprowadzenie urządzenia w tryb serwisowy wymaga:

• ustawienia przełącznika 4 w stan ON,

• odłączenia i podłączenia zasilania urządzenia.

Aby w programie sprawdzić aktualny stan przełącznika serwisowego należy wywołać

makro CHECK_CRC_PIN().

Page 44: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

44/53

3.3.2 Algorytm działania urz ądzenia

Rysunek 3.5 ilustruje algorytm działania urządzenia kontrolno-sterującego.

Oczywiście, aby nie zmniejszać czytelności diagram ten jest w dużym stopniu

uproszczony.

Rysunek 3.5. Diagram algorytmu działania modułu kontrolno-sterującego

Page 45: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

45/53

3.4 Aplikacja użytkownika dla systemu Android Stworzona sieć bezprzewodowych modułów kontrolno-sterujących potrzebuje

jeszcze tylko interfejsu, z poziomu którego będzie można nią zarządzać. Nie jest

dobrym pomysłem projektowanie i wykonanie nowego urządzenia, warto skorzystać z

już istniejących np. telefonów komórkowych czy tabletów. Dziś większość tego typu

urządzeń posiada kolorowy ekran dotykowy o dużym rozmiarze co jest ich niewątpliwą

zaletą, a zarazem pozwala je wykorzystać do innych specyficznych, wąskich

zastosowań. Wymagana jest jedynie odpowiednia aplikacja, aby te wąskie

zastosowania mogły być zrealizowane.

Obecnie na rynku istnieje już bardzo dużo mobilnych platform, takich jak: Symbian,

iOS, Windows Mobile, BlackBerry czy Java Mobile Edition. Dlaczego więc

zdecydowano się na platformę Android? – postaram się odpowiedzieć w kolejnym

podpunkcie.

3.4.1 Kilka słów o Androidzie

„Android to stworzona przez firmę Google i zrzeszenie OPEN Handset Alliance

platforma o jawnym kodzie źródłowym, przeznaczona dla urządzeń mobilnych.

Android znajduje się wewnątrz milionów telefonów komórkowych oraz innych

przenośnych urządzeń, co czyni go jedną z głównych platform dla projektantów

aplikacji. Ponadto Android jest pierwszym środowiskiem łączącym następujące cechy

[16]:

• Prawdziwie otwarta, darmowa platforma projektowa, bazująca na

Linuksie oraz jawnym kodzie źródłowym: Twórcy smartfonów lubią ją,

ponieważ mogą wykorzystywać i modyfikować tę platformę bez konieczności

płacenia tantiem. Programiści okazują jej sympatię. ponieważ wiedzą, że

posiada ona „ręce i nogi" oraz nie jest ograniczona wyłącznie do jednego

wydawcy, który mógłby ją przejąć lub wykupić.

• Architektura komponentowa inspirowana internetem: Elementy jednej

aplikacji mogą być wykorzystywane w innej w sposób, którego nie przewidział

sam projektant. Można zawsze wymienić wbudowane składniki na własne,

udoskonalone wersje. W ten sposób zostanie uwolniona nowa forma

kreatywności w świecie urządzeń mobilnych.

• Ogromna ilość nieszablonowych, wbudowanych usług: W zależności od

miejsca przebywania użytkownika usługi lokacyjne mogą wykorzystywać

Page 46: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

46/53

system GPS lub triangulację za pomocą masztów przekaźnikowych do

przetwarzania różnorodnych informacji o położeniu geograficznym. W pełni

rozwinięta baza danych SQL pozwala na okiełznanie potencjału pamięci

lokalnej. W przypadkach przetwarzania i synchronizowania większych partii

danych. Przeglądarka oraz widoki mapy mogą zostać umieszczone

bezpośrednio wewnątrz aplikacji. Wszystkie te wbudowane funkcje pomagają

zwiększyć funkcjonalność aplikacji przy jednoczesnym obniżeniu kosztów

projektowych.

• Automatyczne zarządzanie cyklem życia aplikacji: Poszczególne programy

są oddzielone od siebie za pomocą wielowarstwowych zabezpieczeń,

zapewniających poziom stabilności niespotykany wcześniej w smartfonach.

Użytkownik nie będzie musiał już zastanawiać się, które aplikacje są aktywne,

lub zamykać jedne programy, aby móc uruchomić inne. Android, jak żaden

inny system, został zoptymalizowany pod kątem urządzeń pobierających mało

energii oraz posiadających niewiele pamięci.

• Grafika i d źwięki wysokiej jakości: Wygładzona, wykorzystująca

antyaliasing, dwuwymiarowa grafika i animacja wektorowa (inspirowana

technologią Flash) została powiązana z trójwymiarową grafiką generowaną

przez środowisko OpenGL, dzięki czemu możliwe stało się tworzenie nowych

rodzajów gier i aplikacji biznesowych. Od samego początku dostępne są kodeki

obsługujące większość standardowych formatów audio i wideo, na przykład

H.264 (AVC) MP3 i AAC.

• Przenośność pomiędzy szeroką gamą współczesnego oraz przyszłego

sprzętu: Wszystkie programy pisane są w języku Java i wykonywane przez

wirtualną maszynę Dalvik, zatem stworzony kod będzie można przenosić na

architektury AR1VI, x86 i inne. Zaimplementowana została obsługa wielu

urządzeń pozwalających na wprowadzanie danych, na przykład klawiatury,

tabliczki dotykowej oraz trackballa. Interfejs użytkownika może zostać

dostosowany do dowolnej rozdzielczości oraz orientacji wyświetlacza.

Android oferuje świeże spojrzenie na sposób, w jaki mobilne aplikacje oddziałują na

użytkowników, a także umożliwiające to techniczne podwaliny. Jednak najlepszym

elementem Androida jest oprogramowanie, które można na niego napisać.” [16]

Page 47: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

47/53

3.4.2 Narzędzia niezb ędne do pisania oprogramowania

Aby rozpocząć pisanie kodu pod Android dobrze jest wyposażyć komputer w

następujące narzędzia:

a) Platforma Java

Podstawą jest platforma Java. Jest ona wymagana przez wszystkie narzędzia

programistyczne Androida. Samo środowisko uruchomieniowe (ang. Java Rountime

Environment - JRE) jednak nie wystarczy, konieczne jest środowisko JDK,

b) Środowisko IDE – Eclipse

Darmowe środowisko programistyczne platformy Java nie jest niezbędne, możliwe jest

użycie innego IDE, jak np. NetBeans, lub korzystanie wyłącznie z narzędzi wiersza

poleceń – byłoby to jednak niezwykle uciążliwe. W projekcie został wykorzystany

Eclipse wraz z wtyczką przygotowaną przez firmę Google, która znacznie ułatwia

proces programowania,

c) Android SDK

Począwszy od wersji 2.0 pakiet Android SDK został podzielony na dwie części: SDK

Starter Package (Pakiet startowy) oraz SDK Components (składniki). Niezbędne są oba

elementy,

d) Urządzenie do uruchomiania aplikacji

Urządzenie takie może być wirtualne, wystarczy utworzyć urządzenie AVD za pomocą

polecenia android avd. W prezentowanym projekcie do uruchamiania aplikacji nie

służyło urządzenie wirtualne lecz tablet Archos 101 G9 16GB.

3.4.3 Koncepcja Aplikacji

Aplikacja uruchomiona na urządzeniu mobilnym pełni rolę głównie graficznego

interfejsu użytkownika. Jest ona jednak bytem nadrzędnym w stosunku do punktu

dostępowego, dlatego jej dodatkowym zadaniem jest pobranie wszystkich niezbędnych

informacji na temat sieci modułów kontrolno-sterujących i wyświetlenie jej na ekranie

urządzenia mobilnego. To aplikacja inicjalizuje połączenie z punktem dostępowym, a

następnie jako pierwsza wysyła zapytania w postaci ramek oczekując odpowiedzi. Do

prawidłowej obsługi komunikacji Bluetooth niezbędne okazało się opracowanie dwóch

wątków, poza wątkiem głównym. Interfejs użytkownika obsługiwany jest zgodnie z

koncepcją programowania zdarzeniowego. Koncepcję działanie aplikacji użytkownika

dobrze prezentuje rysunek 3.6. Wysoko-poziomowa implementacja stosu bluetooth w

SDK Android zwalnia programistę z konieczności zgłębiana tajników tej komunikacji.

Page 48: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

48/53

Rysunek 3.5. Algorytm działania aplikacji mobilnej

Page 49: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

49/53

4. Podsumowanie i możliwości dalszego rozwoju projektu

W niniejszej pracy dyplomowej przedstawiony został sposób realizacji

bezprzewodowej sieci modułów kontrolno-sterujących. Zaprojektowane zostały 2

urządzenia będące elementami tej sieci. Oba urządzenia bazują na powszechnie

dostępnych podzespołach co czyni całą sieć rozwiązaniem niskobudżetowym, a przez

to konkurencyjnym. Urządzenia są dostosowane do standardowych obudów na szynę

DIN co ułatwia ich montaż. Wysoka prędkość transmisji pomiędzy modułami

kontrolno-sterującymi i punktem dostępowym, a także odpowiedni algorytm

zarządzania kolejnością obsługi urządzeń przez punkt dostępowy (pkt. 3.2.1), zapewnia

spełnienie rygorystycznych wymagań czasowych postawionych w rozdziale pierwszym

niniejszej pracy inżynierskiej. Wszystkie założenia, o których mowa zostały spełnione:

• Sieć kontrolno-sterująca pracuje w trybie Master/Slave, przy czym Master to

punkt dostępowy a Slave to moduły kontrolno-sterujące.

• Dostęp do modułów kontrolno-sterujących jest możliwy tylko za

pośrednictwem punktu dostępowego dzięki interfejsowi radiowemu o

częstotliwości 868MHz (moduły kontrolno-sterujące nie mogą się

komunikować miedzy sobą).

• Komunikacja między punktem dostępowym, a urządzeniem mobilnym odbywa

się za pośrednictwem interfejsu Bluetooth (2,4GHz).

• Moduły kontrolno-sterujące posiadają: 2 wyjścia przekaźnikowe, 2 wejścia

analogowe, interfejs 1-wire.

• W jednej sieci może pracować do 8 modułów kontrolno-sterujących.

• Oba zaprojektowane urządzenia mogą być zasilane ze źródła napięcia stałego

od 7 do 15V.

• Opracowane protokoły transmisyjne zapewniają: możliwość sprawdzenia

poprawności otrzymanej ramki (sumy kontrolne), retransmisję uszkodzonych

ramek (pola sekwencyjne), oraz bezproblemową transmisję ramek o długości

nie mniejszej niż 40 bajtów (licząc wraz z nagłówkiem i sumą kontrolną).

• Podczas konfiguracji sieci zmiana adresu urządzenia nie wymaga restartu

urządzenia kontrolno-sterującego.

Page 50: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

50/53

• Interfejs użytkownika posiada: możliwość śledzenia aktualnego stanu wejść

analogowych, wyjść przekaźnikowych oraz umożliwia zmianę ich stanu.

• Aplikacja użytkownika współpracuje z systemem Android i posiada moduł

umożliwiający wyszukiwanie i łączenie się do urządzeń Bluetooth.

• Zmiana stanu dowolnego wejścia analogowego lub wyjścia przekaźnikowego

jest przekazana i zobrazowana na interfejsie użytkownika, w czasie nie

dłuższym niż 1 sekunda od chwili wystąpienia wymuszenia.

• Zmiana stanu dowolnego wyjścia przekaźnikowego następuje w czasie nie

dłuższym niż 1 sekunda od momentu wydania polecenia zmiany stanu w

interfejsie użytkownika,

• Rozłącznie lub podłączenie urządzenia nie wymaga rekonfiguracji istniejącej

sieci. Rekonfiguracja sieci następuje automatycznie, bez ingerencji

użytkownika systemu i jest sygnalizowana w interfejsie użytkownika w czasie

nie przekraczającym 1 sekundy.

Chronologia postępowania podczas realizacji pracy dyplomowej:

• Rozpoznanie i analiza postawionego problemu,

• Analiza możliwości rozwiązań,

• Wybranie podzespołów odpowiednich do realizacji zadania,

• Przygotowanie pierwszej wersji schematów ideowych dwóch urządzeń,

• Zaprojektowanie obwodów drukowanych prototypów urządzeń na podstawie

schematów,

• Produkcja obwodów drukowanych,

• Lutowanie urządzeń prototypowych,

• Napisanie wstępnych wersji kodów źródłowych dla obu urządzeń,

• Drobne poprawki w schematach oraz obwodach drukowanych,

• Produkcja obwodów drukowanych,

• Lutowanie urządzeń w wersji poprawionej,

• Napisanie oprogramowania wbudowanego dla urządzeń, zapewniającego

prawidłowe działanie sieci, z uwzględnieniem wszystkich założeń

projektowych,

• Testy oprogramowania urządzeń,

Page 51: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

51/53

• Napisanie oprogramowania dla systemu Android pozwalającego na pełną

kontrolę nad zbudowaną siecią, za pomocą urządzenia wyposażonego w

interfejs Bluetooth,

• Testy oprogramowania dla systemu Android,

• Analiza zastosowanego rozwiązania oraz wnioski,

• Opracowanie niniejszego dokumentu.

Jest to kompletny, stabilny system, który może zostać rozbudowany. Możliwe

kierunki rozwoju to:

a) dodatkowe interfejsy umożliwiaj ące dostęp do sieci

Do przedstawionego rozwiązania w miejsce modułu Bluetooth można w bardzo prosty

sposób dodać inne interfejsy np.

• LAN • WLAN • ZigBee • GSM

Wystarczy, aby wyjście tych interfejsów wyposażone było w port szeregowy, a

aplikacja obsługująca była zgodna z opisanym protokołem transmisyjnym. Rozbudowa

o dodatkowe interfejsy pozwalające na dostęp do sieci modułów kontrolno-sterujących

sprowadza się więc do stworzenia konwerterów z LAN, WLAN czy innych na interfejs

szeregowy oraz do napisania odpowiedniego oprogramowania.

b) Aplikacje mobilne pod inne niż Android systemy operacyjne

Kolejnym krokiem jaki należy podjąć podczas dalszych pracy nad projektem jest

stworzenie aplikacji mobilnych na inne systemy jak np. iOS, czy Symbian

c) Zwiększenie ilość obsługiwanych urządzeń

Aktualnie jeden punkt dostępowy może obsługiwać do 8 urządzeń kontrolno-

sterujących. W stosunkowo prosty sposób można tę liczbę podwoić - wymagane są

jedynie drobne zmiany w kodach źródłowych urządzeń oraz aplikacji mobilnej.

d) Rozpoznawanie typów urządzeń

Zaproponowane rozwiązanie aktualnie obsługuje jeden typ urządzeń kontrolno-

sterujących, możliwe jest jednak zaprojektowanie innych urządzeń współpracujących z

już istniejącym punktem dostępowym np.:

• zestaw 16 czujników temperatury i wilgotności, • zestaw 8 wejść analogowych i 8 wyjść cyfrowych.

Taka zmiana będzie wymagała sporego nakładu pracy w samą konstrukcję urządzeń, a

także zmiany w aplikacji mobilnej.

Page 52: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

52/53

Bibliografia

[1] Artykuł – „Android oraz iOS wciąż zwiększają udział w rynku” http://www.chip.pl/news/wydarzenia/trendy/2012/07/android-oraz-ios-wciaz-zwiekszaja-udzial-w-rynku,

[2] Nota katalogowa – RFM12B http://www.hoperf.com/upload/rf/RFM12B.pdf

[3] Instrukcja użytkownika – Archos 101 G9 16GB - https://www.archos.com/manuals/A101_EN_v1.1.htm

[4] Nota katalogowa – Atmega8L http://ww.atmel.com/images/doc2486.pdf

[5] Nota katalogowa – LD1117 http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXuqtqv.pdf

[6] Artykuł – Samoidukcja http://pl.wikipedia.org/wiki/Samoindukcja

[7] Artykuł – „Obsługa interfejsu 1-Wire na przykładzie DS18B20” http://.jaglarz.com/ja/elektronika/ds18b20.pdf

[8] Nota katalogowa – DS18B20 http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

[9] Nota katalogowa - MAX3232 http://datasheets.maximintegrated.com/en/ds/MAX3222-MAX3241.pdf

[10] Nota katalogowa – MAX232, http://www.ti.com/lit/ds/symlink/max232.pdf [11] Nota katalogowa – Z102

http://www.tme.eu/pl/Document/689c4610812882d5d911f01aeb6be27e/Z-102.pdf [12] Strona producenta –

http://www.prototypy.com/ [13] Nota katalogowa – Atmega32

http://ww.atmel.com/Images/doc2503.pdf [14] Obraz - http://static.tme.eu/katalog_pics/b/b/0/bb01e7cfa538d0e741dd61f44c7fa8f6/btm-112.jpg [15] Nota katalogowa – BTM112

http://sparkfun.com/datasheets/Wireless/Bluetooth/BTM112_wATcommands.pdf [16] książka „Hello, Android. Programowanie na platformę Google dla urządzeń

mobilnych.” Wydanie III, Wydawnictwo Helion, s. 11

Page 53: PRACA DYPLOMOWA NŻYNIERSKA › 2014 › 06 › p_dyp_ostatec… · BLUETOOTH DLA URZ ĄDZE Ń MOBILNYCH Z SYSTEMEM ANDROID CONTROL AND COMMAND WIRELESS NETWORK WITH BLUETOOTH INTERFACE

Praca dyplomowa - Łukasz Tomaszowicz AGH 2013

53/53

Dodatek A. Spis zawartości płyty DVD

• Kod źródłowy urządzenia kontrolno- sterującego oraz punktu dostępowego, • Kod źródłowy aplikacji dla systemu Android, • Schematy ideowy projektu urządzenia kontrolno- sterującego oraz punktu

dostępowego w postaci plików PNG, • Pliki projektowe (schematy oraz wygląd płytek PCB) z programu Altium

Designer, • Niniejsza praca dyplomowa w formacie zbioru PDF.