Desarrollo de proyectos IoT utilizando Raspberry Pi como plataforma D. Miguel Ángel Martínez Sánchez Desarrollo de proyectos IoT utilizando Raspberry Pi como plataforma D.MiguelÁngelMartínezSánchez Tutorizadapor D.PedroSánchezPalma D.DiegoFernándezÁlvarez Índice general Resumen 1 1. Introducción 2 2. ElInternetdelasCosas 5 2.1. BarrerasenelcrecimientodelIoT . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2. Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1. ArquitecturadelIoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2. Áreasdeaplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3. MiddlewareenIoT 13 3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2. CoAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2.1. CaracterísticasCoAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3. UbiROAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.4. Agilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5. TinySOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.6. MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.7. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 ÍNDICEGENERAL ii 4. MQTT 19 4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2. Protocolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3. MQTT-SN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.3.1. Redesdesensoresinalámbricas . . . . . . . . . . . . . . . . . . . . . . . 25 4.3.2. MQTT-SN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.3.3. ArquitecturaMQTT-SN . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.3.4. MQTTvsMQTT-SN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.4. Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.4.1. Requisitosfuncionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.4.2. Requisitosnofuncionales . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.4.3. Requisitosarquitectónicos . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4.4. Documentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.5. CloudComputing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5. PlataformasIoT 36 5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2. Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2.1. Plataformas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6. OpenIoT 42 6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.2. Plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.2.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ÍNDICEGENERAL iii 6.2.2. Flujodedatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.3. Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.3.1. Requisitosfuncionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.3.2. Requisitosnofuncionales . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.3.3. Requisitosarquitectónicos . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.4. OpenIoTenlapráctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.4.1. Casosdeéxitoconlaplataforma . . . . . . . . . . . . . . . . . . . . . . 57 6.5. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 7. KAA 60 7.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 7.2. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 7.3. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 7.4. QuéofreceKaa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 7.4.1. Requisitosfuncionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 7.4.2. Requisitosnofuncionales . . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.4.3. Requisitosarquitectónicos . . . . . . . . . . . . . . . . . . . . . . . . . . 75 7.5. Usodelaplataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 7.5.1. Instalación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 7.5.2. Característicasdelaplataforma . . . . . . . . . . . . . . . . . . . . . . . 76 7.5.3. Edgeanalytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 8. Casodeestudio 87 8.1. Ejemplosprácticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 8.1.1. Configuracióndedatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ÍNDICEGENERAL iv 8.1.2. Coleccióndedatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 8.1.3. Perfilesygrupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.1.4. Chatmedianteeventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 8.1.5. Activacióndeactuadorestrasrecopilaciónyanálisisdedatos. . . . . . . 94 8.2. EjemplodecasodeestudioparaSmartFarming . . . . . . . . . . . . . . . . . . 99 9. Conclusionesytrabajosfuturos 102 9.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 9.2. Trabajosfuturos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Anexos 104 A. Configuraciónenelladodelservidor 105 A.1. Esquemadeconfiguración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 A.2. Esquemadedatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 A.3. Esquemadenotificaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 A.4. Esquemadelladodelcliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.5. Esquemasdeeventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.6. Gruposdeendpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 A.7. Mapeodefamiliasdeeventosyverificadordeusuario . . . . . . . . . . . . . . . 109 A.8. NodeJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 B. Configuraciónenelladodelcliente 113 B.1. Endpointsdelgrupo1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 B.2. Endpointsdelgrupo2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 B.3. Librerías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Resumen Elobjetivodeesteproyectoesdesarrollarcasoscanónicosdemini-proyectosdeInternetde las Cosas utilizando la plataforma Raspberry pi y hacer una propuesta de despliegue para un caso de estudio agronómico inicial. Para realizar la propuesta se ha procedido al estudio de di- ferentes plataformas-middleware IoT. El estudio se ha realizado tanto desde un punto de vista teórico como desde un punto de vista práctico. Con el análisis realizado en este documento se pretende dar respuesta a qué middleware/plataforma IoT es el más adecuado para el escenario IoTplanteado. 1 Introducción El escenario inicial planteado se muestra en la figura 1.1. Tal y como se describe en [1], la red se compone de tres tipos distintos de nodos, cada uno de ellos con sus propias funciones y posición en la jerarquía: los Nodos Locales en la parte inferior de la jerarquía, los Nodos de Coordinación Locales en la parte intermedia y los Nodos de Coordinación en la parte más alta delajerarquía. • Nodos Locales (LNs): Estos nodos físicos son los más básicos y su principal función es la demonitorizarelentornoyreaccionardeacuerdoalestadodelmismo.Podríanasímismo intercambiarmensajesconotrosnodososolicitarserviciosweb,aunquenoessuobjetivo principal.EstándirectamentesubordinadosalosNodosdeCoordinaciónLocales. • Nodos de Coordinación Locales (LCNs): Situados en el medio de la jerarquía, la principal misión de estos nodos físicos es la de coordinar las diferentes redes de LNs y actuar co- mobrokersanteagentesyserviciosexternos.Aunquenosonobligadas,tambiénpodrían disponerdecapacidadesdemonitorizaciónyactuación. • Nodos de Coordinación (CNs): Estos nodos, ubicados en la cima de la jerarquía, no dis- ponen de la capacidad para monitorizar y actuar sobre el entorno, y se encargan exclu- sivamente de coordinar las diferentes redes de LCN, actuar como brokers ante agentes y servicios externos, y conectar con la Nube. Algunos de estos nodos podrían ser virtuales enlugardefísicosenfuncióndelosrequisitosdelaaplicación. 1.introducción 3 Fig1.1.Escenarioinicialplanteado. Seharealizadoundetalladoanálisisdediferentesplataformasmiddlewareopen-sourceparade- terminarcuáleslamásidóneaparaestaarquitectura.Paralarealizacióndeesteanálisissehan seguido las pautas del artículo "Middleware for Internet of Things" [2] en el que se describe los requisitosfuncionales,nofuncionalesyarquitectónicosqueunmiddlewareIoTdebesatisfacer. Estosrequisitosquedanrecogidosenlatabla1.1. 1.introducción 4 (b)Requisitosnofuncionales. (a)Requisitosfuncionales. (c)Requisitosarquitectónicos. Tab1.1.RequisitosparaunmiddlewareIoT. Sehainvestigadoquérequisitossonsatisfechosporelmiddlewareanalizadoy,enenelcaso delosrequisitosnosatisfechos,cómosuplirsuscarencias.
Description: