Mateusz Chochół V rok Koło Naukowe Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy DEVICE CONTROL WITH BLUETOOTH AND ANDROID SYSTEM STEROWANIE URZĄDZENIAMI ZA POMOCĄ BLUETOOTH I SYSTEMU ANDROID Keywords: Bluetooth, Android, HC05 module, intelligent building Słowa kluczowe: Bluetooth, Android, HC05 moduł, budynek inteligentny Abstract: Today, numerous devices run the Android operating system. Most of the devices with Android are mobile ones. They can be used to monitor or control such items of equipment as: HVAC controllers; lighting controllers, alarms and intelligent buildings, robots, and much more. This paper presents a method for the implementation of a control system using Bluetooth wireless data transmission technology installed on an Android mobile telephone. The application installed on the phone controls an external device. The output module is based on an ATMEGA 8-bit microcontroller and an HC05 Bluetooth module. The microcontroller is designed to switch on and off devices with high power ratings, such as fans, lighting systems. The application was developed using the MIT App Inventor 2 platform. 1.Wstęp Obecnie liczba urządzeń z systemem operacyjnym Android jest bardzo duża i ciągle rośnie. System ten jest stosowany głównie w urządzeniach mobilnych (telefony, tablety). Urządzenia takie mają zwykle znaczne zasoby sprzętowe (wielordzeniowe procesory, układy graficzne, wyświetlacze LCD wysokiej rozdzielczości zwykle dotykowe, znaczne ilości pamięci RAM i flash, kamery, moduły GPS) co w połączeniu z bogatymi możliwościami komunikacyjnymi (GSM, LTE, 3G,Wifi, Bluetooth) powoduje, że nadają się one dobrze jako bezprzewodowe urządzenia do sterowania i monitoringu. Zastosowań jest bardzo dużo, np. sterowniki CO i klimatyzacji, sterowniki oświetlenia, alarmy i inteligentny budynek, sterowanie robotami inne W poniższym opracowaniu zostanie przedstawione wykonanie sterownika z urządzeniem z system Android modułem Bluetooth oraz procesorem Atmega 8 do sterowania i monitoringu.
2. Standard Bluetooth Bluetooth jest to technologia komunikacji bezprzewodowej krótkiego zasięgu między urządzeniami bezprzewodowymi np. komputery, tablety, słuchawki, klawiatury, itd. Jest standardem otwartym opisanym w specyfikacji IEEE 802.15.1. Służy on do zastąpienia połączeń kablowych między urządzeniami. Pierwszy standard został opracowany w 1999 roku przez pięć firm Ericsson, IBM, Intel, Nokia i Toshiba. Standard ten został zatwierdzony przez IEEE w 2002 roku, jednak nadal podlega on modyfikacjom. Bluetooth wykorzystuje czterowarstwowy stos protokołów, transmisję pakietową, pasmo ISM 2,4Ghz oraz modulację FSK. Przed rozpoczęciem transmisji urządzenia master i slave muszą zostać sparowane za pomocą klucza parowania. 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). Takie połączenie nazywa się scatternet. Możliwe jest aby w jednej sieci, oprócz siedmiu węzłów typu slave, pracowało do 255 węzłów, pozostających w stanie synchronizacji z urządzeniem typu master (jest to tzw. tryb wyczekiwania i niskiego poboru mocy). Nie uczestniczą one w transmisjach danych i oczekują na sygnał aktywacyjny od urządzenia master. Rys.1 Połączenie dwóch pikosieci scatternet 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 oraz ze względu na szybkość transmisji: Bluetooth 1.0 21 kb/s Bluetooth 1.1 124 kb/s
Bluetooth 1.2 328 kb/s Bluetooth 2.0 + EDR wprowadzenie Enhanced Data Rate zwiększyło transfer teoretyczny do 2,1 Mb/s (około 3 Mb/s wliczając narzut protokołu) 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 (np. praca czujnika temperatury, przez wiele miesięcy na baterii pastylkowej), kosztem obniżonego transferu oraz zwiększono realny zasięg działania do 100 m 3. Moduł Bluetooth USARTHC05 Komunikacja z zastosowaniem technologii Bluetooth ma wiele zalet jednak typowa jej implementacja we własnych urządzeniach z mikrokontrolerami jest dość trudna ponieważ potrzebny jest stos protokołów oraz transceiver. Aby ułatwić implementację Bluetooth opracowano urządzenia typu Bluetooth-USART które od strony mikrokontrolera widziane są jako standardowy port szeregowy USART. Sterowanie urządzeniami tego typu odbywa się za pomocą komend AT. Dla użytkownika piszącego program na mikrokontroler wysyłanie danych jest równie proste jak w przypadku zastosowania zwykłego portu szeregowego. W projekcie został zastosowany moduł Bluetooth HC05 Rys.2 Moduł HC05
Podstawowe cechy modułu HC05: od strony mikrokontrolera piny Txd i Rxd moduł jest widziany jako zwykły sprzętowy port szeregowy (całą komunikacją Bluetooth steruje wbudowany w moduł procesor), sterowanie modułem odbywa się za pomocą komend AT, klasa druga urządzenia zasięg do 10 m, niska cena ok 20 zł, standard: Bluetooth 2.0 + EDR 3 Mb/s, zasilanie +3.3V (niektóre wersje ze stabilizatorem można zasilać napięciem +5V), domyślne hasło parowania 1234, linie Txd i Rxd pracuję na poziomie 3.3V (przy podłączeniu z mikrokontrolerem 5V np. Atmega 8 należy stosować konwerter poziomów,niektóre wersje tolerują TTL 5V), domyślana prędkość transmisji 9600 bodów, pobór prądu 80 ma parowanie transmisja 8 ma, możliwość przeprogramowania i użycia bez zewnętrznego procesora. Poniżej przykład połączenia z Arduino Nano Rys.3 Przykład połączenia z Arduino Nano (mikrokontrolerem 5V)
Oprogramowanie mikrokontrolera Oprogramowanie dla mikrokontrolera tworzy się w C/C++, asemblerze, jeśli jest on z rodziny AVR można wykorzystać Bascom. Oprogramowanie musi zawierać obsługę portu szeregowego, która jest zależna od typu kontrolera. Mikrokontroler powinien być taktowany z użyciem oscylatora kwarcowego który jest stabilniejszy od wewnętrznego oscylatora RC. Przykład konfiguracji portu szeregowego UART i transmisji danych jest przedstawiony poniżej: /* * Bluetooth_USART_atmega8.c * * Created: 2015-05-11 18:02:00 * Author: mat */ #include<avr/io.h> #include<avr/delay.h> intmain(void) {lcd_init(1,2);//inicializaciawyswietlacz DDRB=0xff; tekst("ktc USKN 2015"); enter(); // _delay_ms(1000); //ustawienie UCSRB=(1<<RXEN) (1<<TXEN); UCSRC=(1<<URSEL) (1<<USBS) (3<<UCSZ0); UBRRL=12; charznak1=0;
PORTB=0xff; while(1) {//UDR=49; DDRB=0xff; while(!(ucsra&(1<<rxc))) ; chartemp; znak1=udr; if(znak1=='1') {temp=portb; PORTB=temp-0x08; } elseif(znak1=='2') {temp=portb; PORTB=temp-0x10;} elseif(znak1=='3') {temp=portb; PORTB=temp-0x20;} PORTB=0xff; elseif(znak1=='4') } }
Program na początku dokonuje inicjalizacji portu szeregowego oraz wyświetlacza LCD Później przechodzi do wykonywania pętli głównej w której oczekuje na odbiór znaku na porcie szeregowym USART. Dalej określa na podstawie odebranego bajtu które piny portu B wyzerować (stan aktywny niski) lub ustawić. 4. Oprogramowanie urządzenia z systemem Android Oprogramowanie dla urządzeń z systemem operacyjnym Android tworzy się w zwykle w języku Java i uruchamia na wirtualnej maszynie. Nie jest to bardzo skomplikowane, w intrenecie znajduje się wiele kursów Javy dla urządzeń mobilnych, jednak dla zastosowań dla prostych urządzeń sterowania i monitoringu znajomość Javy nie jest niezbędna. Program możemy utworzyć korzystając z narzędzia online MIT App Inventor 2 gdzie tworzenie aplikacji odbywa się w oparciu o schematy blokowe i programowanie wizualne. Aby utworzyć aplikację należy: zarejestrować się na http://ai2.appinventor.mit.edu/, utworzyć projekt. MIT App umożliwia testowanie w czasie rzeczywistym urządzenie mobilne i komputer muszą być w tej samej sieci WIFI lub zostać połączone przez USB. Aby dokonać połączenia należy na urządzeni z androidem zainstalować specjalną aplikację MIT (można ściągnąć np. ze sklepu Play) która pozwala na łączenie się przez skanowanie QR kodu Edytując program na ekranie komputera zamieniamy także program na urządzeniu mobilnym i możemy go na bieżąco testować. Tworząc aplikację w kreatorze mamy dwa główne okna: -Designer pozwala tworzyć ekrany programu, możemy dodawać elementy z menu po lewej stronie takie jak: przyciski, listy, pola tekstowe itd., elementy do obsługi multimediów (kamera, odtwarzacz itd.), oraz elementy związane z czujnik i komunikacją, znajduje się tam też klient i serwer Bluetooth które nie są bezpośrednio widoczne na ekranie ale przed użyciem należy je dodać, na środku widzimy utworzone ekrany, po prawej znajduje się lista utworzonych elementów oraz możemy modyfikować ich własności takie jak kolor wielkość i inne własności które w językach tekstowych określa się jako pola obiektów (struktur).
Rys.4 Widok okna designer aplikacji MIT App Inventor 2 Blocks po dodaniu i wizualnym umiejscowieniu elementów przechodzimy do zakładki Blocks która pozwala na nadawanie funkcjonalności elementom, podobnie jak poprzednio mamy tutaj po lewej elementy które utworzyliśmy oraz procedury do ich obsługi które pozwalają zdefiniować np. akcję po naciśnięciu przycisku, po określonym przez timer czasie itd. Rys.5 Widok okna Blocks aplikacji MIT App Inventor 2
5. Wykonanie projektu: Projekt zakładał sterowanie i monitoring elementów wykonawczych za pomocą urządzenia z systemem Android. Projekt składa się z: modułu HC05, modułu z procesorem Atmega 8, modułu wykonawczego, urządzenia mobilnego z systemem Android, programów dla urządzenia mobilnego oraz mikrokontrolera. Rys.6 Widok wykonanego układu Podsumowanie: moduły Bluetooth - Pozwalają na proste i tanie zastosowanie w swoich projektach komunikacji Bluetooth w swoich własnych projektach, pozwalaj na sterowanie oświetleniem, CO, klimatyzacją, robotami za pomocą smartfona lub tabletu, aplikacja MIT pozwala tworzyć oprogramowanie dla urządzeń mobilnych bez znajomości JAVY,
Literatura [1] Wikiedia: https://pl.wikipedia.org/wiki/bluetooth [2] moduł HC05 http://www.tec.reutlingen-university.de/uploads/media/datenblatthc- 05_BT-Modul.pdf [3] Atmega 8 http://www.atmel.com/images/atmel-2486-8-bit-avr-microcontrolleratmega8_l_datasheet.pdf [4] kursmit app inventor http://www.forbot.pl/forum/topics20/kurs-tworzenie-wlasnejaplikacji-android-do-sterowania-przez-bluetooth-cz-1-vt9135.htm