STEROWANIE INTELIGENTNYM DOMEM PRZY UŻYCIU MOBILNEJ APLIKACJI WYKORZYSTUJĄCEJ MIKROKONTROLER ARDUINO UNO V3

Podobne dokumenty
PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRYCZNY KATEDRA ENERGOELEKTRYKI LABORATORIUM INTELIGENTNYCH INSTALACJI ELEKTRYCZNYCH

Automatyka Grzewcza. Automatyka. Bezpieczeństwo

AUTOMATYKA I STEROWANIE W CHŁODNICTWIE, KLIMATYZACJI I OGRZEWNICTWIE L1 BUDOWA TERMOSTATU ELEKTRONICZNEGO

PROGRAMOWANIE I ARDUINO W SZKOLE

Bezprzewodowa sieć kontrolno-sterująca z interfejsem Bluetooth dla urządzeń mobilnych z systemem Android

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Google Android. Opracował Maciej Ciurlik

Zestaw Startowy EvB. Więcej informacji na stronie:

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Zrób to sam : generowanie ruchu, światła i dźwięku za pomocą Arduino i Raspberry Pi / Simon Monk. Gliwice, Spis treści

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Kontroler sterownika bramy garażowej Wi-Fi do aplikacji TUYA

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

FLOOD SENSOR FIBARO SYSTEM

PROJEKT ZDALNEGO STEROWANIA BUDYNKIEM Z WYKORZYSTANIEM TECHNOLOGII BLUETOOTH

LABORATORIUM ENERGOOSZCZĘDNEGO BUDYNKU

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino

dokument DOK wersja 1.0

CENTRALA STERUJĄCA SMART CONTROL

RFiD InOut. innowacyjny, kompleksowy system zarządzania wjazdem i wyjazdem

Przykładowe działania systemu R-CAD

Komentarz technik mechatronik 311[50]-01 Czerwiec 2009

WYBRANE PROBLEMY ZASTOSOWANIA WIRTUALNEJ RZECZYWISTOŚCI W DYDAKTYCE

Programator procesorów rodziny AVR AVR-T910

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Politechnika Wrocławska

Ćwiczenie 9. Programowanie ogrzewania w systemie LCN

Smart home managing by Ethernet micro server. Zarządzanie systemem inteligentnego domu za pomocą mikro serwera Ethernet. 1. Cele

APLIKACJA NAPISANA W ŚRODOWISKU LABVIEW SŁUŻĄCA DO WYZNACZANIA WSPÓŁCZYNNIKA UZWOJENIA MASZYNY INDUKCYJNEJ

WALL PLUG FIBARO SYSTEM

Inteligentna automatyka budynkowa

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

Sterownik LED WIFI RGB 12V, 24V 12A + pilot dotykowy

Silnik prądu stałego. Sterowanie silnika prądu stałego

Termometr internetowy

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

Rys. 1. Schemat ideowy karty przekaźników. AVT 5250 Karta przekaźników z interfejsem Ethernet

HOMS. Steruj zdalnie swoim domem i przyciągaj klientów do biura. Leszno, czerwiec 2015 r.

Commander

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Złośliwe oprogramowanie Sandrorat (podszywające się pod oprogramowanie Kaspersky) na platformę Android WYNIKI ANALIZY

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Schemat blokowy architektury AVR

Zestawy Inteligentny Budynek

Apokalipsa zombie nadchodzi! : obroń swoją bazę za pomocą prostych obwodów, Arduino i Raspberry Pi / Simon Monk. Gliwice, cop

LABORATORIUM INTELIGENTNYCH SYSTEMÓW ELEKTRYCZNYCH

KATEDRA SYSTEMÓW MULTIMEDIALNYCH SEMINARIUM MULTIMEDIALNE SYSTEMY MEDYCZNE

Kurs Elektroniki. Zastosowanie elektroniki w robotyce cz

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

WIZUALIZACJA I STEROWANIE ROBOTEM

Współczesne usługi monitoringu NOWE TRENDY

Przegląd rozwiązań z oferty firmy 4D Systems

mh-s4 Czterokanałowy moduł czujników temperatury systemu F&Home.

MultiTool instrukcja użytkownika 2010 SFAR

SYSTEM APLIKACJI MOBILNEJ DO BEZPRZEWODOWEGO MONITOROWANIA URZĄDZEŃ

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

