Diseño Y Desarrollo De Proyectos Con ANDROID THINGS
Total Page:16
File Type:pdf, Size:1020Kb
Grado Ingeniería de Sistemas Audiovisuales 2017-2018 Trabajo Fin de Grado Diseño y desarrollo de proyectos con ANDROID THINGS David González Ramos Tutores Mª Celeste Campo Vázquez Carlos García Rubio Leganés, Septiembre 2018 Trabajo de Fin de Grado Diseño y desarrollo de proyectos con Android Things TÍTULO: DISEÑO Y DESARROLLO DE PROYECTOS CON ANDROID THINGS AUTOR: DAVID GONZÁLEZ RAMOS TUTORES: Mª CELESTE CAMPO VÁZQUEZ CARLOS GARCIA RUBIO EL TRIBUNAL PRESIDENTE: Luis Sánchez Fernández SECRETARIO: David Ramírez García VOCAL: Cristina Brandle Cerqueira 1 Trabajo de Fin de Grado Diseño y desarrollo de proyectos con Android Things “If one is master of one thing and understands one thing well, one has at the same time, insight into and understanding of many things.” Vicent Van Gogh 2 Trabajo de Fin de Grado Diseño y desarrollo de proyectos con Android Things Agradecimientos Quiero dejar por escrito mi agradecimiento a todas las personas que, de forma directa u indirecta, han formado parte en la realización de este proyecto. Para comenzar a mis tutores, por hacerme ver con su asignatura la infinidad de desarrollos posibles y por su apoyo a lo largo del TFG. A mi familia, por su apoyo incondicional y por aguantar todos los momentos difíciles a lo largo de la carrera. A mi pareja, por ser mi principal fuente de apoyo. A mis magníficos compañeros de universidad, por ayudarme en tantas asignaturas y darme la motivación necesaria para terminar. A la música. Muchas gracias. 3 Trabajo de Fin de Grado Diseño y desarrollo de proyectos con Android Things 4 Trabajo de Fin de Grado Diseño y desarrollo de proyectos con Android Things Resumen Este proyecto se basa en el estudio de la nueva plataforma para el Internet de las Cosas de Google llamada Android Things. Esta plataforma consiste en un sistema operativo basado en Android que permite la construcción de dispositivos inteligentes y conectados para una amplia variedad de aplicaciones de consumo. El objetivo de este proyecto es el desarrollo y el diseño de algunas aplicaciones que permitan validar el potencial de este sistema operativo. Para llevar a cabo el desarrollo de estas aplicaciones se hará uso de un Hardware compatible con Android Things (Raspberrry Pi 3 Starter Kit). Este, consiste en un Kit de desarrollador compuesto por una Raspberry Pi, plataforma de desarrollo, junto con una Rainbow HAT con numerosos periféricos adicionales. El desarrollo y el diseño de estas aplicaciones se divide en dos partes donde, en cada una de ellas, se realiza una integración de Android Things con otras tecnologías. En la primera de ellas se estudia otra plataforma de desarrollo llamada Firebase donde se realiza su integración con Android Things con el objetivo de controlar varios periféricos de la Rainbow HAT de forma remota en tiempo real. En la segunda parte se hace uso de la biblioteca de inferencia de TensorFlow Lite para Android y se demuestra cómo ejecutarla en Android Things a través de un módulo de cámara capturando y clasificando localmente distintas imágenes. Para la realización de las distintas aplicaciones que forman este proyecto se hace uso del lenguaje nativo que usa Android, Java. Este lenguaje nos permite aprovechar todo el potencial de los dispositivos tanto a nivel de hardware como de software. Palabras clave Android, IoT, Internet de las Cosas, Android Things, Raspberry Pi, Firebase, Tensorflow, Inteligencia Artificial, Visión Cognitiva, RealTime Database. 5 Trabajo de Fin de Grado Diseño y desarrollo de proyectos con Android Things Abstract This project is based on the study of the new platform to the Internet of Things from Google called Android Things. The platform involves an Android-based operating system that allows the construction of intelligent and connected devices for a wide variety of applications of consume. The objective of this project is the development and design of some applications that allows the validation of the potential of this operating system. To carry out the development of these applications we will use a Hardware compatible with Android Things (Raspberrry Pi 3 Starter Kit). it has a Developer Kit consisting of a Raspberry Pi development platform, along with a Rainbow HAT with numerous additional peripherals. The development and design of these applications are divided into two parts, in each one of them, we integrate Android Things with other technologies. At first another development platform called Firebase is studied, where its integration with Android Things is done in order to control remotely several peripherals of the Rainbow HAT in real time. The second phase uses the TensorFlow Lite inference library for Android and demonstrates how to run it in Android Things through a camera module capturing and classifying locally different images. For the realization of the different applications that make up this project, we apply the native language used by Android, Java. This language allows us to take advantage of the full potential of the devices, at every level of the hardware and software components. Keywords Android, IoT, Internet of Things, Android Things, Raspberry Pi, Firebase, Tensorflow, Artificial Intelligence, Vision Cognitive, RealTime Database. 6 Trabajo de Fin de Grado Diseño y desarrollo de proyectos con Android Things 7 Trabajo de Fin de Grado Diseño y desarrollo de proyectos con Android Things Índice General Agradecimientos ....................................................................................................... 3 Resumen ................................................................................................................... 5 Palabras clave ................................................................................................................... 5 Abstract .................................................................................................................... 6 Keywords .......................................................................................................................... 6 Índice General ........................................................................................................... 8 Índice de Figuras ..................................................................................................... 10 Índice de Código ...................................................................................................... 11 Índice de Tablas ....................................................................................................... 12 Introducción y objetivos .......................................................................................... 14 1.1 Introducción ....................................................................................................... 14 1.1.1 Domótica .................................................................................................................. 16 1.3 Motivación ................................................................................................................ 17 1.2 Objetivos ............................................................................................................ 17 1.4 Estructura de la memoria .......................................................................................... 18 Análisis del estado del Arte ..................................................................................... 20 2.1 El Sistema Operativo Android .................................................................................... 20 2.1.1 Versiones de Android ............................................................................................... 21 2.1.2 Arquitectura de Android ........................................................................................... 22 2.1.3 Introducción a la programación de Android ............................................................. 23 2.2 Android Things .......................................................................................................... 25 2.2.1 Introducción ............................................................................................................. 25 2.2.2 Sistema operativo Android Things ............................................................................ 26 2.2.3 Arquitectura Android Things .................................................................................... 27 2.2.4 Actualizaciones Android Things ................................................................................ 27 2.2.5 Android Things 1.0 .................................................................................................... 29 2.3 Hardware .................................................................................................................. 30 2.3.1 Sensores .................................................................................................................... 30 2.3.2 Hardware Android Things ......................................................................................... 30 2.3.3 Raspberry Pi 3 Starter Kit .......................................................................................... 33 2.4 Alternativas a Android Things .................................................................................... 36 2.5 Firebase ..................................................................................................................... 37 2.6 Tensorflow ................................................................................................................ 39 2.6.1 TensorFlow Lite para Android ..................................................................................