Zegar Szymon, Prochwicz Wojciech

Transkrypt

Zegar Szymon, Prochwicz Wojciech
Wojciech Prochwicz, Szymon Zegar - II rok
Koło Techniki Cyfrowej
dr inż. Wojciech Mysiński – opiekun naukowy
COMMUNICATIONS MICROPROCESSOR SYSTEM
WITH PC USING BLUETOOTH
KOMUNIKACJA SYSTEMU MIKROPROCESOROWEGO
Z PC ZA POMOCĄ BLUETOOTH
Keywords: Bluetooth, Atmega, communications, module HC-05, temperature sensor LM35
Słowa kluczowe: Bluetooth, Atmega, komunikacja, moduł HC-05, czujnik temperatury LM35
Ab s tra ct
This paper presents the communication of a microprocessor system using Bluetooth wireless
data transmission technology. The output module is based on an Atmega32, Bluetooth module and
temperature sensor. Connections between HC-05 Bluetooth Module and ATmega32
microcontroller takes place through UART serial communication protocol. The ATmega32
microcontroller send data to PC. In terminal program we change state port microcontroller. In this
paper is shown how create scheme, connection HC-05, temperature sensor with microcontroller
and how do transmission and send data in two directions.
1. Wstęp
W dzisiejszych czasach ciągle wzrasta liczba urządzeń elektronicznych mogących się ze sobą
komunikować. Większa część systemów, w których wykorzystane są mikrokontrolery,
wykorzystuje dodatkowo oprócz samego mikrokontrolera więcej lub mniej dodatkowych
podukładów. Sprzętowe układy obsługi transmisji upraszczają realizacje transmisji od strony
programowej jak również odciążają procesor. Właśnie dlatego, współczesne mikrokontrolery są
zwykle dość bogato wyposażone w produkty obsługi transmisji danych i komunikacji z innymi
układami.
2. Standard Bluetooth
Bluetooth jest to technologia komunikacji bezprzewodowej krótkiego zasięgu między
urządzeniami elektronicznymi. W życiu codziennym najczęściej spotykana jest w np. telefonach
komórkowych, komputerach, laptopach, klawiaturach, drukarkach jak i wielu innych urządzeniach
codziennego użytku (Rys1). Bluetooth jest to standard otwarty opisany w specyfikacji IEEE
802.15.1. Został opracowany w celu zastąpienia połączeń kablowych. Pierwszy standard był
przedstawiony w 1999 roku przez pięć firm Ericsson, IBM, Intel, Nokia, Toshiba. Zatwierdzony
przez IEEE w 2002 roku, obecnie dalej podlega modyfikacjom. Bluetooth wykorzystuje
czterowarstwowy stos protokołów, transmisję pakietową, modulację FSK. Technologia korzysta z
fal radiowych w paśmie ISM 2.4 Ghz. Jest to pasmo, które jest nielicencjonowane co pozwala nam
korzystać w pełni darmowo i swobodnie z komunikacji.
Rys.1 Przykładowe urządzenia wykorzystujące technologie Bluetooth
Sieć w technologii Bluetooth nazywana jest pikosiecią (ang. Piconet). Zawiera ona jeden
węzeł master i do siedmiu −węzłów typu slave. W jednym pomieszczeniu może znajdować się
kilka pikosieci i mogą być one ze sobą połączone za pomocą węzła typu bridge (most). Połączone
w ten sposób sieci nazywają się scatternet. Dodatkowo możliwe jest, aby w sieci pracowało do
255 węzłów zamiast 7.
Muszą one pozostać w stanie synchronizacji z urządzeniem typu master. Pracują wtedy w trybie
wyczekiwania i niskiego poboru mocy .Nie uczestniczą w transmisjach danych i oczekują na
sygnał aktywacyjny od urządzenia master.
Rys.2 Przykład połączenia dwóch pikosieci
Urządzenia Bluetooth dzielimy ze względu na :
Moc sygnału radiowego:
•
•
•
klasa 1 (100 mW) ma największy zasięg, teoretycznie do 100 m
klasa 2 (2,5 mW) jest najpowszechniejsza w użyciu, teoretyczny zasięg do 10 m
klasa 3 (1 mW) rzadko używana, z teoretycznym zasięgiem do 1 m
Szybkość transmisji:
• Bluetooth 1.0 – 21 kb/s
• Bluetooth 1.1 – 124 kb/s
• Bluetooth 1.2 – 328 kb/s
• Bluetooth 2.0 + EDR – zwiększono transfer teoretyczny do 2,1 Mb/s
• Bluetooth 3.0 + HS (High Speed) – 24 Mb/s (3 MB/s)
• Bluetooth 3.1 + HS (High Speed) – 40 Mb/s (5 MB/s)
• Bluetooth 4.0 + LE (Low Energy) – 1 Mb/s[4] znacząco ograniczono pobór energii,
kosztem obniżonego transferu oraz zwiększono realny zasięg działania do 100 m
• Bluetooth 4.1 - standard opracowany do zastosowania w tzw. "internecie rzeczy",
umożliwiający bezpośrednią łączność urządzeń z internetem.
• Bluetooth 4.2 - w stosunku do poprzednich wersji: szybszy transfer, wyższy poziom
bezpieczeństwa, nawiązanie łączności z przedmiotami – łatwiejsze
Bezpieczeństwo:
Standard Bluetooth posiada wbudowane mechanizmy zabezpieczające takie jak:
rozpoznawanie urządzenia, autoryzacja użytkownika, szyfrowanie przesyłanych danych.
Mechanizmy te operują na warstwie zarządzania łącza, która należy do protokołów warstwy
transportowej takich jak L2CAP i RFCOMM. Dodatkowo możemy wykorzystywać istniejące
protokoły bezpieczeństwa takie jak TLS lub IPsec implementując je w warstwie transportowej.
3. Moduły wykorzystane w projekcie
Modułem pozwalającym rozszerzyć nasz układ o transmisję bezprzewodową jest moduł HC-05.
Jest to urządzenie typu Bluetooth-USART, które od strony mikrokontrolera widziane jest jak
typowy port szeregowy USART. Z tego powodu możemy tworzyć oprogramowanie urządzenia w
sposób analogiczny jak dla portu szeregowego. Układ najczęściej posiada adapter (niebieska
część układu na fotografii Rys.3.), w którym może znajdować się regulator napięcia 3.3V, co
zwalnia z konieczności stosowania dodatkowego dzielnika napięcia. Dodatkowo adapter ten
posiada goldpiny, co umożliwia połączenie modułu z płytką stykową. Sterowanie modułem
odbywa się za pomocą komend AT. Komendy te to określone ciągi znaków ASCII, które przesyła
się do modułu HC-05 za pomocą interfejsu UART, z wykorzystaniem linii RxD oraz TxD
modułu. Aby moduł HC-05 mógł odbierać komendy AT i reagować na nie, należy go
odpowiednio skonfigurować.
Parametry modułu HC-05:
•
•
•
•
•
•
•
•
•
Napięcie zasilania:
o 5 V poprzez wbudowany stabilizator - podłączenie do pinu 5,
o 3,3 V - podłączenie do pinu 3,
pobór prądu:
o parowanie 80 mA
o transmisja: 8 mA
klasa 2 - moc nadajnika maks. + 4 dBm,
zasięg: do 10 m,
standard: Bluetooth 2.0 + EDR,
profil SPP z możliwością ustawień poprzez komendy AT,
komunikacja: UART (RX, TX),
domyślny kod parowania: 1234,
małe wymiary: 37 x 17 mm.
Rys.3. Moduł Bluetooth HC-05

