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