INSTRUKCJA OBSŁUGI.

mh-s8 Ośmiokanałowy moduł czujników temperatury systemu F&Home.

SYSTEMY CZASU RZECZYWISTEGO (SCR)

e-smart Home oznacza większe bezpieczeństwo i bardziej efektywne wykorzystanie energii.

MODUŁ ZDALNEGO STEROWANIA GSM BRAM STER 5.0

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

System akwizycji danych na bazie platformy Arduino

Oprogramowanie symulujące sterowanie obiektami budynku

MOTION SENSOR FIBARO SYSTEM

proxi - sterowanie przez Bluetooth Smart.

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

ROZDZIAŁ 1. PRZEGLĄD BRAMOFONU SAFE...

Touch button module. Moduł przycisku dotykowy z podświetleniem LED

Electronic Infosystems

DOKUMENTACJA PROJEKTU

1. Opis urządzenia. 2. Zastosowanie. 3. Cechy urządzenia -3-

Klawiatura matrycowa

Podstawy programowania PLC - zadania

CRUSB KONWERTER CAN / USB

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Stair Lighting Driver. Sterownik oświetlenia schodowego Instrukcja użytkowania

Instrukcja obsługi urządzeń serii Home Control

ARDUINO UNO JAKO TANI INSERTER CZASU

Działanie komputera i sieci komputerowej.

2.1 Porównanie procesorów

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

PROGRAMOWALNE STEROWNIKI LOGICZNE

GATE OPENER. Instrukcja Obsługi i Konserwacji. Sterownika GSM-21. Instrukcja obsługi sterownika GSM-21

KATALOG PRODUKTOWY. Bądź z domem zawsze w kontakcie

BF30 OCDLINK/USBASP ARM-JTAG/AVR-ISP Programmer-debugger Instrukcja obsługi

Rozdział 1. Przegląd bramofonu SAFE

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

LEGENDFORD. system alarmowy

KSZTAŁTOWANIE BEZPIECZNYCH METOD PRACY PODCZAS SZKOLEŃ REALIZOWANYCH W WARUNKACH SZTOLNI SZKOLENIOWEJ, Z ZASTOSOWANIEM URZĄDZEŃ MOBILNYCH

Home Center zł Dimmer 500W 249 zł Roller Shutter 249 zł Roller Shutter zł

MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych

Programator ZL2PRG jest uniwersalnym programatorem ISP dla mikrokontrolerów, o budowie zbliżonej do STK200/300 (produkowany przez firmę Kanda).

RX10RF + VS RF + SALUS Smart Home Podłączenie modułu sterującego i regulatora

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Transkrypt:

POZNAN UNIVE RSITY OF TE CHNOLOGY ACADE MIC JOURNALS No 92 Electrical Engineering 2017 DOI 10.21008/j.1897-0737.2017.92.0031 Patryk PACZKOWSKI** Karol JÓZEFOWICZ** Andrzej RYBARCZYK* STEROWANIE INTELIGENTNYM DOMEM PRZY UŻYCIU MOBILNEJ APLIKACJI WYKORZYSTUJĄCEJ MIKROKONTROLER ARDUINO UNO V3 W niniejszej pracy został przedstawiony system sterowania inteligentnym domem z poziomu aplikacji mobilnej dla systemu Android wykorzystując przy tym platformę programistyczną Arduino UNO v3. W celu zobrazowania wyników działającego systemu została również wykonana w pełni funkcjonalna makieta. Zastosowanie Arduino, które charakteryzuje się dużymi możliwościami modyfikacji, umożliwia w praktyczny, a zarazem ciekawy sposób przedstawienia zagadnienia na rzeczywistym przykładzie modelu inteligentnego domu. SŁOWA KLUCZOWE: Arduino, Android, inteligenty dom 1. WPROWADZENIE Projekt systemu sterowania inteligentnym domem za pomocą urządzenia z systemem Android ma na celu przedstawienie możliwości niedrogiego, a zarazem dysponującego dużymi możliwościami swobodnej rozbudowy o nowe funkcje, środowiska Arduino. Dla pełnego przedstawienia funkcjonalności systemu została również zbudowana makieta symulująca działanie inteligentnego domu. Bezprzewodowa komunikacja pomiędzy urzadzeniami mobilnymi, a Arduino UNO odbywa się za pomocą technologii Bluetooth. Projekt obejmuje takie stany sterowania jak kontrola oświetlenia, sterowanie drzwiami, odczyt temperatury, symulacja ogrzewania oraz zapalanie się światła po wykryciu ruchu w pomieszczeniach domu. Urządzeniami wykonawczymi realizującymi te stany sterowania sa m.in.: diody LED, mikro serwomechanizmy, czujniki ruchu oraz czujnik temperatury. Arduino wraz z urządzeniami wykonawczymi zasilane jest baterią o napięciu 9 V (można również użyć zasilacza impulsowego 12 V). Do poprawnego funkcjonowania całego systemu zostało przygotowane oprogramowanie zarówno dla systemu Android, jak i dla płytki Arduino * Politechnika Poznańska. ** Państwowa Wyższa Szkoła Zawodowa w Lesznie.