Czujnik temperatury LM35DZ:
Czujnik temperatury LM35DZ jest popularnym termometrem analogowym w którym napięcie
wyjściowe jest proporcjonalne do mierzonej temperatury z zakresu 0 °C do 100 °C. Zasilany jest
napięciem od 4 do 30V, w naszym przypadku 5V.
Rys.4 Czujnik temperatury LM35
Parametry modułu:






napięcie zasilania: 4…30V,
skala skalibrowana dla stopni Celsjusza,
liniowa skala: 10,0 mV/°C,
dokładność: 0,5 °C (przy 25°C),
zakres pomiarowy: od 0 °C do 100 °C.
Prąd drenu poniżej 60 µA
4. Schemat połączeń
Zestawienie układu polega na połączeniu mikrokontrolera Atmega32 z modułem bluetooth
HC-05 oraz czujnikiem temperatury LM35. Moduł HC-05, by działał prawidłowo należy do pinu
VCC podłączyć zasilanie , natomiast pin GND podłączyć do GND. Aby móc odbierać i wysyłać
dane należy dokonać krzyżowania linii danych ( połączeń linii modułu z liniami
mikrokontrolera),a dodatkowo zastosować dzielnik napięcia, ponieważ port Rx modułu pracuje z
napięciem 3.3V, co przedstawia Rys 5.
Należy pamiętać o zastosowaniu zewnętrznego rezonatora kwarcowego, dla zapewnienia
poprawnej transmisji danych. W naszym przypadku jest to kwarc 16MHz
Rys.5 Sposób połączenia modułu Bluetooth HC-05 z mikrokontrolerem
Połączenie czujnika temperatury należy zrealizować następująco:
Pin VCC podłączyć do zasilania (5V), pin GND do masy, oraz pin Data OUT do wejścia
przetwornika analogowo-cyfrowego mikrokontrolera.
Schemat blokowy całego układu przedstawia Rys.6.
Rys.6 Schemat blokowy układu do komunikacji mikrokontrolera z komputerem.
Aby było możliwe połączenie układu mikroprocesorowego z PC za pomocą modułu Bluetooth
HC-05, należy wcześniej sparować oba urządzenia. Można to zrobić w PC wyszukując i dodając
urządzenie HC-05. Domyślnie moduł jest widoczny, a jego nazwą domyślną jest HC-05. Następnie
należy podać hasło parowania, które jest ustawione przez producenta. W naszym module jest to:
1234. Jeśli ten zabieg przejdzie pomyślnie, zostanie przydzielony wirtualny port szeregowy COM,
który będzie wykorzystany do nawiązania połączenia.
5. Oprogramowanie
Oprogramowanie dla mikrokontrolera zostało napisane w języku C przy użyciu środowiska
Atmel Studio 6.2. W celu wgrania programu do układu został użyty programator USBasp oraz
narzędzie SinaProg. W programie zostały wykorzystane definicje funkcji wysyłających oraz
odbierających dane przez standardowy port szeregowy (Rys.7), które zostały zaczerpnięte z
dokumentacji mikrokontrolera Atmega32. W celu inicjalizacji transmisji należy ustawić
poszczególne bity konfiguracyjne (Rys.8). W projekcie został wykorzystany również wbudowany
w mikrokontroler przetwornik A/C w celu odczytu pomiaru temperatury czujnika LM35.
Konfiguracja jego pracy została przedstawiona na Rys9.
Rys.7 Funkcje : odbierająca znak , wysyłająca znak, wysyłająca ciąg znaków
Rys.8 Funkcja konfigurująca transmisję szeregową
Rys.9 Funkcja odpowiedzialna za pomiar przetwornika A/C.
6. Działanie Aplikacji
Działanie aplikacji będziemy obserwować za pomocą programu RealTerm, monitora portu
szeregowego. Przed rozpoczęciem testowania należy ustawić poszczególne parametry transmisji
które przedstawia Rys.10.
Rys.10 Panel główny programu RealTerm
W naszej aplikacji ustawienia te są następujące:

Baud: 9600 - jest to prędkość transmisji

Parity-None - brak bitu parzystości

Data Bits: 8 - ilość bitów danych

Port: 23 - jest to wirtualny port COM przypisany do naszego modułu HC-05
Prezentacja działania aplikacji :
W aplikacji będziemy wysyłać wyniki pomiarów czujnika LM35 za pomocą modułu Bluetooth
HC-05 do PC oraz zmieniać stan logiczny na wejściach/wyjściach mikrokontrolera z poziomu
PC.
Rys.11. Prezentacja wysyłania danych do PC za pomocą modułu bluetooth
Zmianę stanu logicznego na ustalonej końcówce mikrokontrolera realizujemy za pomocą
krótkiego kodu:
gdzie u8TempData jest to zmienna przechowująca odebrane dane.
Rys.12. Wysyłanie danych z PC do układu mikroprocesorowego
za pomocą programu RealTerm
Prezentacja działania:
Rys.13. Zapalona dioda D3 po przesłaniu danych
7. Podsumowanie
W ostatnich latach można zauważyć znaczne przyspieszenie rozwoju rynku modułów
komunikacji bezprzewodowej. Do niedawna Bluetooth wykorzystywany był głównie w
przypadku komunikacji pomiędzy telefonem a komputerem. Obecnie dzięki wersji Bluetooth
Low Energy, stanowi interesujące medium komunikacyjne w przypadku wszelkiego rodzaju
aplikacji wymagających niskiego poboru mocy. Programowanie jest ułatwione dzięki
popularności języka C, bezpłatnym środowiskom programistycznym oraz szczegółowym opisie
funkcji mikrokontrolerów w ich dokumentacji.
Lit erat u ra
[1]
[2]
[3]
[4]
https://pl.wikipedia.org/wiki/Bluetooth
HC-05_datasheet
LM35_datasheet
ATMEGA32 http://www.atmel.com/images/doc2503.pdf

Podobne dokumenty