356 Patryk Paczkowski, Karol Józefowicz, Andrzej Rybarczyk UNO v3 (wyposażonej w mikrokontroler Atmega328). Oprogramowanie dla Arduino zostało napisane w języku C. 2. OPROGRAMOWANIE STERUJĄCE 1.2. Oprogramowanie dla systemu Android Zaprezentowana aplikacja na platformę Android potwierdza jej zalety, do których należy przede wszystkim zapewnienie w dużym stopniu możliwości uniknięcia niebezpiecznych stanów przy tworzeniu nowych aplikacji. Jest to oczywiście wynikiem tego, że urządzenia oparte na platformie Android działają pod kontrolą systemu operacyjnego Linux, którego zaletą jest właśnie bezpieczeństwo tworzenia aplikacji. Wszystkie aplikacje uruchamiane na platformie Android działają w oparciu o własną wirtualną maszynę DALVIK, która bazuje na wirtualnej maszynie Javy, ale została ona dostosowana do urządzeń przenośnych. Dodatkową zaletą takiego rozwiązania jest to, że wirtualna maszyna DALVIK zajmuje bardzo mało miejsca w pamięci oraz na urządzeniu można uruchomić jednocześnie wiele jej egzemplarzy. Kiedy w telefonie opartym na platformie Android jest instalowana aplikacja, to system tworzy jej indywidualny profil użytkownika, który posiada swoje prywatne pliki, własny identyfikator oraz bezpieczne środowisko, w którym jest wykonywana. Takie rozwiązanie zmniejsza ryzyko potencjalnej awarii całego telefonu poprzez niepoprawnie działającą aplikację oraz wyklucza jego uszkodzenie. Usługi systemowe platformy Android obsługiwane są przez jądro Linuksa, którego podstawową funkcją jest pośredniczenie pomiędzy podzespołami telefonu, a programowalnym stosem Androida, czynność ta przypomina działanie warstwy abstrakcji sprzętowej (ang. hardware abstraction layer HAL). Jądro systemu realizuje takie funkcje, jak: wymuszenie zasad bezpieczeństwa aplikacji, zarządzanie pamięcią na niskim poziomie, zarządzanie procesami i wątkami, obsługa stosu sieciowego, dostęp do sterowników podzespołów. Zadaniem przygotowanego projektu oprogramowania dla urządzeń mobilnych z systemem Android było sterowanie funkcjonalnościami inteligentnego domu w prosty i intuicyjny sposób. Najistotniejszym elementem programu jest wykorzystanie połączenia przez Bluetooth, a następnie wysyłanie odpowiednich komend do modułu Bluetooth urządzenia odbiorczego, czyli Arduino UNO. Polecenia wysyłane są w zależności od efektu, który chcemy wywołać w inteligentnym domu: np. gdy chcemy zapalić światło w kuchni to po naciśnięciu przycisku z tą funkcjonalnością Android wysyła do Arduino zmienną przechowująca ciąg znaków (typu string) o wartości TOK. Opisany przykład odzwierciedlony został we fragmencie kodu, który zawarty jest w tabeli 1.

Sterowanie inteligentnym domem przy użyciu mobilnej aplikacji... 357 Rys. 1. Interfejs aplikacji mobilnej do sterowania inteligentnym domem Tabela 1. Fragment kodu oprogramowania odpowiedzialnego za sterowanie oświetleniem w kuchni public void wlaczenieswiatlakuchnia(view view) if (btnkuchnia.ischecked()) if (btsocket!= null) try btsocket.getoutputstream().write("tok".tostring().getbytes()); catch (IOException e) msg("problem z włączeniem światła w Kuchni"); else if (btsocket!= null) try btsocket.getoutputstream().write("tofk".tostring().getbytes()); catch (IOException e) msg("problem z wyłączeniem światła w kuchni");

358 Patryk Paczkowski, Karol Józefowicz, Andrzej Rybarczyk 2.2. Oprogramowanie dla platformy Arduino Oprogramowanie napisane dla platformy Arduino UNO ma za zadanie odebranie komend wysyłanych z aplikacji mobilnej poprzez Bluetooth i następnie jej zweryfikowanie oraz uruchomienie odpowiedniego stanu sterowania. Na początku działania jest ustalany port, który będzie gotowy do odbioru komend z urządzenia mobilnego przez Bluetooth, a potem następuje zainicjowanie modułu do działania. Dla przykładu, polecenie zaświecenia się diody, odpowiedzialnej za symulację oświetlenia w kuchni wymaga, aby Arduino odebrało polecenie TOK i zrealizowało funkcję odpowiedzialną za ten element. W tabeli 2 pokazano odpowiedni fragment kodu tego polecenia. Tabela 2. Fragmen kodu oprogramowania dla Arduino odpowiedzialny za sterowanie oświetleniem kuchni if (string == "TOK") onledkuchnia(); ledon = true; void onledkuchnia() analogwrite(kuchnialed, 255); delay(10); 3. WERYFIKACJA PROJEKTU Rys. 2. Makieta inteligentnego domu

Sterowanie inteligentnym domem przy użyciu mobilnej aplikacji... 359 Rys. 3. Gotowe do pracy Arduino połączone z urządzeniami wykonawczymi 4. WERYFIKACJA STANÓW STEROWANIA 4.1. Oświetlenie diody LED Na rys. 4 przedstawiono działanie diody LED, która jest odpowiedzialna za symulację oświetlenia w salonie. W projekcie zostały zastosowane diody LED, do których zasilania potrzebny jest prąd o wartości 25mA oraz napięciu 2V. Na rys. 4 przedstawiono działanie diody LED, która jest odpowiedzialna za symulację oświetlenia w salonie. Rys. 4. Weryfikacja stanu działania oświetlenia w salonie Rys. 5. Scgemat podłaczenia diody LED do Arduino UNO v3

360 Patryk Paczkowski, Karol Józefowicz, Andrzej Rybarczyk 4.2. Sterowanie drzwiami serwomechanizmy Serwomechanizm można określić, jako mechanizm, który posiada silnik, przekładnie oraz sterownik w jednej obudowie. Zadaniem tego mechanizmu jest poruszanie zamontowanym ramieniem wraz jednoczesnym zapamiętaniem swojego położenia. Kod odpowiedzialny za sterowanie drzwiami został zamieszczony w tabeli 3. Tabela 3. Fragment kodu Arduino odpowiedzialny za sterowanie drzwiami #include<servo.h> Servo drzwi; drzwi.attach(2); if (string == "OD") drzwi.write(180); delay(15); if (string == "ZD") drzwi.write(45); delay(15); Na rys. 6 i rys. 7 został przedstawiony stan działania serwomechanizów, które w projekcie są odpowiedzialne za otwieranie drzwi, rolet oraz bramy garażowej. Rys. 6. Serwomechanizmy otwarte Rys. 7. Serwomechanizmy zamknięte Serwomechanizmy zostały tak zaprogramowane, aby podłaczone do nich ramiona odchylały się o odpowiedni kąt. Całkowity możliwy kat odchylenia w przypadku zastosowanych serwomechanizmów wynosi 180 o. Schemat podłączenia serwomechanizmu do środowiska Arduino UNO został przedstawiony na rys. 8.

Sterowanie inteligentnym domem przy użyciu mobilnej aplikacji... 361 4.3. Czujnik ruchu Rys. 8. Schemat podłączenia serwomechanizmu do Arduino UNO v3 Czujnik ruchu po wykryciu ruchu wysyła sygnał do platformy programistycznej Arduino, która następnie uruchamia odpowiednią diodę LED. Cały proces jest wysoce konfigurowalny w takich aspektach jak np. odpowiednie opóźnienie, zakres sensorów czy też tryb wykrywania ruchu. Weryfikacja działania czujników ruchu została przedstawiona na rys. 9. Rys. 9. Wykrycie ruchu poprzez czujniki, które skutkuje zaświeceniem się diod LED Czujniki ruchu zastosowane w pracy posiadają regulację zasięgu wykrycia obiektu w granicach od 3 m do 7 m i kąta widzenia do 100 o (rys. 10). Dodatkowo oprócz regulacji zakresu widzenia można zmienić czas trwania stanu wysokiego po wykryciu obiektu (od 5s do 200s). Rys. 10. Zakres widzenia zastosowanego czujnika ruchu

362 Patryk Paczkowski, Karol Józefowicz, Andrzej Rybarczyk 4.4. Czujnik temperatury Na rys. 11 został przedstawiony stan odczytu z cyfrowego czujnika temperatury (DS18B20) podłączonego do Arduino. Odczytana temperatura wyświetla się na ekranie urządzenia mobilnego z zainstalowaną aplikacją. Rys. 91. Odczyt wartości z czujnika temperatury W tabeli 4 został zaprezentowany fragment kodu odpowiedzialny za obsługę tego czujnika. Tabela 4. Fragment kodu oprogramowania Arduino odpowiedzialnego za odczyt bieżącej temperatury otoczenia #include <OneWire.h> #include <DS18B20.h> // Numer pinu do którego podłaczasz czujnik #define ONEWIRE_PIN 5 // Adres czujnika byte address[8] = 0x28, 0xFF, 0x87, 0x7E, 0x0, 0x16, 0x2, 0x95; OneWire onewire(onewire_pin); DS18B20 sensors(&onewire); if (sensors.available()) float temperature = sensors.readtemperature(address); Serial.print(temperature); Serial.println(F(" 'C")); sensors.request(address); 5. PODSUMOWANIE Założeniem przedstawionej pracy było utworzenie możliwie taniego systemu sterującego inteligentnym domem przy użyciu technologii mobilnych oraz platformy Arduino.

Sterowanie inteligentnym domem przy użyciu mobilnej aplikacji... 363 Autorzy założyli także konieczność spełnienia takich wymogów przez projekt jak: łatwość uwzględnienia innych obiektów sterowania w inteligentnym domu, łatwość konfigurowalności procesu sterowania w takich aspektach jak np. odpowiednie opóźnienie, zakres sensorów czy też tryb wykrywania ruchu, kąt otwarcia drzwi, itp.. Podstawową zaletą przedstawionego w pracy projektu jest więc stosunek kosztów, które są niewielkie w porównaniu do szerokiego zakresu możliwości środowiska Arduino. W projekcie została przedstawiona tylko część rozwiązań, które proponuje Arduino UNO v3, co czyni projekt otwartym na nowe udoskonalenia. Aktualnie, realizowana będzie kolejna faza rozwoju projektu, tzn. sterowanie za pomocą komend głosowych (zastosowanie modułu rozpoznawania głosu) lub rozpoznawanie gestów i zastosowanie do nich odpowiedniej funkcjonalności. LITERATURA [1] Monk S.: Arduino dla początkujących. Podstawy i szkice, HELION, Gliwice, 2014. [2] Clements Croome D.: Intelligent Buildings: design, management and operation, Thomas Telford LTD, 2004. [3] Conder S., Darcey L.: Android Programowanie aplikacji na urządzenia przenośne wydanie II, HELION, Gliwice, 2011. [4] Wiązania M.: Kurs Arduino Język Programowania, Elektronik, 4, 2011, s. 98 102. [5] http://www.arduino.cc/ [6] The LonWorks Platform: Technology Overview, http://www.echelon.com /developers/lonworks/default.htm CONTROLING INTELLIGENT HOME USING A MOBILE APPLIACATION THAT USES A MICROCONTROLLER ARDUINO UNO V3 This article describes control system for smart home of the mobile application for Android system and microcontroller Arduino UNO v3. It was created a model simulating the operation of the intelligent home and developed software for mobile devices with Android system and software for microcontroller Arduino UNO in the C programming language. To control smart home has been used Bluetooth Technology. (Received: 07. 02. 2017, revised: 28. 02. 2017)