monitorización a través de iot y análisis de datos de un

83
Treball de Fi de Grau Grau d’Enginyeria en Tecnologies Industrials Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones MEMÒRIA Autor: Maria Font Salat Director: Lluís Solano Convocatòria: Gener 2018 Escola Tècnica Superior d’Enginyeria Industrial de Barcelona

Upload: others

Post on 29-Jul-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Monitorización a través de IoT y análisis de datos de un

TreballdeFideGrau

Graud’EnginyeriaenTecnologiesIndustrials

MonitorizaciónatravésdeIoTyanálisisdedatosdeunnododetelecomunicaciones

MEMÒRIA

Autor: MariaFontSalat

Director: LluísSolano

Convocatòria:Gener2018

EscolaTècnicaSuperior

d’EnginyeriaIndustrialdeBarcelona

Page 2: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

2

Resumen

Este proyecto está basado en la creación de una plataforma cuyo objetivo final es monitorear yanalizarparámetrostantofísicoscomoeléctricosenunnododetelecomunicaciones.Estenodoeselencargadodedarconexiónainternetaunazonalimitadadelaciudadyesimprescindiblesubuenfuncionamiento.

Parallevaracabotodoeso,seprocedeaundiseñoglobaldetodoslosaspectos,asíqueinicialmentesecontemplarátantolapartedesoftwarecomoladehardware.Paradefinircorrectamenteestasdospartes, es necesario un estudio de los parámetros interesantes amonitorear y qué sensores soncapacesdehacerlo.Seguidamentesecaracterizaráneltipodeconexionesentrehardwareysoftware,teniendoencuentaqueelobjetivofinalespodercontrolarlossensoresdeformaremota.

Enelmomentoenquesetenganlosdatosprovenientesdelossensores,secrearáunprototipodealgoritmoprogramadoenlenguajePython.Losdatosserecibenengrandescantidades,loscualesseacumulanenbasesdedatosysedebenexportarpararealizarunbuentratamientoyanálisisdedatos.EnesteapartadosetrabajaráconherramientascomoMongoDB,RobomongoyuneditorPythonconsuscorrespondienteslibreríasenfocadasaldatamining.

El prototipo de plataforma debe servir demanual para futuras instalaciones, ya sea en lamismaempresaen laque sehadesarrolladoelproyectocomoenotrasdelmismoámbito conobjetivossimilares.

Juntamenteconlaplanificaciónyloscostosdelproyecto,alfinaldedisponedeunmodeloquecumplecon las especificaciones exigidas en un principio y que es capaz de dar solución a problemas tanimportantesenunaempresadedicadaalasnuevastecnologías.

Page 3: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

3

ÍNDICEResumen...........................................................................................................................2

ÍNDICE...............................................................................................................................3

LISTADODEFIGURAS.........................................................................................................5

LISTADODETABLAS..........................................................................................................6

LISTADODEECUACIONES..................................................................................................6

GLOSARIO.........................................................................................................................7

PREFACIO..........................................................................................................................8Origenymotivacióndelproyecto...............................................................................................8

1. INTRODUCCIÓN..........................................................................................................91.1Objetivosdelproyecto..........................................................................................................91.2Estructuradelproyecto......................................................................................................101.3 Alcancedelproyecto.....................................................................................................10

2. CONTEXTOSITUACIONAL..........................................................................................112.1Descripcióndelaempresa..................................................................................................112.2Situaciónactual..................................................................................................................11

3. MARCOTEÓRICO......................................................................................................113.1¿Quéesunnododetelecomunicaciones?...........................................................................113.2PosicióngeográficadelosnodosdePuntonet.....................................................................123.3NodoVillaflora....................................................................................................................13

3.3.1Elementosnodo..................................................................................................................133.4SistemadeMonitoreo.........................................................................................................143.5Conectividadsensores........................................................................................................15

3.5.1Ethernet,LANyWLAN.........................................................................................................153.5.2Wifiyconectividadcelular(2G,3Gy4G)............................................................................16

4. DESCRIPCIÓNDELASOLUCIÓN.................................................................................164.1Quéparámetroshayquemonitorear..................................................................................17

4.1.1Temperaturaexterior..........................................................................................................174.1.2Humedad.............................................................................................................................184.1.3Corrientequealimentauncircuito.....................................................................................194.1.4Movimientoenelnodo.......................................................................................................214.1.5Temperaturainterior...........................................................................................................234.1.6Consumoenergía.................................................................................................................25

4.2Software.............................................................................................................................264.2.1mFiControllerSoftware......................................................................................................26

4.3Hardware............................................................................................................................284.3.1mPort...................................................................................................................................28

4.4Exportacióndedata............................................................................................................294.4.1MongoDB.............................................................................................................................304.4.2HerramientasMongoDB......................................................................................................30

5. IMPLEMENTACIÓNDELASOLUCIÓN........................................................................30

Page 4: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

4

5.1Software.............................................................................................................................305.1.1Instalación...........................................................................................................................30

5.2Hardware............................................................................................................................315.2.1ConexiónEthernet...............................................................................................................315.2.2Conectarsensores...............................................................................................................315.2.3Pruebasprevias...................................................................................................................315.2.4Conexiónenelnodo............................................................................................................33

5.3Exportardata......................................................................................................................345.3.1MongoDB............................................................................................................................345.3.2Robomongo.........................................................................................................................345.3.3Exportara.CSV....................................................................................................................365.3.4Camposestudiados.............................................................................................................36

6. PRUEBASYANÁLISISDERESULTADOS......................................................................376.1TestData............................................................................................................................37

6.1.1ImportanciaTestData.........................................................................................................376.1.2MOCKAROO.........................................................................................................................37

6.2AlgoritmoyanálisisenPython............................................................................................426.2.1Python.................................................................................................................................426.2.2Herramientasylibrerías......................................................................................................436.2.3Algoritmo.............................................................................................................................44

7. PLANIFICACIÓNYCOSTOS........................................................................................517.1Planificacióntemporal........................................................................................................517.2Costos.................................................................................................................................52

8. IMPACTOSOCIALYAMBIENTAL...............................................................................548.1Impactosocial.....................................................................................................................548.2Impactoambiental..............................................................................................................54

CONCLUSIONES...............................................................................................................55

AGRADECIMIENTOS.........................................................................................................57

BIBLIOGRAFÍA.................................................................................................................58Referenciasbibliográficas.........................................................................................................58Bibliografíacomplementaria.....................................................................................................58

Page 5: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

5

LISTADODEFIGURASFIGURA1:ESQUEMAGENERALDELPROYECTO................................................................................................................10FIGURA2:FUNCIONAMIENTONODOTELECOMUNICACIONES..............................................................................................12FIGURA3:UBICACIÓNDELNODOVILLAFLORAENQUITO..................................................................................................13FIGURA4:FUNCIONAMIENTOSISTEMADEMONITOREO....................................................................................................14FIGURA5:PASOSASEGUIRPARAELFUNCIONAMIENTODELAPLATAFORMA.........................................................................15FIGURA6:IMAGENDELSENSORAF10..........................................................................................................................17FIGURA7:ESPECIFICACIONESDELSENSORAF10.............................................................................................................17FIGURA8:IMAGENSENSORHWG-STE.........................................................................................................................19FIGURA9:ESPECIFICACIONESSENSORHWG-STE............................................................................................................19FIGURA10:ESPECIFICACIONESTÉCNICASMFI-CS............................................................................................................20FIGURA10:FUNCIONAMIENTOMFI-CS........................................................................................................................20FIGURA12:ESPECIFICACIONESTÉCNICASDELMFI-DS......................................................................................................22FIGURA13:ESPECIFICACIONESTÉCNICASMFI-MSW.......................................................................................................22FIGURA14:ESPECIFICACIONESTÉCNICASSENSORMFI-THS..............................................................................................24FIGURA15:ESPECIFICACIONESTÉCNICASMPOWERPRO...................................................................................................26FIGURA16:PRECIOMPOWERPRO...............................................................................................................................26FIGURA17:REPRESENTACIÓNDELNODO.......................................................................................................................27FIGURA18:INTERFAZGRÁFICADELMFICONTROLLERSOFTWARE.......................................................................................28FIGURA19:VISTAFRONTALDELMPORT........................................................................................................................29FIGURA20:VISTALATERALDELMPORT.........................................................................................................................29FIGURA21:ESQUEMACONEXIÓNPRUEBAFINAL.............................................................................................................33FIGURA22:ESQUEMACONEXIÓNENELNODO................................................................................................................33FIGURA23:CONFIGURACIÓNFINALDELMPORT.............................................................................................................34FIGURA24:CONFIGURACIÓNENROBOMONGOPARACONECTARCONLABASEDEDATOS.......................................................35FIGURA25:ESTADOINDICANDOQUELACONEXIÓNCONMONGODBESCORRECTA...............................................................35FIGURA26:INTERFAZDELABASEDEDATOSACE............................................................................................................35FIGURA27:CREACIÓNDATASETTEMPERATURAEXTERIOR.................................................................................................38FIGURA28:CÓDIGOPARASACARLAMEDIAYLASTDDEV.................................................................................................39FIGURA29:VALORESTEMPERATURASENVILLAFLORA......................................................................................................39FIGURA30:CREACIÓNDATASETTEMPERATURAINTERIOR.................................................................................................40FIGURA31:CREACIÓNDATASETHUMEDAD...................................................................................................................40FIGURA32:CREACIÓNDATASETENERGÍAELÉCTRICA........................................................................................................41FIGURA33:CREACIÓNDATASETMOVIMIENTO................................................................................................................41FIGURA34:GRÁFICOPOPULARIDADDELOSLENGUAJESDEPROGRAMACIÓN2016...............................................................43FIGURA35:GRÁFICOVALORESTEMPERATURAINTERNA....................................................................................................45FIGURA36:CÓDIGOALARMATEMPERATURAINTERIOR....................................................................................................46FIGURA37:GRÁFICOQUEREPRESENTAELSENSORDEMOVIMIENTO...................................................................................47FIGURA38:INTERFAZRULESTABCONLAALARMADELSENSORDECORRIENTE(LÍMITESUPERIOR)............................................48FIGURA39:INTERFAZRULESTABCONALARMADELSENSORDECORRIENTE(LÍMITEINFERIOR).................................................49FIGURA40:GRÁFICOSCATTERDELASRELACIONES..........................................................................................................50FIGURA40:DIAGRAMADEGANTTPARTE1...................................................................................................................52FIGURA41:DIAGRAMADEGANTTPARTE2...................................................................................................................52

Page 6: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

6

LISTADODETABLASTABLA1:DESCRIPCIÓNDELOSELEMENTOSACTIVOS........................................................................................................14TABLA2:PRECIOSENSORMFI-CS................................................................................................................................21TABLA3:SENSORESDEMOVIMIENTOESCOGIDOS............................................................................................................21TABLA4:PRECIOSSENSORESDEMOVIMIENTO................................................................................................................23TABLA5::LÍMITESTEMPERATURAINTERIORSEGÚNEQUIPO..............................................................................................24TABLA7:PRECIOSENSORMFI-THS..............................................................................................................................25TABLA8:RESUMENCOSTOSPROYECTO.........................................................................................................................53

LISTADODEECUACIONES

ECUACIÓN1:CÁLCULOUMBRALESCORRIENTE................................................................................................................20ECUACIÓN2:FÓRMULACOEFICIENTECORRELACIÓN.........................................................................................................49ECUACIÓN3:CÁLCULOCOSTOINGENIEROJUNIOR...........................................................................................................53ECUACIÓN4:CÁLCULOHORASADEDICARALTFG...........................................................................................................53ECUACIÓN5Y6:CÁLCULOCOSTOTUTORES...................................................................................................................53

Page 7: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

7

GLOSARIO

IPestáticaodinámica(InternetProtocol):TipodeIP’squeexisten.SepuedetenerunaIPestática,queserásiemprelamisma,ounaIPdinámica,quevariasegúnciertasnecesidades.

IoT(InternetofThings):esunconceptoqueserefierealainterconexióndigitaldeobjetoscotidianosconInternet.SAI (Sistema de Alimentación ininterrumpida): en inglés uninterruptible power supply (UPS), esun dispositivo que gracias a sus baterías u otros elementos almacenadores de energía, puedeproporcionar energía eléctrica por un tiempo limitado y durante un apagón eléctrico a todos losdispositivosquetengaconectados.

AC(AlternCurrent):Corrientealterna.csv (Comma Separated Values): Los archivos CSV son un tipo de documento en formatoabiertosencillopararepresentardatosen formadetabla,en lasque lascolumnasseseparanporcomasopuntoycoma,ylasfilasporsaltosdelínea.BigData:esunconceptoquehacereferenciaaunconjuntosdedatostangrandesqueaplicacionesinformáticastradicionalesdeprocesamientodedatosnosonsuficientesparatratarconellos.Msnm:MetrosSobreelNiveldelMarPoE (Power over Ethernet): es una tecnología que incorpora alimentación eléctrica a unainfraestructuraLANestándar.Permitequelaalimentacióneléctricasesuministreaundispositivodered(switch,puntodeacceso,router,teléfonoocámaraIP,etc.)usandoelmismocablequeseutilizaparalaconexióndered.

DHCP (Protocolo de configuración dinámica de Host): es un protocolo cliente-servidor queproporciona automáticamente un host de protocolo Internet (IP) con su dirección IP y otrainformacióndeconfiguraciónrelacionadoscomo,porejemplo,lapuertadeenlacepredeterminadaylamáscaradesubred.ElservidorDHCPmantieneungrupodedireccionesIPyconcedeunadirecciónacualquierclienteDHCPcuandoseiniciaenlared.

Page 8: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

8

PREFACIOOrigenymotivacióndelproyectoParadarconlaideafinaldelproyectosejuntarondiferentesmotivaciones:primerodetodo,elinterésdesarrollado por las nuevas tecnologías junto con las asignaturas de electrónica e informática.Posiblementeunapartedeesosedebeaquevemosmuchosaspectosdeestasasignaturasaplicadosalavidareal,dondeunosedacuentadelaimportanciaquetienetenerniqueseaunanociónsobreconexiones,datosguardadosenlanube,quéhacercuandodisponesdedatosmasivos,etc.

EsosejuntóconelaugedelInternetdelasCosasoInternetofThings(IoT).Laideadeconectartodaslascosasquenosrodeanaunamismanube,paraqueapartirdeallísepuedantomardecisionesquenosfacilitenlavidaatodos,esunaideaqueyadeprincipiollamalaatención.Esascosasdelasquehablamos,puedensercosasrelacionadasconcualquiersectorque,enestecaso,eselsectordelastelecomunicaciones.

PeroparaqueelIoTsirvadealgoycomosehadicho,ayudeyfacilitelavidadelagente,hayquehaceralgoalrespeto,yesotienequeverconelBigDatayelanálisisdeestosdatos.ElBigDataesotrodelostemasdelosquehablatodoelmundoactualmente,yaquecadasegundosegeneranmillonesdedatosprocediendodecualquiercosacon losquemuchagentenosabequéhacer.Esporesoquesaberanalizarestosdatos,tratarloscorrectamenteysacarconclusionesesalgorealmenteinteresanteyútil.

Entonces se decidió que juntando las cosas mencionadas, se podía llegar a tener un proyectointeresante,aplicadoalavidarealyquepodíaservirdeayudaamuchasempresas.Perocomotodoproyecto,nobastacontenerlaideafinaldeloquesequiereobtener,sinoqueelprocesoparallegaraellaesigualdeimportante.Yesenestepuntodondeseacabódedefinirelproyectoalcompleto.

Page 9: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

9

1. INTRODUCCIÓN

EnlasempresasdeTelecomunicacionesrepresentaunfactordealtaprioridadeltenercontrolsobretodoslosposiblesaspectosqueafectenalapresentacióndelosservicios,concretamenteteniendoencuentaqueestaclasedeservicios requierendeunadisponibilidad24/7, todos losdíasdelaño.Elmotivoesqueencasodepresentarseproblemasseaplicaránmultasquerepresentanaltoscostospara las empresas e inconformidad para los clientes finales, cosa que perjudica gravemente a laempresaproveedoradeestosservicios.

Teniendoencuentaladistribucióngeográficaylascondicionesquesedanenlaactualidadparalosnodos de telecomunicaciones, considerandoque son un punto crítico de control y acceso para elpersonaldemantenimientoyaqueunagranmayoríadelosnodosseencuentranubicadosencerrosymontañasdedifícilaccesofísico,ysegúnlaexperienciaparaelcasodelaempresadondesellevaacaboelproyecto,eltenerconocimientopreviodeloseventosqueocurrenenelnodorepresentaunaherramientamuyútilyapropiada.

Esporesoquecadavezmáslasempresasqueseencuentranconproblemasdeestetipo,seplanteansistemasquelesfacilitenlavidaalavezdesolucionarleslosproblemas.Además,teniendoencuentaelboomdelBigDataquehayactualmente,lasempresasnoquierenquedarseatrásynodudaneninnovar.

NosepuedehablardesensoresyBigDatasinmencionarelInternetofThings(IoT).ElIoTconsistebásicamenteenconectartodoslosobjetosquenosrodeanalanube.Muchosexpertosprevénqueenunosaños,todalasociedadestarácontroladaatravésdesensores,loscuálesrecogeránmillonesymillonesdedatosygraciasalanálisisdeestos,sepodráanalizarypreverelcomportamientodeprácticamentetodo.Esteproyectoestarelacionadoenciertomodoatodoestemundo,yaquecumplemuchosdelosrequisitosparaserunproyectorelacionadoconelIoT;sensores,conexiónremotayanálisisdedatos.

1.1ObjetivosdelproyectoImplementarunsistemapruebademonitoreodeciertosparámetrostantoeléctricoscomofísicosqueproporcionelainformaciónadecuadaparaenfrentar,estudiaryllegarasolucionarlosproblemasquesevienenpresentado.

Elproyectoadesarrollarestáfocalizadoeneldiseñodelaplataformapartiendodecero,loqueimplicalassiguientestareas:

- Estudiodequéparámetros son importantesa lahorademonitorizar y conqué sensor secontrolarán

- Instalacióneimplementacióndelsoftwareutilizado- Instalacióneimplementacióndelhardware- Extraccióndedatosdelossensores- Diseñodelestudioytratamientodedatos

Page 10: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

10

1.2EstructuradelproyectoParacumplirlosobjetivosmencionados,hayqueenfocarelproyectojuntandoelámbitodelagestióndeproyectosyeldelastelecomunicacioneseinformática.

Elporquédeenfocarlodesdeelpuntodevistadelagestióndeproyectosesbásico.Separtedeunaideabastantegenérica,dondesesabeelpuntodepartidayloquesedeseaobtener.Peroentremediohaymuchosaspectosquehayquegestionar,organizar,ordenarydefinir.

Todo el trayecto desde el punto de partida hasta el punto final son en general, tareas de tipoinformático o de telecomunicaciones, así que no basta sólo con saber gestionar el proyecto, sinotambiénsaberdequétrata.

Laplataformatienediferentespartesesencialesperomuydiferentesentreellas:

ElmPort,queseveráposteriormentequeeslabasealacuálvanconectadoslossensores,seconectainalámbricamenteaunrouterdelnodoyenvía informaciónasusoftware,queunavezconectadocorrectamente,permitiráextraerlosdatosenelformatoescogidoparaasípoderlostratar.Elanálisisdedatosseharáatravésdeunlenguajedeprogramaciónyseestudiaránlasrelacioneseinteraccionesdestacables.

En laFigura1siguientesemuestraelesquemaglobaldelproyectodondesevendiferenciadas lasdiferentespartes:

Figura1:Esquemageneraldelproyecto

1.3 AlcancedelproyectoEste trabajopretendeserunprototipoymanualdeun futuroproyectoa implementar.Enprimerlugar,servirádeherramientaparalainstalacióndeunaplataformademonitoreodeparámetrosenlosnodosdetelecomunicaciones.

Page 11: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

11

Porotrolado,alserunprototipo,significaqueengranpartenosetrabajarácondatosreales,peroqueestarátotalmentepreparadoparahacerlo.

Esunproyectomuyinteresanteymuyamplioqueenelapartadodeanálisisdedatos,sepodríaseguirydesarrollarunaherramientaquepermitieranosólovercuáleselcomportamientoactualdeestosparámetros,sinoestudiarlosdeformapredictiva.

2. CONTEXTOSITUACIONAL

2.1DescripcióndelaempresaPuntonetesunaempresadetelecomunicacioneslíderenEcuador.Tienediferentesoficinasydiferentesdepartamentos,cadaunodeellosseparadosdependiendodesitratantemascorporativosoparticulares.Seencarganprincipalmentededarconexióninternetaniveldebandaanchayfibraóptica,peroactualmentetambiéndisponendeunequipotécnicoencargadodelDataCentermásgrandedelpaísyencargadodetratarlostemasdeCloud.Esoincluyeserresponsablesdesdelosequiposfísicosquehayenlamismaoficinadetrabajo,hastadetodoelmantenimientoyfuncionamientocorrectodelosservidores.EsenesteequipodeDataCenteryClouddondesedesarrollólatotalidaddelproyecto.

2.2SituaciónactualParasolucionarelproblemaplanteado,esimportanteanalizarbienlasituaciónactualdelaempresadonde se desarrolla el proyecto, para ver cuáles son las necesidades exactas, las condiciones yfacilidadesdelasquesedispone.

Elproblemavienedadoporlafalladadelosserviciosqueproporcionalaempresaylaformaactualdegestionarlaeslasiguiente:visitadelostécnicosalnododeforma“inmediata”.Afaltadeprevisióndeestosfallos,sellegatardealnodoyelservidoryahafallado.Estasituaciónrepresentaunoscostosmuyelevadosdebidoalainconformidaddelosclientesylasmultasquehayquepagar.

Comofacilidadesquelaempresadispone:lapartedelproyectodelaconexiónremotaentrenodoyoficina está relativamente solventada. La posibilidad de utilizar lamisma red de transporte de laempresarepresentaunamuyeficienteopciónparaelproyecto,yaquelacomunicaciónconelsitioremotoeraunadelasgrandeslimitantesquesepresentaba.

3. MARCOTEÓRICO

3.1¿Quéesunnododetelecomunicaciones?Eninformáticayentelecomunicación,deformamuygeneral,unnodoesunpuntodeintersección,conexiónounióndevarioselementosqueconfluyenenelmismolugar.

Lasprincipalesfuncionesdelnodoestudiadoparaesteproyectoson:

§ DarconexiónWifi§ Darconexióndefibraóptica

Page 12: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

12

YelfuncionamientoeselquesepuedeobservarenlaFigura2:

Figura2:Funcionamientonodotelecomunicaciones

3.2PosicióngeográficadelosnodosdePuntonetTeniendoencuentaquecadanodopuededarconexiónalazonaconlaquetieneunalíneadevisióndirecta,lareddenodosdelaempresaesmuyampliayaqueQuito,ciudaddóndesellevaacaboelporyecto,quedadefinidapor laspendientesde losvolcanesque la rodeanydos turones justoenmediodelaciudad.

Apesardequelaideaseríaimplementarestaplataformaentodoslosnodos,comtodoproyectohayque empezar poco a poco, para así ser capaces de valorar la viabilidad del proyecto y hacer unainversión razonable. Es por eso que el proyecto se centrará en el nodo instalado en el barrio deVillaflora,enQuito,aunos2800msnm.

Elmotivodelaeleccióndeestenodosedebealasfacilidadesquenospresentalazonadondeestásituado,yaqueelnodoestáinstaladoencimadeotrasoficinasdelamismaempresaypermiteaccedera él sin necesidad de contactar con los propietarios del edificio que acostumbran a ser edificiosprivados.

Page 13: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

13

Figura3:UbicacióndelnodoVillafloraenQuito.Fuente:GoogleMaps

3.3NodoVillaflora3.3.1ElementosnodoApartirdeuninformeproporcionadoporlaempresa[1],sepuedenclasificarloselementosqueformanpartedelnodoelegido:

Elementospasivos§ Antenas

o Parabólica o Panelo SectorialesFrec.2.4GHzy5GHzo Sectorial360°o Cablescoaxiales

Page 14: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

14

Elementosactivos

Equipo Tipo

Equipo Mikrotik (MKT) 411AH con radio XR5(Bakhaul)

Router

EquipoMKT433AHconradioXR2 Router

EquipoMKT433AHconradioXR5 Router

EquipoMKT433AHconradioR52n Router

EquipoOmnitik Puntodeacceso

PoEs24V(1A)

Fuentesregulables3A

PoweroverEthernet

Switchadministrable Switch

Tabla1:Descripcióndeloselementosactivos

3.4SistemadeMonitoreo

Figura4:Funcionamientosistemademonitoreo

§ Subsistemaadquisicióndeseñales:eselsistemaformadopor lossensoresyencargadodetomarseñalesexternas.

§ Subsistemadecomunicación:eselencargadodetransportarlosdatosatravésdelaredparaser entregados al subsistema de almacenamiento. Consiste básicamente en la red detransportedelaempresa.

§ Subsistemadealmacenamientodedatos:encargadoderealizarlamanipulacióndelosdatosenviados desde el subsistema de adquisición de señales y realizar la visualizacióncorrespondientedelosdiferenteseventosquesegeneran.

Subsistemaadquisiciónde

señales

Subsistemadecomunicación

Subsistemadealmacenamiento

dedatos

Page 15: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

15

Figura5:Pasosaseguirparaelfuncionamientodelaplataforma

3.5ConectividadsensoresUnavezlossensoresestáninstalados,esimprescindiblepensarenquetipodeconexiónusaremosparaconectarestosconnuestraplataformadegestióndedatos.

Lasconexionessecentranbásicamenteendosgrandesgrupos:

3.5.1Ethernet,LANyWLANLAN (Local Area Network), hace referencia a una red que interconecta una omás computadorasdentrodeunageográficalimitada,atravésdehardwareysoftware,conelfindecompartirarchivos,recursosyhastaunaconexiónaInternet.LasLANconvencionalesutilizantípicamentepartrenzado,cablescoaxialesoenalgunoscasos,fibraóptica(anchodebandainfinito).Detrás de esta denominación se encuentra un estándar llamado Ethernet, el cual determina lasparticularidades físicas y eléctricas que debe poseer una red tendida con este sistema (todos loselementosquetienenpapeldentrodeunaredycomodebenserconectadosentreellos).

También llamamos Ethernet a una red LAN conectada a través de cable, en el cual se debeninterconectarentresitodoslosdispositivosquelaconformanmedianteundispositivollamadorouter.

Cuandoseconectaatravésdeondasderadiodealta frecuencia,pasaa llamarseWLAN(WirelessLocalAreaNetwork).Estanospermiteprescindirdecableseinstalacionescomplicadas.Esunareddecomputadorasadistanciadeunaspocasdecenasocientosdemetros.Potencialmente,latransmisiónnoestanrápidacomolaproporcionadaporunaLANconvencional,peroparalamayoríadeusuarios,esavelocidadnoesunalimitación.

Apartirdeaquí,elelementomásimportantedecualquierredmencionadaeselcableEthernet,cableutilizadoparainterconectartodoslosdispositivosqueconformanunaLAN.Eselencargadodellevartodoslosdatosqueusualmentetransitanporunared.

Page 16: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

16

3.5.2Wifiyconectividadcelular(2G,3Gy4G)WI-FI es la abreviatura deWireless Fidelity. El término es en la actualidad un nombre demarcautilizadoparamarcarproductosquepertenecenaunacategoríadedispositivosWLAN.EsunnombredemarcaregistradaparalosdispositivosdelamarcaquecumplenconlosestándaresIEEE802.11.UndispositivoWI-FIreadysimplementesignificaqueestálistoparaelfuncionamientodelareddentrodeunaWLAN.

SufunciónesbásicamentepermitiraundispositivoelectrónicoelintercambiodedatosoconnexiónaInternet,seaa2,4GHzo5GHz.Estaconexiónpuedesermenosseguraquelasconexionesporcable(Ethernet),yaqueelatacantenonecesita estar físicamente conectado. Pero como ventaja, las redes Wifi permiten el acceso demúltiplescomputadoras,adiferenciadeEthernet,queestálimitadaalospuertosinstaladosyalosusuariosregistrados.

Hablandoahoradelaconectividadmóvil,sepuedenobservarmejorasmuyrápidasyconstantesenella.Hastalafechahansurgidocuatrogeneracionesdetecnologíamóvil.Laprimeradenominada1G,sólo permitía realizar llamadas de voz. En la década de los 90, apareció la segunda generación,denominada2GoGSM,que ya admitía la transmisióndedatos a baja velocidad. Conel siglo XXIapareció 3G, que logró alcanzar velocidades de hasta 40Mbps. Actualmente las necesidades hanhecho que nazca la cuarta generación, 4G (LTE), que ha multiplicado por 5 la velocidad de supredecesora.Unadelasincreíblescosasquesepuedellegarahacerconlatecnología4Gesalmacenarysincronizarenlanubetodotipodearchivos. Aunqueestastecnologíaestabaorientadaalatelefoníamóvil,desdehaceunosañoslasoperadorasde telefoníamóvil ofrecen servicios exclusivos de conexión a InternetmediantemódemUSB, sinnecesidaddeadquirirunteléfonomóvil,porloquecualquiercomputadorapuededisponerdeaccesoaInternet.

TantoWifi como las otras redes comentadas, consumen una gran cantidad de energía, pero sonampliamente soportadas y con gran cobertura. Poco a poco, van apareciendo redes totalmenteadecuadasparatratarconelIoT.Sonredesqueconsumenmuypocoyesoesperfectoparapoderconectarsensoresyquepuedanfuncionarmuchotiempo.Elmotivoporelquenosetrabajóconestasredesenelproyectoesporque,comosehadicho,estánapareciendoahorayenEcuadornohaycoberturatodavía.

4. DESCRIPCIÓNDELASOLUCIÓN

Se implementará todoeldiseñode laplataformasiguiendounordenconcreto,empezandopor ladefinición de los parámetros que hay que monitorear junto con la propuesta del sensor que seencargarádeeso,unabreveexplicacióndelsoftwareutilizado,introducciónalhardwareyfinalmente,ladescripcióndelasherramientasquepermitiránlaextraccióndedatos.

Page 17: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

17

4.1Quéparámetroshayquemonitorear4.1.1Temperaturaexterior

§ DescripcióndelparámetroSedecideestudiaresteparámetroque,aunqueseaunamedidasobre lacualnopodamosefectuar ningún cambio, será interesante relacionarlamás adelante con los valores de latemperaturadedentrodelshelter(llamadaasílapartequecontienelosequiposdentroenelnodo),paravercómoafectalatemperaturaexteriorconlatemperaturainterior.

§ LímitesdelparámetroNohaylímitesnialertassobreesteparámetroyaquesólosirvedeestudio.

§ QuétipodesensorEnelproyectoactualdelaempresanoconstaningunaintencióndeinstalarunsensorparamedir la temperaturaexteriorporqueactualmentehaymuchasestacionesmeteorológicasquetepermitensacarestosdatos.Comopropuesta,sepodríaplantearlaopcióndeinstalarunsensorquetomeestosdatossinnecesidadderecurriraempresasexternas.

Posible propuesta: AF00, AF10, and AF20 OUTSIDE TEMPERATURE SENSORS, de la marcaHoneywell[2].

Figura6:ImagendelsensorAF10.Fuente:DatasheetHoneywell

Figura7:EspecificacionesdelsensorAF10

Page 18: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

18

Permitelamedidadelatemperaturaexteriorgraciasasucarcasaresistentealagua.

Esadecuadotambiénporqueparaelmonitoreosepuedenusarlosdiferentessistemasde Control:

- Eagle- Lion- Tiger- Excel5000,500y800- ExcelWebyWebII- MódulosHoneywell- …

o ElpreciodeestedispositivoatravésdeAmazonseríade:AF00(35$),AF10(120$),AF20(137$)

4.1.2Humedad§ Descripcióndelparámetro

La humedad es un parámetro muy importante que influye directamente con elfuncionamientodelosequiposdelnodo.CabedestacarqueenunpaíscomoEcuador,dondepuedesencontrarclimasmuydiferentes,ésteparámetrocobraimportancia.Haynodosinstaladosa4000msnmenzonaandinaigualquenodosa0msnmconclimatotalmentehúmedoycosteño.Esporesoqueaunquenuestroproyecto se lleve a cabo en un sitio con pocos problemas de humedad, para una futurainstalaciónnacional,serádegranuso.

§ LímitesparámetroLos sensores de humedad miden la humedad relativa de su entorno, y en un cuarto detelecomunicacionesconequiposelectrónicos,esaconsejablemantenerestosvaloresentreel30%yel55%[3].

Sisesobrepasanestosvalores,sedebedispararunaalertaparaevaluarcómoseprocedeysiesnecesariouncambiodeaireenelshelter.

§ TipodesensorIgualqueenelcasointerior,nohayintenciónahoramismodelaempresadeimplementarestetipodesensor,yaquelamarcaconlaquesetrabajahabitualmente,Ubiquiti,nodisponedeningúnsensorqueseencarguedetomarestasmedidas.Apesardeeso,sehaceunapropuestaparaunaposiblefuturaimplementacióndebidoalaimportanciadelparámetro.Unaposibleopcióndeunsensorquemidalahumedadinterior:TermómetroethernetHWg-STE[2].ElHWg-STEesuntermómetroEthernetquepermitecontrolartemperaturayhumedadporIP,esdecir,controlatemperaturayhumedadremotamente.ElHWg-STEenvíaalertaspore-mail en caso de superar los límites definidos. Se suministra con una única sonda detemperaturayhumedad,alimentadorysoftware.Apesardequelatemperaturainteriorya

Page 19: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

19

se monitorea a través del sensor integrado en nuestra plataforma mFi (que se veráseguidamente),actualmentenoseencuentransensoressólodehumedad,asíquesetomaránlasmedidasdehumedadenestecasoquesonlasqueinteresan.

ElsoftwareHWg-PDMSregistralosdatos,muestragráficosypermitelaextraccióndelosdatosaMSExcel.

Figura8:ImagensensorHWg-STE.DatasheetDitecom

Figura9:EspecificacionessensorHWg-STE

o Precio:155€+IVA

4.1.3Corrientequealimentauncircuito§ Descripciónparámetro

Elnodoestudiadoesuncasoderedmonofásica.Laslíneastrifásicassevandesdoblandoenmonofásicasparaalimentarapequeñosconsumidorescomoeselcasodenuestronodo.Esosignificaqueestáformadoporunaúnicacorrientealternaofaseyporlotantotodoelvoltajevaríadelamismaforma.

Page 20: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

20

Asípues,estudiaremoselcorrientedelafasequeprovienedelaenergíapúblicayporotrolado,elcorrientequevadirectoalSAI.

§ Límitesdelparámetro

ElcorrientenominalqueestápasandoporelcablequedacorrientealSAIesdeunos10mA.

Paracalcularlosumbrales,sehaceatravésdelosVAdelSAI1,los110Vquesesuministranalnodoyunfactordepotencia(FP)de0.8.

3000𝑉𝐴×0.8 = 2400𝑉𝐴

2400𝑉𝐴110𝑉

= 21.8𝐴

Ecuación1:Cálculoumbralescorriente

Enviaralertacuandoelcorrientedisminuyapordebajodel70%delvalorcalculado,esdecir,un 70%de 21.8A que equivale a unos15A. Como vemos, este valor se alejamucho delnominal,yesosedebeaqueestosequipossoncapacesdesoportaraltosvaloresdecorrienteantesdequeseapeligroso.

En referencia al valor del umbral inferior, se estudió que a partir de unos 7mA deberíadispararseunaalarma.

§ Quétipodesensor

El equipo escogido es el mFi Current Sensor (mFi-CS) de la marca Ubiquiti ¡Error! No seencuentraelorigendelareferencia..

1La potencia en watios es la potencia real consumida por el equipo. Se denomina Voltios-Amperios a la "potencia aparente" del equipo, y es el producto de la tensión aplicada y la corriente que por él circula.

Figura11:FuncionamientomFi-CS.Fuente:mFi

Datasheet

Figura10:EspecificacionestécnicasmFi-CS

Page 21: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

21

o Funcionamientosensor:El sensor mide corriente AC en el circuito, no potencia (potencia es voltajemultiplicadoporintensidad).Elsensormideelvaloreficazdelvoltajeyloconvierteacorriente(usando1V=100A).

o Precio:(2sensores)

Precio($) Precio+Impuestos($) Total($)

11,32 14,26 28,53

Tabla2:PreciosensormFi-CS

4.1.4Movimientoenelnodo§ Descripciónparámetro

Elobjetivoserádetectarmovimiento,loquesignificamonitoreartantolaaperturadepuertasde los nodos o centros de datos como el movimiento en su interior. Es importanteprincipalmenteparalasdossituacionesdescritasacontinuación:

ü Caso1:Roboü Caso2:Visitadeuntécnico.Enestecasoesparacontrolarcuandountécnicode

laempresaacudealnodo.Esútilparasituacionesenquesehamodificadoalgunacosadentrodelnodoydespuésnofuncionaosimplementeparapoderponerseencontactoconeltécnicoencargadodedichamodificación.

§ Límitesdelparámetro

Comonoesmuycomúnquehayamovimientoenlosnodos,demomentoessuficienteconcrearunaalarmaenelmomentoquesedetectealgo.Asísepodrácontarlasvecesqueentraalgúntécnicoycomprobarquecoincidanconlasprevistas.Paraautomatizarmáselproceso,unaideainteresanteseriaquesedisparaselaalertasoloencasodeaperturadepuerta/movimientoenhoras/díasatípicos.Tambiénencenderlacámaraenelmomentodeaperturadepuertaparaasípoderregistrarqueestápasando.

§ Quétipodesensor¡Error!Noseencuentraelorigendelareferencia.

Equipo Descripción

mFi-DS mFi,DoorSensor

mFi-MSW mFi,WallMountMotionSensor

Tabla3:Sensoresdemovimientoescogidos

Page 22: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

22

Figura12:EspecificacionestécnicasdelmFi-DS

Figura13:EspecificacionestécnicasmFi-MSW

o Funcionamientosensor:Losdossensoresfuncionanconunvoltajede12VquerecibendelmPort.Tambiénreciben24VdelpinOutput.EnvíanunaseñaldevueltaalpinInputsinosedetectaningúnmovimiento.Enelcasodedetectarse,elsensorabreelcircuitoconelfindequenoserecibalaseñal.Esoesloqueindicaquesehadetectadomovimiento.Es un sensordemovimientodedoble tecnología, utilizando tanto los sensoresdemovimientoinfrarrojospasivosymicroondasparaminimizarlaprobabilidaddefalsasdetecciones.

Page 23: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

23

o Precio:

Equipo Precio($) Precio+Impuestos($) Total($)

mFi-DS 35,09 44,21 44,21

mFi-MSW 24,9 31,37 31,37

4.1.5Temperaturainterior§ Descripciónparámetro

Controlarlatemperaturaenelinteriordelshelteresunadelascosasmásimportantesdebidoa la alta escala de integración y complejidad presentada en los diversos equipos detelecomunicaciones.Estosgenerantemperaturaselevadasporsufuncionamiento,asíqueesvitalmantenerlosaunatemperaturaadecuada.No sólo es el calentamiento de los propios equipos, sino también las condicionesmeteorológicas.Aunqueelshelterdispongadeunbuenaislamientoexterior,latemperaturanoeslamismaenhorasdesolqueenausenciadeél.Ennuestrocaso,latemperaturarecomendadaestáentrelos0y40ºC,lamismaquesetomadel sensor colocado directamente en contacto con los equipos en el nodo detelecomunicaciones.Aunqueseantemperaturasextremas,esosedebeaquelasituacióngeográficadelosnodosenEcuadoresmuydiversa.En lacosta losnodosseencuentrananiveldemar,conclimahúmedoytemperaturasaltas,mientrasqueenlazonamásandinalosnodosestánsituadosaaltitudesqueavecessuperanlos3000msnm,contemperaturaspordebajodelos10ºC.

§ Límitesdelparámetro

Equiposactivos

Equipo Tmáx(ºC) Tmín

(ºC)

EquipoMikrotik(MKT)411AHconradioXR5(Bakhaul)

70 -40

EquipoMKT433AHconradioXR2 70 -40

EquipoMKT433AHconradioXR5 70 -40

EquipoMKT433AHconradioR52n 70 -40

EquipoOmnitik 70 -30

Tabla4:Preciossensoresdemovimiento

Page 24: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

24

Switches:

- CiscoCatalyst9300SeriesSwitches

- CiscoCatalyst9400SeriesSwitches

- CiscoCatalyst9500SeriesSwitches

45

45(menosde3000msnm)o40(másde3000msnm)

40

-5

-5

0

Tabla5::Límitestemperaturainteriorsegúnequipo

§ Quétipodesensor

ElsensorescogidoeselsensormFi-THSdelamarcaUbiquiti¡Error!Noseencuentraelorigendelareferencia..

Elrangodetemperaturasqueelsensorpuedeindicarestádentrodelrangodeoperacióndelosequiposactivos.

Tambiénsecumplenloslímitesenelsentidoqueelsensorpuedetrabajardesde-20°Chasta60°C.

o Funcionamiento:Recibe 12V delmPort. El voltaje del sensor es leído por los pins delmPort. Da elresultadoenCelsius.

Figura14:EspecificacionestécnicassensormFi-THS

Page 25: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

25

o Precio:(2sensores)

Precio Precio+Impuestos Total

19,24 24,24 48,48

Tabla6:PreciosensormFi-THS

4.1.6Consumoenergía§ Descripciónparámetro

Controlarlaenergíaconsumida,tantoparaasegurarunbuenrendimientotodoelratocomoparahacerunconsumoeficientedeesta.Dentrodelnodo,laenergíaesconsumidaporlosequiposactivosquehayenesteyporlasbaterías que alimentan los SAI. Estos últimos actúan como sistema de respaldo y esimportantequeleslleguealimentaciónencasodenecesitarlo.

Posiblesproblemasconlaenergía:

o Eventos transitorios (rayos, tormentas eléctricas... que conducen al aumentorepentinodetensiónydecorriente).

o Corteenergíao Picodevoltajeo Subvoltajeo Sobretensióno RuidodeLíneao Variacióndefrecuencia

§ Límitesdelparámetro

Losvaloresdevoltajeadecuadosestánalrededorde los110-125VAC(voltiosdecorrientealterna).Sisesobrepasan,seráseñaldequealgonoestáfuncionandobien.

§ QuétipodesensorApartedeserunaregletadealimentación,suobjetivoestambiénmonitorearcadapuertoAC(8)ydeterminarelconsumodeenergíaporcadauno.ElequipoescogidoeselmPowerProdelamarcaUbiquiti[¡Error!Noseencuentraelorigendelareferencia..

Page 26: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

26

Figura15:EspecificacionestécnicasmPowerPro

o Precio:

Precio($) Precio+Impuestos($)

Total($)

81,52 102,72 102,72

4.2Software4.2.1mFiControllerSoftwaremFiesunsoftwaredegestiónM2MdiseñadoparafuncionarconlosproductosdemFiUbiquitiyeselescogidoparagestionartodaestaplataforma.DesdemFiesposiblecontrolarlosproductosquehayansidoinstaladosyconectadosadecuadamente,verlasmedidasquesetomanentiemporeal,crearunsistemadealertasindicandoquécondicionesharánsaltarestasalertas,ubicaraunmapalaubicaciónde tus sensores, etc. El mismo software no dispone de la opción de exportar datos fuera de laplataforma,peroseverámásadelantelaalternativaseguidaparaesteproceso.

InterfazgráficaMapTab

Elsoftwaretepermitesubircualquiermapapersonalizadoparaunavisualizaciónrealdelaubicacióndetusproductos.

ElmapautilizadopararepresentarelnodoserealizóconelprogramaFusion360deversióngratis.

Figura16:PreciomPowerPro

Page 27: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

27

Figura17:Representacióndelnodo.Fuente:Fusion360

DataTab

ElapartadodeDataTabtepermiteverlosdatosdecadadispositivo.Puedesorganizarloyvisualizarloportiempo,dispositivo,tipo,etc.Tambiéntepermitecomparardatosdediferentessensores.

EventsTab

Muestratodalainformaciónrelativaaloseventosqueocurren,pudiendofiltrarlosmismosporfecha,sensor,tipodeevento,etc.

Tambiéntienelaopcióndevisualizaciónatravésdegráficos.

ScenesTab

Permitedefiniracciones(URLyScript)genéricasparaluegoactivarlasdesdeelRulesTab.

RulesTab

EnelRulesTab,sepuedendiseñarycrearciertasacciones,queseactivarancuandosecumplanunascondicionesindicadas.

Aquíesdondesepuedeescogerquetipodenotificaciónrecibirsialgúnparámetrosaledesusvaloresnormales.Lostiposdenotificaciónsonlossiguientes:

- Email:mandauncorreoaladireccióndecorreoespecificada- Output- URLPost:EscribirunpostenladirecciónURLespecificada- Enable/DisableRule:activarodesactivarotrareglaalactivarselamisma- RunScene:sianteriormentesehadefinidounescenarioenconcretosepuedeactivaryasíno

hayquegenerarunanuevaacción

Page 28: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

28

EnergyTab

Se controla la energía consumida por las regletas así como el costo de este consumo, ya quepreviamentesedebenindicarlos$/kWh.

DeviceTab

Simplementemuestraunalistadelosproductos,tantomPortscomosensoresquehayconectadosysuestadoactual.

Figura18:InterfazgráficadelmFiControllerSoftware

4.3HardwareElhardwarelocomponenlossensoresyelequipoencargadodeserunpuntodeconexiónentresensorydemásdispositivos(elllamadomPort).

Hayqueconsiderar tambiénunsubgrupodehardware formadopor los routers, switchesycablesutilizados.

4.3.1mPortElmPorteselqueseencargaráderealizarlasconexionessensor-Ethernetysepodríaconsiderarlabasedelaplataforma.

A simple vista, en la parte superior izquierda, se puede apreciar el estado de las tres posiblesconexiones,talcomoindicalaFigura19:

Page 29: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

29

§ Power LED: Emitirá luz verde cuando el dispositivo esté correctamente conectado a unafuentedeenergía.

§ EthernetLED:VerdecuandohayaunaconexiónactivaEthernet,yemitiráun flashcuandohayaactividad.

§ StatusLED:Amarillacuandoesencendidaporprimeravezpordefecto.VerdecuandoelmPortestécorrectamenteintegradoalaredyfuncioneadecuadamente.YfinalmenteemitiráflashcuandodesdeelmFisoftwareseactivelateclaLocate(sufuncióneslocalizarelsensor).

EsimportantesaberqueacadamPortsólosepuedenconectardossensores.

Figura19:VistafrontaldelmPort.Fuente:mPortQuickStartGuide

Figura20:VistalateraldelmPort.Fuente:mPortQuickStartGuide

4.4ExportacióndedataParaproseguiralestudiodelosdatosquerecibimosdelossensores,esimprescindibleexportarlosdatosquesemuestranenelapartadodeDataTabenelsoftwareyhayquedescargarlosparapoderlosanalizarbien.

Losdatos sonalmacenadosenunabasededatosMongoDBen lamisma computadora. SepuedeconsultarestabaseusandodiferentesherramientasDB.

Page 30: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

30

4.4.1MongoDBMongoDBesunabasededatosorientadaadocumentos.Estoquieredecirqueenlugardeguardarlosdatosenregistros,guardalosdatosendocumentos.EstosdocumentossonalmacenadosenBSON,representaciónlinealdeJSON.

Unadelasdiferenciasmásimportantesconrespectoalasbasesdedatosrelacionales,esquenoesnecesarioseguirunesquema.MongoDBestáescritoenC++.CualquieraplicaciónquenecesitealmacenardatossemiestructuradospuedeusarMongoDB.

4.4.2HerramientasMongoDBHay diferentes herramientas que permitirán acceder a la base de datos y leerla. Entre ellas seencuentran MongoVUE, Pentaho o Robomongo. A pesar de que la más utilizada puede que seaMongoVUE,sóloestádisponibleparaWindows,asíquequedadescartada.

RobomongoeslamásfácildeusaryqueseadaptabienalsistemaMACOSX.

RobomongoRobomongo es una herramienta multiplataforma con la que se puede administrar gráficamentenuestrasbasesdedatos.ActualmentesehaconvertidoenunimportantealiadoparalosusuariosdeMongoDB.

Esta herramienta no se basa en un sistemaWeb, sino que se instala comoun cliente en nuestroequipo.Unavezinstalado,permiteconectarsealservidordebasededatosdeformasencillayverlosdatosqueestádandoelmFiSoftwareController.

5. IMPLEMENTACIÓNDELASOLUCIÓN

5.1Software5.1.1InstalaciónUNIFYSOFTWARECONTROLLER

Requerimientosdelsistema:

§ MicrosoftWindows7,WindowsVista,WindowsXP,MacOSoUbuntuLinuxversión11.04§ Sistemaoperativorecomendadode64-Bits§ 2GBdememoriaRAM§ JavaRuntimeEnvironment1.6

Requerimientosdelnavegadorweb:

§ MozillaFirefox,GoogleChrome,MicrosoftInternetExplorer8,Safari§ FlashPlayer10

Page 31: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

31

5.2Hardware5.2.1ConexiónEthernet

1. ConectaruncableEthernetalpuertoEthernet

2. ConectarelotroextremodelcableEthernetalpuertoEthernetllamadoPOEdeladaptadorPOE

3. ConectaruncableEthernetdetupropiaLANalpuertoEthernetdeladaptadorPOEllamadoLAN

4. Conectar el cable de alimentación al puertocorrespondienteeneladaptadorPoE.Elotroextremodelcabledealimentaciónvaconectadoalaregletadealimentación

5.2.2ConectarsensoresCadamPorttieneunmenúdeconfiguraciónydetallesalcualsepuedeaccederfácilmenteatravésdesuicono.AllísepodráañadirlossensoresconectadosalcorrespondientemPort,indicandosunombreyeltipodesensorquees.SielcabledesdeelmPorthastaelsensorestácorrectamenteconectado,elsensorestálistoparaempezaramedir.

5.2.3PruebaspreviasAntesde llevara cabo la instalaciónde los sensoresenelnodocorrespondiente, se realizanunaspruebasenoficinaparaasegurarquetodoslospasospreviosalavisualizacióndedatossecumplen.

ElprimerpasoesconectarelmPortalaplataformasoftware,paraloqueseutilizaunTP-LINK150MpsWirelessandroutercreandoasíunaredalaqueseconectaráelordenador(nombrered:TP-LINK-B142AO).

Page 32: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

32

Paraconfigurarelrouter,seconectauncableEthernetextremo1alrouter,extremo2alpcWindows.AllísecambialaIPalaquevienepordefectodelTP-LINK(conexionesdered,conexióndeárealocal)yseguidamente,desdeelnavegadorseaccedeahttp://tplinklogin.net(webdeconfiguración).

Cambiarnombredelaredsisedesea,contraseña,etc.ypermitirelservidorDHCP(darádireccionesIPalosdiferentesequiposqueseconectenalared(IP:192.168.48.200)).

ConfiguraciónmPortPara que el mFi Controller Software detecte y reconozca nuestros dispositivos mPort, hay queconfigurarlosdeformacorrecta.

Pordefecto,vienenconunaIPasignadaalacualsepuedeaccederyallíconfiguraraqueplataformamFivanaestarvinculados,juntoconeltipodeconexiónWirelessalaquesevanaconectar.EsaquídondehayqueseleccionarlaredTP-LINK-B142AO.EsentoncescuandoseveráuncambioenlaluzdelmPortqueindicaqueestáncorrectamenteintegradosenlared.

Para asegurar que el ordenador con el que se trabaja detecta estemPort, se puede descargar elprogramaUbiquitiDiscoveryTools,desdedóndeapareceráeldispositivoconsuscaracterísticas.

Cabedestacarque,siunmismomPortseconectaaplataformasdiferentesdelmFiController,hayquereiniciareldispositivoparaquelaotraplataformalodetecte.

InstalaciónenMacBook(víaWifi)Elprimerpasoserállevaracabolainstalacióndelaplataformaparapoderaccederdesdeunportátil,unMacBookenestecaso.SerealizalaconexiónvíaWifiatravésdelaredmencionadaanteriormenteyseasignaunadirecciónIPqueestáenlamismasubred(IP:192.168.48.202).

Unavezcompletadoesteproceso,conectarelordenadordesdedóndesetrabajara(MacBook)alaredTP-LINK-B142AO(condirecciónIP:192.168.48.202).

Se abre el mFi Software Controller (misma dirección IP que TP-LINK-B142AO) donde yaautomáticamenteapareceráelmPortlistoparaañadirlo.

Elmismosoftware leasignaacadamPortunadirección IPdiferente,perodentrode lasubreddetrabajo. Eneste caso, el primermPort tieneunadirección192.168.48.102,desdedondeahora sepodráncambiarsuscaracterísticas.

InstalaciónPC(víacable)Hay que recordar que en el PC se trabaja a través de unamáquina virtual con sistema operativoWindows7,asíquehayqueasegurarqueambasestánconectadasalamismasubred;enestecasoIP192.168.48.201 para el ordenador normal, y IP 192.168.48.204 para lamáquina virtual. Como seobserva,todassondireccionesqueasignaelrouterenelrangopermitidoqueseledio.

Comoesobvio,yunavezdescargadotambiénelsoftwareparaestamáquina,elmFiControllerseabrirá con una IP igual que la que abría en el MacBook, ya que será la misma plataforma (IP:192.168.48.202).ComoseadoptóelmPortanteriormente,sevelamismapantallasimultáneamenteenlosdosordenadores.

Page 33: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

33

Conexióndepruebafinal

Figura21:Esquemaconexiónpruebafinal

5.2.4Conexiónenelnodo

Figura22:Esquemaconexiónenelnodo

ElesquemaanteriormuestraelfuncionamientodelaredmFi.EnelmismonodohayunrouterconIPestáticaparaquesepuedaaccederdesdecualquierdispositivoquenoseencuentrecerca.Esterouterestaconectadoaunswitchqueseencuentraenelshelter.

ElmPortaccedeinalámbricamenteaestared,permitiendolaintegracióndeesteenelmFiControllerSoftware.EsimportantecambiarlaIPdelsoftwareenelqueestaráintegradoelmPortyaqueahoraesunaestáticaconIPdiferente.TambiénimportanteañadirenlaconfiguracióndelmPortaquéredinalámbricaseconectará.

Page 34: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

34

IntroduciendoladirecciónIPanteriorsepodráaccederremotamentealosdatosqueestánmandandolossensores.

Figura23:ConfiguraciónfinaldelmPort

5.3Exportardata5.3.1MongoDBPara poder acceder a la base de datos deMongoDB simplemente hay que seguir el proceso dedescargar MongoDB y desde la terminal del ordenador, llamarlo para crear el acceso al puertodeseado.

5.3.2RobomongoInstalaciónUna vez descargado, se debe crear una nueva conexión que permita conectarse a dónde se estátrabajandoconelsoftwaremFi.Atravésdecomentariosdeotrosusuariosdelaplataforma,sesabeque el host a cuál debemos conectarnos es el localhost del mismo ordenador, y que el portcorrespondeal37017pordefecto(Figura24).

De esta forma, se puede acceder a la base de datos deMongoDB que contiene los datos de lossensoresenlaplataformamFiSoftwareController.

Page 35: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

35

Figura24:ConfiguraciónenRoboMongoparaconectarconlabasededatos

Figura25:EstadoindicandoquelaconexiónconMongoDBescorrecta

Unavezlaconexiónseharealizadoconéxitoysetieneaccesoalosdatasetsdellocalhost,esposibleverenCollectionslabasededatosquenosinteresallamada“Ace”,mostradaenlaFigura26.

Figura26:InterfazdelabasededatosACE

Page 36: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

36

Haymuchascoleccionesycadaunadeellacontieneciertosdatossobreelsoftware.Entreellos,losmásdestacadosson:lossensoresquehay,losmapassubidosalaplataforma,lasalarmascreadas,lasvecesqueunaalertasedisparó,etc.yfinalmente,losdatossobrelasmedidasdelossensores.

5.3.3Exportara.CSVHasta aquí es muy interesante pero se necesita exportar los datos a un formato que permitaanalizarlosyestudiarlos,comoes .csv (CommaSeparatedValues).LosficherosCSVsonuntipodedocumento simplepara representardatosen formade tabla,donde las columnasde separanporcomasylasfilasporsaltosdelínea.

Sepuedehaceratravésdelcomandoenlaterminaldelordenador:

§ Comandogenérico:

mongoexport --port 37017 --db nombre base de datos --collection nombre coleccion --fields nombre de los fields que se desean exportar --type=csv --out nombre archivo.csv

§ Ejemploconcreto: mongoexport --port 37017 --db ace --collection minute --fields timee,sId,max,min,ave,last_val,last_val_time --type=csv --out mFiminute4.csv 5.3.4CamposestudiadosColección:MINUTE

- Time:horaenlaqueempiezaelintervalodetomademedida- sId:dalaidentificacióndelsensorquees.Ladaconunformatolargoydifícildeidentificar,

perosecambiaunavezeneleditorPythonparaqueseamásfácildeleer.ObjectId("59de90453004f138372d638f")=Sensor1ObjectId("59de95e33004f138372d655d"=Sensor2

- max:máximovalorregistradoenelintervalodetiempo- min:mínimovalorregistradoenelintervalodetiempo- ave:valormedioregistradoenelintervalodetiempo- last_val:últimovalorregistradoenelintervalodetiempo- last_val_time:instantedelúltimovalorregistrado

Loscamposquedantiempo, lodanenformatoEPOCH(otambiénllamadoTiempoUnixoTiempoPOSIX).

Este sistema es usado para la descripción de instantes de tiempo: se define como la cantidad desegundostranscurridosdesdelamedianocheUTCdel1deenerode1970.Esuniversalmenteusadoenmuchossistemascomputacionaleseincrementacadasegundo,sinrealizarcálculosnecesariosparadeterminarelaño,lahorayelminuto,haciendoilegiblelafechaparahumanos.

Esporesoqueexistelanecesidaddeconvertirestetiempoalformatolegibleparahumanos,yatravésdePythonydelalibreríaDatetimeesposible:

Page 37: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

37

df1['field’]=df1['field’]/1000 df1['field’] = df1['field’].apply(lambda x: datetime.datetime.fromtimestamp(x))

Colección:EVENT

- Time:instanteenelquesegeneraelevento.TambiénenformatoEPOCH- Rulename:nombredelaalerta- Sensor:enquésensorseestadandoelevento- Sensor_value:quévalordecorrienteseestádandocuandosedisparalaalerta

Comoenesta colección también semuestran los eventos así como la conexión ydesconexióndeeventos,loscualesnointeresanparaelestudio,seprocedeaeliminartodaslasfilasquemuestranvaloresNaN,quesonjustamentelasquedanalertasdeestetipoquenointeresa.

6. PRUEBASYANÁLISISDERESULTADOS6.1TestData6.1.1ImportanciaTestDataCualquier aplicación que se esté desarrollando o cualquier plataforma que se esté preparandorequieredesutesteobajocondicioneslomáspróximasalarealidadposible.Cuandolaaplicaciónolaplataformaestéenuso, contaráconmuchísimosusuariosqueharánque tengasque tratar conmillonesdedatosacumulados.Esporesoqueesesencialpoderprobarconunacantidadparecidadedatosantesdellevarelproyectoalarealidad.

Comonoesposibleobtenerdatos realesde lamayoríade sensoresque seprevén instalar enunfuturo, se decide llevar a cabo el estudio con datos generados aleatoriamente a través de unaplataformaespecializadaeneso.

Elmotivoporelcuálnoesposibleobtenerdatostienequeverconproblemasrelacionadosconlaexportación de productos desde el extranjero a Ecuador. Estrictos controles, largos trayectos ydificultadeslegalesimpidieronlallegadadelossensoresatiempo.

Pero aun así, se definieron los umbrales de trabajo de cadaparámetro y se crearonuna serie dedatasetslomáscercanosalosfuturosdatasetsreales.

6.1.2MOCKAROO¿Quées?Mockarooesunagranherramientaparalostesters.SetratadeunaherramientawebdesarrolladaporMarkBrocato,desdelaquevamosapodergenerarhasta100.000líneasdedatosrealistasparapruebasquepodremosexportarenformatoCSV,Tab-Delimited,JSON,SQL,ExcelyDBUnitXML.

Tenerficheroscsvcondatosdepruebarealistasesdeunainestimableayuda.Ytenerlosconlarapidezycalidadquedamockarooestodavíamejor.Además,probarcondatosrealistasharáqueque laspruebasde laaplicaciónseanmásrobustas,puestoqueseráposibledetectarerroresquepodríanproducirsecondatosreales.

Page 38: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

38

Hastaahora,unaposibleopcióneragenerarestosarchivosconherramientascomoMicrosoftExceluOpenOfficeCalc,conlasquecopiandoyarrastrandosepodíangenerararchivosinteresantesenuntiempoaceptable.

PeroMockaroovamásallá.Permite indicar los camposque requiereel archivodeseado; tantoelnombre,comoeltipodecampoquesequiere.Hayinfinidaddetiposdecampos,nodesdeunpuntode vista dedesarrollo (string, integer, boolean,…) sinodesdeun tipode vista funcional: nombre,apellido,ciudad,tarjetadecrédito(diferenciandoentrevisa,mastercardoamericanexpress),códigodepaís,color,talla,hora,teléfono,tipoMIME,…

Creacióndedatasets

TemperaturaexteriorDefinicióndevaloresyumbrales

Figura27:Creacióndatasettemperaturaexterior

Comosehacomentado,sequiereaproximareldatasetalarealidadenlamedidadeloposible.EnelapartadoA.Idelanexosepuedenobservarqueformatotendránlosdatosreales,esporesoquesecreanloscamposconelnombrequeseráncreadosdirectamenteenelmFiControllerSoftware.

Lacolumnade last_val_timecorresponderáalvalordeltiempodetomademedidadelparámetro(columnatimeeneldatasetreal).Asímismo,lacolumnaaveseráelvalordelamedida.

Enreferenciaalacolumnadetiempoquesegenera,sedecidequelaopciónmáscómodayviableessimplemente copiar la columna de tiempo del sensor de corriente (datos reales), así estaremostrabajandoconlosmismosinstantesdetiempoyelanálisisseacercarámásalarealidad.

Para generar los valoresdeave se tieneen cuenta la siguiente tablade temperaturas (Figura29)registradasenelbarriodeVillaflora (ubicacióndóndeseencuentraelnodo)usando lageneraciónaleatoriadevaloressiguiendounadistribuciónnormal.

A travésdeunapequeñaprogramaciónenPythonyutilizando la libreríaNumPyquenospermitehacerbásicasoperacionesestadísticas,sacamoslamedia(mean)yladesviaciónestándar(standarddeviation).

Page 39: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

39

Figura28:Códigoparasacarlamediaylastddev

ApartirdetodaslastemperaturasdelaFigura29,saleunamedianade14,2342857143(14,23)yunadesviaciónestándarde5,29759745314(5,29)asíquecrearemosnuestrorandomdatasetapartirdeesosvalores.

Figura29:ValorestemperaturasenVillaflora.Fuente:www.climate_data.org

Comolosvaloresdetemperaturassonaleatorios,ylosinstantesestánordenadossecuencialmentepara facilitar el análisis (mucho más lógico), puede pasar que en un determinado instante latemperaturaseauna,yseguidamenteseaotramuydiferente(seasumeesteerroryaquesólosedaráenelprototipo,nodebedarseenningúncasocuandosetengandatosreales).

GeneracióndedatosCadavezqueseimportendatosdelsensordecorriente,lacolumnadetiemposeactualizará,asíqueasuveztambiénsecrearandatosdetemperaturaconlacolumnadetiempoactualizada.

Atravésdeestesimplecomandodesdelaterminalseactualizaráelarchivoypermitirátrabajarconnuevosdatos.

Generar data a través de: curl "https://api.mockaroo.com/api/edd0f0b0?count=1000&key=07755790" > "Temperatura ext.csv"

Page 40: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

40

TemperaturainteriorDefinicióndevaloresyumbrales

Figura30:Creacióndatasettemperaturainterior

Hayquetenerencuentaqueenunmismonodonosedaránlastemperaturasextremas.Esdecir,unnodosituadoenzonacálidaesprobablequellegueatemperaturasalrededordelos50ºCenhorasdesol,peronuncaatemperaturastanbajascomo0ºC.

Por locontrario,unnodosituadoagranaltitudyenzonadeclimafrío,puederozartemperaturasnegativasendíasfríosyconausenciadesol.

Peroparapoder jugarahoracontodos losvalores,elvalorde la temperatura interiorsegeneraapartirdeunadistribuciónnormaldedatosconmediade25ydesviaciónestándarde15.

Generacióndedatos

curl "https://api.mockaroo.com/api/b22af850?count=1000&key=07755790" > "Temperatura int.csv"

Humedad

Definicióndevaloresyumbrales

Figura31:Creacióndatasethumedad

Comoyasemencionólosumbralesdetrabajodebenestarentreel30%yel55%.

Losvaloresquemuestralacolumnavaluedeldataset,provienentambiéndeunadistribuciónnormalconmediade40%ydesviaciónestándarde10.

Generacióndedatos

curl "https://api.mockaroo.com/api/d93b7080?count=1000&key=07755790" > "Humedad.csv"

Page 41: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

41

EnergíaeléctricaDefinicióndevaloresyumbrales

Figura32:Creacióndatasetenergíaeléctrica

Losvaloresdelconsumoeléctricodeberíanserbastanteconstanteseneltiempo.Cadasalidapuededarentre110-125VAC(voltiosdecorrientealterna),asíqueteniendoencuentaquehay8salidasencada regleta de alimentación, hay que simular ocho columnas de valores dentro del rangoespecificado.

Esinteresartratarcadasalidaporseparadoyaquesiunapresentasealgúnproblemadevoltaje,seríarápidamentedetectado.

Generacióndedatos

curl "https://api.mockaroo.com/api/7694a710?count=1000&key=07755790" > "Energía eléctrica.csv"

Movimiento

Definicióndevaloresyumbrales

Figura33:Creacióndatasetmovimiento

Lacolumnadesensortienedosposiblesvaloresdiferentes:

1:refiriéndosealsensor1,queenéstecasoseráelquedetectamovimientodentrodelnodo,WallMountMotionSensor.

2:refiriéndosealsensor2,elencargadodedetectarsihayaperturadepuerta,elDoorSensor.

Page 42: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

42

Apartirdeaquí,secreanvaloresbooleanosaleatorios(True,False),queindicaransienelmomentodetomademedida(columnaimportadadeldatasetdelossensoresdecorriente)sehadetectadomovimiento/aperturadepuertaono.

Generacióndedatos

curl "https://api.mockaroo.com/api/6e77b360?count=1000&key=07755790" > "Motion&Door.csv"

6.2AlgoritmoyanálisisenPython6.2.1PythonPython es un lenguaje de programación de propósito general, una apuesta por la simplicidad,versatilidadyrapidezdedesarrollo.Setratadeunlenguajedeprogramaciónmultiparadigma,yaquesoportaorientaciónaobjetos,programaciónimperativay,enmenormedida,programaciónfuncional.Esunlenguajeinterpretado,loquesignificaquenosenecesitacompilarelcódigofuenteparapoderejecutarlo,loqueofreceventajascomolarapidezdedesarrolloeinconvenientescomounamenorvelocidad.Enlosúltimosañosel lenguajesehahechomuypopular,comosepuedeobservarenlaFigura34graciasavariasrazonescomo:

• Lacantidaddelibreríasquecontiene,tiposdedatosyfuncionesincorporadasenelpropiolenguaje,

queayudana realizarmuchas tareashabituales sinnecesidadde tenerqueprogramarlasdesde

cero.

• Lasencillezyvelocidadconlaquesecreanlosprogramas.UnprogramaenPythonpuedetenerde

3a5líneasdecódigomenosquesuequivalenteenJavaoC.

• Lacantidaddeplataformasenlasquesepuededesarrollar,comoUnix,Windows,OS/2,Mac,Amiga

yotros.

• Además,Pythonesgratuito,inclusoparapropósitosempresariales.

A parte de todas las ventajas comentadas, Python es el lenguaje utilizado en las asignaturas deprogramaciónde launiversidad,cosaquefacilitócrearelcódigoyaquesedisponíadeunabuenabase.

Page 43: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

43

Figura34:Gráficopopularidaddeloslenguajesdeprogramación2016.Fuente:blogCodeeval

6.2.2HerramientasylibreríasComoentodolenguajedeprogramación,haymilesdelibreríasyherramientasquetepermitentratarcontodotipodetemas.

Obviamente hay ciertas librerías que son comunes y necesarias sea cual sea el tema que estastratando,comoseriandatetime(paratratarconfechas),math,random…

Enelcasoconcretodeesteproyecto,cobranimportancialasherramientasquepermitentratarconunagrancantidaddedatosyhacenqueelanálisisseamuchomássimpleyvisual.

Lamáspotentesydestacablesentretodasson:

- NumPy- Pandas

NumPyNumPyesunaextensióndePython,queleagregamayorsoporteparavectoresymatrices,constituyendounabibliotecadefuncionesmatemáticasdealtonivelparaoperarconesosvectoresomatrices.ConcretamenteenesteproyectoseutilizarálalibreríaNumPyparatratarlosDataFrames(queseveránacontinuación),p.e.paraimponercondicionesalascolumnas,filasonúmerosquecumplanciertosrequisitos.Tambiénseráimprescindibleparallamarlalibreríamatplotlib.pyplot[6].IncluidadentrodeNumPy,eslaencargadadecrearfigurasygráficos.Puedesescogerquétipodegráficoquieres,asícomoeditarlosegúnlasnecesidades.

PandasPandasesunalibreríadestinadaalamanipulacióndedatosqueofreceestructurasyoperacionesparamanipulartablasnuméricasyseriestemporales.

Page 44: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

44

SuprincipalherramientaeselobjetoDataFramequebásicamenteconsistedetreselementos:datos,índiceycolumnas.CadafiladeunDataFramecorrespondeamedidasovaloresdealgo,mientrasquecadacolumnaesunvectorquecontienedataparaunavariableespecífica.Esosignificaquecadafilanotiene,peropuede,contenerelmismotipodevalores:estospuedensernuméricos,caracteres,lógicos,etc.

Asípues,sedefinencomoestructurasdedatosbidimensionalesconcolumnasdediferentestipos.

6.2.3AlgoritmoComoyasehavistoanteriormente,tantolosdatosqueprovienendelabasedeMongoDB(conlosque se trabajará totalmenteenun futuro), como losqueprovienende losdatasetsprovisionales,lleganenunformatonomuycómododevisualizar.

EsporestemotivoqueeranecesariocrearunosarchivosconuncódigoenPythonparapodertratarlos datos, limpiarlos, destacar los parámetros importantes, clasificar las alarmas y ver posiblesrelaciones.

Cadaalgoritmogeneradosirveparatratarundatasetdistinto,perohayalgunaslíneasdecódigoquesirvenparatodos:

- Abrireldocumento.csv- Renombrarloscamposestudiadosparaqueseanmásclaros- ConversióndetiempoEPOCHaHUMANTIME- Hayciertosinstantesdetiempoenquelossensoresnoenvíaninformación.Estosinstantesse

completanautomáticamenteconvaloresNaN.Parasimplificarelestudioyaproximarloalarealidad,secompletaráestecampoconelmismovalordeuninstanteanterior(métodoffildepandas)

- Siempre es más interesante poder visualizar estos datos de forma gráfica, para ver suevoluciónenel tiempoysisiguenalgunadistribuciónespecífica.AtravésdeMatplotlibesposibleverestasgráficas.Enesteapartadoseincluyencomandosparaadaptarelejedelasxaformatofecha,tambiénsedanombrealgráfico,ejesyseindicacadacuantotiemposemarcaráunpuntoenelgráfico.

- Hay programadas ciertas variables que te dan información sobre ciertos parámetrosimportantes,asícomolamediaylosvaloresmáximoymínimodetodaslasmedidas.

- Ycomoúltimoelementocomún,cuandosesobrepasanlosumbralesdefinidosanteriormente,sealmacenaesta informaciónenunDataFramedealarmasqueposteriormentese tratarájuntoconlosotrosarchivos.

TemperaturaexteriorEnestearchivosólohayloscomandosbásicosexplicadosanteriormente.

Noseprogramónadaenreferenciaa lasalarmasyaquenosepuedeactuarsobrelatemperaturaexterna.

Page 45: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

45

TemperaturainteriorEnestearchivosepuedendiferenciardospartesclaras:laprimeraestádiseñada,comoenlosotroscasos,paracuandosetenganvaloresrealesdelossensores.Perohayotrapartequesehaañadidoconelobjetivodeaproximarseunpocomásalarealidadsisetrabajaconvaloresaleatorios.

Estamodificacióntieneencuentalosvaloresdetemperaturaexterior,haciendoquesilatemperaturaexterioresmayora17gradoscentígrados,latemperaturainteriorpaseaserlasiguiente:

Temperaturainterior=Temperaturainterior+random(0.5,1.5)

Estacondiciónsebasaenalasuposicióndequeenhorasdesolocuandolatemperaturaexterioresalta(enestecasoseconsideraaltacuandoessuperiora17ºC),latemperaturaenelshelteraumentaylosequipostiendenarecalentarsemásdelonormal.Seconsigueesteaumentodetemperaturaatravésdelafunciónrandom,quecrearánúmerosaleatorioscomprendidosentreel0.5yel1.5ylesumaráestevaloraldetemperaturainteriorinicial.

Porlocontrario,cuandolatemperaturaexterioresinferioraestevalor,sesupondráqueesdenocheo que el clima es frío, por lo que la temperatura en el shelter disminuirá y los equipos no serecalentarán.Asípues:

Temperaturainterior=Temperaturainterior–random(0.5,1.5)

EstosehaceapartirdeldatasetcreadodeTemperaturainterior,enelcuálseañadeunacolumnaconlos valores del dataset de temperatura exterior, quedando así tres columnas: la del instante demedida,“value”quehacereferenciaa losvaloresdelatemperatura interiory“Tempeext”conlosvaloresdelatemperaturaexterior.Apartirdeaquí,semodificalatemperaturade“value”siguiendolasindicacionesdadasanteriormente.

Cabecomentartambiénqueenelmomentodegraficarlosvalores,seañadeunpequeñodetalleparahacerlomásvisual.Semarcaconuncírculoazullosvaloresquesobrepasanlos40ºC,comoasíindicael límite del parámetro, comentados en el apartado Límites del parámetro en 4.1.5 Temperaturainterior. Tambiénocurriráalgoparecido,peroenestecaso indicadoconcírculos rojos, cuando latemperaturaestépordebajodelos0ºC.

Figura35:Gráficovalorestemperaturainterna

Enestecasosíquehayquetenerencuentalasalarmascuandosesuperanciertosvalores.Esporesoque,comoseveenlaFigura35,secreaunDataFrame(alarmast)quesiguelossiguientespasos:

Page 46: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

46

DesdeelDataFramedelatemperaturainterior,sefiltranlosvaloresquesuperanloslímitesindicados,creandoasínuevascolumnasqueindicaran,losinstantesenquéocurreesteevento,valores,tipodealarma(puedeserquelatemperaturasupereellímitesuperioroelinferior)yfinalmente,seordenatodotemporalmente.

Figura36:Códigoalarmatemperaturainterior

HumedadApartedeltrozodecódigogeneral,tantolosgráficoscomolasalarmastienenlamismaestructuraqueenelcasodelatemperaturainterna,siendo‘HumedadH’cuandoelvalor>55%y‘HumedadL’cuandoelvalorsea<30%.

EnergíaeléctricaLa dificultad añadida que presenta este apartado es que la alarma se puede disparar debido acualquierdelasochosalidasquepresentalaregletadealimentación.EsporesoqueseránecesariodetectaraquesalidasedebeelavisoyregistrarsuvalorparapoderalmacenarlocorrectamenteenelDataFramedealarmas(alarmase3).

Si en un mismo instante hay dos salidas que sobrepasan el límite (ya se inferior o superior), sealmacenaráncomodosalarmasdistintas.

Para todo lo mencionado anteriormente, el procedimiento seguido es crear dos DataFrames porseparado,primerounocontodos losvaloresdetectadosquesuperanel límitesuperiorydándolesunaetiquetade“VoltajeH”yseguidamente,unocontodoslosquesoninferioresallímiteinferior,llamadospues“VoltajeL”.Finalmentesefusionanenunoyquedanordenadostemporalmente.

Page 47: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

47

Tambiénenelapartadodóndesedetectanlosvalores importantesseañadeunacosa.Primerodetodo se crean tres listas,donde se vanacumulando los valoresmáximo,mínimoymediode cadasalida. Finalmente, a travésdeuna funciónque recorreestas listas, esposible saber cuál es valormáximo,mínimoymedioglobal.

MovimientoLossensoresdemovimientotrabajandeformaunpocodistintaalosotros.Sefiltraránlasfilascuyovalor en la columna de event sea True, ya que significa que el sensor ha detectado algo, ya seamovimientooaperturadepuerta.

TambiénsediferenciaenelmétododecomollenarloscamposconvaloresNaN.Envezdefijarseenelvalordel instanteanterior,automáticamentelos instantesquenopresentenvalorpasaranaserFalse. Eso se debe a que la probabilidad de que ocurra dicho evento es menos probable que laprobabilidaddequerealmentesedetectealgo.Sepuedeobservarenelcódigoquenohayvariablesreferentesa informacióndestacable,puessesustituyeronporunavariablequenosindicaelrecuentodevecesquehaocurridounevento.Enlapartedegraficar,elgráficoescogidoparamostrarqueestáocurriendoenelnodoporloquerespetaalmovimientoesungráficocircular.Indicael%devecesqueelsensordaelvalordeTrue,sobreeltotaldeseñales(tantoTruecomoFalse)quehanllegado.

Figura37:Gráficoquerepresentaelsensordemovimiento

SensorcorrienteAlseresteelúnicosensordelquedisponemosdatosreales,sucódigoeselqueseaproximamásaloqueacabarásiendoelmodelofinalparatodoslosanteriores.

Igualmente,loscamposgeneralessonlosmismosyporloquerespetaalosgráficos,sesigueelmismomodeloutilizadoenlatemperaturainterioryhumedad,indicandolosvaloresqueestánsobrepasandoloslímites,tantodelsensor1comodelsensor2.Seutilizaelcolorrojoparaelsensor1yelazulparaelsensor2.

Ladiferenciaconlosotroscódigosestáenqueenestecasonoesnecesarioeltratamientoexhaustivode las alarmas. Directamente de la base de MongoDB se extrae el documento que contiene las

Page 48: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

48

alarmas,eliminandoaquellasquenonosinteresan(comoseríanlasconexionesodesconexionesdelosmPort,etc.),asínosquedayaunDataFrameconlosmismoscamposquelosDataFramesdelasotrasalarmas.

EventosyalarmasFinalmente,apesardequeencadaarchivosecreaunDataFrameconlasalarmasquesedisparandecadaparámetro,esinteresantedisponerdeundocumentoqueloresumatodo,loordeneypermitabuscarenélcualquierdetallealrespeto.

AsíqueenesteficherobásicamenteloquesehaceesimportarlosDataFramesdelasalarmasdecadaparámetro (alarmast, alarmash, alarmase3, alarmasm y alarmasc) y juntarlos de nuevo en unDataFrame global (TOT), se ordenan temporalmente y se exporta a un fichero excel(eventsexport.xlsx).Enesteficheroestánincluidaslasdelsensordecorriente,quesehanadaptadoalformatoestándardelasotrasparaquealjuntarlonodenproblemasdeformato.

Porotrolado,tenemosloseventosyalarmasrealesqueprovienendirectamentedelmFiController.Eventssensor.py esel ficheroqueservirácuandoya se tenga toda laplataforma instalada,asíqueaunqueahoramismosoloseobtenganlosdatosdelsensordecorriente,elmismocódigoyasirveparacuando esté todo listo. En este caso, se adquieren las columnas que nos aportan informacióninteresante,seeliminanlasfilasquecontienenNaNcomovalorysehaceotravezlaconversiónEPOCHaHUMANTIME.Finalmente,seexportatambiénaunficheroexcel(EventsSensorsexport.xlsx).

DesdeelmFiControllerSoftwarenohayqueprogramarningunalíneadecódigoyaqueelprogramatelopermitehacerdeformasencilla.Lospasosaseguirsonlossiguientes:

- Indicarnombredelaalarmayaquesensorcorresponde- Enquévalordebesaltarlaalarma(ysihayquemantenerseunciertotiempoantesdesaltar)- Quéaccionessedebentomar(mandarmailenestecaso)- Concretarcuantotiemposedebeesperarhastacrearnuevoevento

Figura38:InterfazRulesTabconlaalarmadelsensordecorriente(límitesuperior)

Page 49: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

49

Figura39:InterfazRulesTabconalarmadelsensordecorriente(límiteinferior)

RelacionesSeplanteandiferenteshipótesissobrecualespodríanserlasposiblesrelacionesentrevariables.

SeestudiaránatravésdelcoeficientedecorrelaciónlinealdePearson(ρ),elcualestápensadoparavariablescuantitativasymideelgradodecovariaciónentredosvariablesrelacionadaslinealmente(sindependerdelaescaladecadavariable,yaqueelcoeficienteeslacovarianzadivididoentreelproductodelasdesviacionestípicas).

𝜌 =𝐶𝑜𝑣𝑎𝑟𝑖𝑎𝑛𝑐𝑖𝑎

𝑑𝑒𝑠𝑣𝑖𝑎𝑐𝑖𝑜𝑛𝑒𝑠𝑡í𝑝𝑖𝑐𝑎𝑠

Ecuación2:Fórmulacoeficientecorrelación

Digamos,enprimerainstancia,quesusvaloresoscilanentre-1y1.Noobstantehadeindicarsequelamagnituddelarelaciónvieneespecificadaporelvalornuméricodelcoeficiente,reflejandoelsignoladireccióndetalvalor.Enestesentido,tanfuerteesunarelaciónde+1comode-1.Enelprimercasolarelaciónesperfectapositivayenelsegundoperfectanegativa.SedicequelacorrelaciónentredosvariablesXeYesperfectapositivacuandoexactamenteenlamedidaqueaumentaunadeellasaumentalaotrayperfectamentenegativacuandounadisminuyeenlamedidaquedisminuyelaotra.Aplicandoestateoríaalasposiblesrelacionesquesepodríanobtener,estáprogramadoenelcódigoelρ entre corrienteytemperaturainterna,yaquesiaumentaelcorrientequealimentalosequiposdelnodo,estospuedencalentarseyaumentardetemperatura.También, para asegurar que se cumple algo lógico, se calcula elρ entre las dos temperaturas, laexteriorylaanterior.Podríadarsequenofueraunacorrelaciónperfectapositivaonegativayaquenotienenporquévariarenlamismamedida.

Page 50: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

50

Deningunadeestasrelacionessepuedensacarconclusionesrealesyaquelosdatosnosonrealesdemomento,sólounprototipo.Cabe decir que con los datos reales, y como propuesta futura, se podrían detectar muchas másrelaciones,yaseagraciasaunarelaciónclaraasimplevistaoparaestudiarpuntoscríticosdóndelosvaloressonatípicos.

Figura40:Gráficoscatterdelasrelaciones

Page 51: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

51

7. PLANIFICACIÓNYCOSTOS

7.1PlanificacióntemporalDuranteeldesarrollodelproyectosehaidovalorandocuantotiempoesnecesarioparadesarrollarcadaunadelastareas.Acontinuación,sepuedeobservarelDiagramadeGantt(Figura40yFigura41),elaboradoatravésdelapáginawebTom’splanner,yestructuradodelasiguienteforma:

Elejehorizontalmuestraeltiempodedicadoacadatareaenformatodedíasdecadamesquesehatrabajadoenelproyecto(aproximadamenteentreel21deagostode2017hastadiciembrede2017).

Enel eje verticalhayun listadode las actividadesque sehan llevadoa cabo,ordenadasen cincograndesgrupos.Elprimerocorrespondea loquesería ladefiniciónyformaciónpreviaal iniciodelproyecto.Alserunproyectodelámbitodelastelecomunicaciones,sepuedeconsiderarunaetapaesencialparaadquirirlosconocimientosnecesariosybásicos.

Pasandoalasiguientefase,haylaetapadeimplementación,enlaqueseagrupantodaslasactividadesreferentesalapartadodesoftwareyhardware,asícomolaprimerafasedetratamientodedatos.Durantetodoestetiempoydeformaparalela,sellevaacabounautoaprendizajedelaslibreríasdePython enfocadas a lo que sería el dataminingmediante cursos online y/o proporcionados por laempresa.

Esonosllevaalgrupodeprogramación,queunavezsetienenunasprimerasnocionessobrelosdatosconlosquesevaatrabajar,sepasanacrearlosalgoritmosydatasetsnecesariosqueenunfuturoserviríanparasacarlasconclusionesyparacumplirconlosobjetivosiniciales.

Deformaparalelasellevanacabotareascomolainstalacióndelsensorenelnodoyseestudianlasposibilidadesparadejar lista la conexiónentreelnodoy laoficina.Esta tarea, comoes lógico,nonecesitadelasdelgrupodeprogramación.

Yfinalmente,lafasederedacciónypreparacióndelaexposiciónoraldondeestálabasedelproyecto:laredaccióndelamemoria.Estafaseesimportanteencualquierproyectoperocabedestacarqueenesteessumamenteimportante.Estosedebeaqueunodelosobjetivosprincipalesesqueeldiseñodetodalaplataformadebeservircomomanualparafuturasinstalacionesdelamismaplataforma,esporesoquetenerlotodobienredactadoyestructuradoesesencial.

Page 52: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

52

Asípues,desdeeliniciohastaelfinaldelproyectosehannecesitadounos3mesesymedio,teniendoencuentaquehaydíasenloscuáleslacargadetrabajoessuperioraotros.

7.2CostosUnavez seha calculadoel tiemponecesariopara realizar el proyecto, sepuedehacerunabuenaaproximacióndelcostogeneraldeeste.

Empezandoporloquesupondríaelcontratodeuningenierojunior:eldesarrollodelproyectotuvolugarduranteunasprácticasenlaempresaPuntonet,dondelajornadalaboralerade8h/día,peroesmásaproximadodecirqueenelproyectosetrabajaronunas5horasdemedia,yaquenotodaslashorasdelajornadalaboralsededicabanaesoyaunquealgúndíasí,tambiénhubodíasincluidosenelanteriordiagramadeGanttquenosepudoavanzarnada.

Figura41:DiagramadeGanttparte1

Figura42:DiagramadeGanttparte2

Page 53: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

53

Secalculanunos20díasdetrabajopormes,3mesesymedioentotalyunsueldode25€/hparauningenierosinoconpocaexperienciapreviacomoseríaenestecaso.Quedaría:

3,5𝑚𝑒𝑠𝑒𝑠𝑥20𝑑í𝑎𝑠𝑚𝑒𝑠

𝑥5ℎ𝑑í𝑎

𝑥25€ℎ

= 8750€

Ecuación3:Cálculocostoingenierojunior

Cabe destacar que si se calculan las horas trabajadas, sale de unas 350h, cosa que cuadraperfectamente con las que se debería dedicar al TFG si lo calculas mediante los créditos que lecorrespondenylashorasestimadasporcrédito.

12𝑐𝑟é𝑑𝑖𝑡𝑜𝑠𝐸𝐶𝑇𝑆𝑥28ℎ

𝑐𝑟é𝑑𝑖𝑡𝑜= 336ℎ

Ecuación4:CálculohorasadedicaralTFG

Juntamoselcostoreferentealosdostutorespendientesdeltrabajo,eldelauniversidad,quesedebetenerencuentayaqueeltiempodedicadoasupervisaryayudarenelproyectonoesmenospreciable,yeldelaempresa,quiénayudóyllevounseguimientodetodoelproceso.

Seasumequeelsueldodeuningenieroseniorestáenunos40€/henEspañayunos35€/henEcuador:

Tutoruniversidad:15ℎ𝑥 UV€W= 600€

𝑇𝑢𝑡𝑜𝑟𝑒𝑚𝑝𝑟𝑒𝑠𝑎:30ℎ𝑥35€ℎ

= 1050€

Ecuación5y6:Cálculocostotutores

Enreferenciaalmaterialutilizadocontemplamoselordenador,yaqueespersonalylaslicenciasdelosprogramasutilizados.Enelsegundocaso,elcostoseríadeceroyaquetodoslosprogramaserangratuitosoproporcionadosporlaempresa.

PrecioMacBookAir:1350€

Sepuedeverunresumendetodolomencionadoenlatablasiguiente:

Elemento Costo(€)

Ingenierojunior 8750

IngenieroseniorEspaña 600

IngenieroseniorEcuador 1050

Ordenadorpersonal 1350

Total 11750

Tabla7:Resumencostosproyecto

Page 54: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

54

8. IMPACTOSOCIALYAMBIENTAL

8.1ImpactosocialLacontinuaadaptacióndelasempresasenelámbitodelasnuevastecnologíasesmuyimportanteysuponeunamejoratantoaniveleconómicocomoaniveldeidentidaddeempresa.MásimportanteescuandoestaempresasededicaalastelecomunicacionesenunpaíscomoEcuador,dondeestántratandodeseguirelritmomundialalqueavanzantodosestostemas.

Esporesoqueladiferenciaentrelasempresasdetelecomunicacionesresideentemascomoeste.Estáclaroqueactualmentelosserviciosdefibraópticaysobretodo,deconexiónWifiestánpresentesenmuchospaísesdelmundo.Peronotodossoncapacesdedarunbuenservicionidisponendeunsistemademonitorizaciónquelesayudeenestatarea.

Asíquedestacaríael impactosocial comoun impactoaniveldementalidadde lasempresas,unamentalidadquetienequesercapazdeverlosresultadosalargoplazoaunqueestossuponganunagran inversión inicial. Porque es una sociedad que a pesar de disponer de las tecnologías másavanzadas, está acostumbrada a vivir el día a día y a invertir en negocios que den beneficiosinmediatos.Esporesoqueavecescuestaarriesgarseparaadoptarunanuevaformadetrabajarsienelmomentoyafuncionabienloquetienen.

La implementación de una plataforma demonitorización de los datos es un ejemplo de ello, unmétodoquelespermitirásolucionarproblemasqueahoramismonosonvitalesparasobrevivircomoempresaperoqueenunfuturo,lasventajasseránincalculables.

8.2ImpactoambientalUnproyectobasadoenla informáticanotieneunelevadoimpactoambiental.Denormal, loúnicoquesepodríadestacarseríanaspectoscomoelconsumoenergéticodelordenador,elconsumodeelectricidaddurante lashorasde trabajoyporúltimo,el transporteutilizadopara llevarel sensorhastalaoficina,asícomoeltransporteparallevaracabolatareadeinstalacióndelsensorenelnodo.

Peroenestecasoenconcreto,sedebetenerencuentaquesetrabajaconsensores,loscualestienenunciclodevidadeterminadoyhayqueconsiderarlasopcionesdereciclaje.

Los sensores van conectados al mPort, el cuál está conectado al PoE y este a una fuente dealimentación,asíquenohayquepreocuparseporladuracióndelabatería.Perocomotodoequipoelectróniconoduratodalavida.Actualmente,alserunosequiposbastantenuevos,nohayreferenciasexactas sobre cuánto puede funcionar correctamente un equipo de la marca Ubiquiti pero seríaimportantetenerloencuenta.Además,elmPortesunapiezade119gramosdepesoyestáhechabásicamentedeplásticoasíqueunavez llegaseasu fin, sedeberíaseguirunprocesodereciclajeadecuado.

ElsensordecorrientemFi-CS,unpocomáspequeñoquesucompañeromPort,tieneunpesode60gramosyapartede tener laestructuradeplástico,contieneunapiezaqueactúacomobobinadealambre.Estapiezaacostumbraaserdeferritaohierrodulce,asíqueelprocesodereciclajecambia.

Page 55: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

55

CONCLUSIONES

En este proyecto finalmente se ha podido implementar la plataforma demonitoreo junto con elestudiodelosdatos.

Teniendoencuentalosobjetivosmarcadosenuninicio:

- Laeleccióntantodequéparámetrosseibanamonitorearcomodequésensorqueseibaaencargardeellofue,enprincipio,correcta.Aunqueesonosepuedeaseguraral100%,yaqueno llegaronalgunossensoresyenconsecuencia,nosepudoevaluardeformacompletaelfuncionamientodetodoslossensores.Igualmentecabedestacarquelosequiposquesíquellegaronyconlosquesepudieronrealizarpruebas,funcionabancomodebíanycomoindicabasurespectivomanualdeinstrucciones.Ladecisióndequéparámetrosseibanamonitorearseveafectadaporelmismoproblema.Alnotenerdatosreales,elestudioposteriordeanálisisdedatosnodioresultadosreales,porloquenoseviosihacíafaltaalgúnparámetromásosialgunodelosescogidosresultabanoaportarnada.

- Enreferenciaalsoftwareyalhardware,sepodríadecirqueunavezsetienetodalainstalaciónpreparada,elsoftwarefuncionacorrectamente.Apesardeeso,seríainteresanteprobarotrossoftwaresmássencillos,yaqueelmomentodeconectarlossensoresalsoftware,acostumbraadarmásproblemasdelosquedebería.Sobretodoaniveldeconexionesyredes,yaqueelprocesodeinstalaciónnecesitauntécnicoexpertoenredesparasolucionarciertasetapas.Enfrentarse a esos problemas también ayudó mucho a ampliar los conocimientos mástécnicosyganarconfianzaalahoradeconfigurarequiposyrouters.Comopartepositivaenestaetapa,sepodríadecirqueconelsoftwareinstaladoylossensoresadoptadosporelsoftware,esunprogramamuyvisualquetepermitetenerunbuencontrolyunabuenaorganizacióndelsistema.

- Ligadoaloanterior,elmismoprogramacomplicalaextraccióndedatos.Apesardeeso,hasido interesante investigarotrasformasexternasdesolventaresteproblema,ysehavistoque son igual omás eficaces, y que sirven para una gamamás amplia de programas quealmacenandatosynotienensupropiaformadeexportacióndedatos.Interesantetambiénlasdiferentesalternativasalahoradeescogerenqueformatoseríamáscómodotratarlosdatosaposteriori.

- Finalmente,ydespuésdejuntartodoslospasosanteriores,llegaelmomentodehaceralgoconestosdatos.Comoprimeradecisiónatomardentrodeesteapartadoeraimprescindibleescogerbienellenguajedeprogramación,queenestecasofuePython.Laconclusiónesqueesunlenguajetotalmenteadecuadoparaloquesequeríahacerdedataminingyquetedamuchísimascomodidadesyopciones.Otraconsecuenciadelanollegadadelossensoresfuetenerqueimprovisarunaalternativaparaasípoderdejarpreparadounprototipoaunquenofuesecondatosreales.Lavaloraciónsobrelosmediosutilizadosparapodercrearesosdatosesmuypositiva,yaqueseobtuvieron

Page 56: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

56

unosdatasetsadecuados para seguir con el estudio y dejar listo el códigopara un futuroanálisis. Es verdad que eso impidió llegar a sacar conclusiones sobre como varían losparámetros,etc.,perocumplióconelobjetivodediseñarelestudio.Comopropuestadecaraaunfuturo,diríaquellevaracaboesteestudiocondatosreales,seríamuy interesante a la hora de solucionar realmente los problemas, e incluso llegar apreverfuturoscomportamientosdelosparámetros.

Page 57: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

57

AGRADECIMIENTOS

Primerodetodo,agradeceraIAESTE,asociacióndeestudiantesdeintercambiodeprácticasquemepermitióirahacerprácticasaPuntonet,laempresaenlaquedesarrolléesteproyecto.

EnPuntonet,agradeceratodoelequipodelqueformépartedurante3meses,loscuálesestabansiemprependientesdecualquierayudaquepudiesenecesitarydispuestosacontribuirenmiformación.Especialmenciónaltutorqueteníaallí,WilsonFreire.

Porotraparte,agradecertambiénlaatenciónycontribucióndemitutor,LluísSolano,porsuseguimientoyconsejosenmomentosesencialesparaeldesarrollodelproyecto.

Yfinalmenteamifamilia,porelapoyoduranteeltiempoqueestabaaquíenBarcelonaacabandoelproyecto.

Page 58: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

58

BIBLIOGRAFÍA

Referenciasbibliográficas

[1] PUNTONET,Instructivoinstalacióndenodos.Ecuador,Quito.2012

[file:///Users/mariafont/Dropbox/TFG/INS%20NOC%2001%20002%20INSTRUCTIVO%20DE%20INSTALACION%20DE%20NODOS.html]*.*[URL,fechadeconsulta]

[2] HONEYWELL,OutsideTemperatureSensors.Alemania

[https://products.ecc.emea.honeywell.com/spain/pdf/en0b0722-ge51r1215.pdf]*.*[URL,fechadeconsulta]

[3] INSTITUTOTECNOLÓGICASUDAMERICANO,CuartodeTelecomunicaciones.2009

[https://es.slideshare.net/guesta4d883/cuarto-de-telecomunicaciones-1166154?next_slideshow=1]*.*[URL,fechadeconsulta]

[4] DITECOM,Monitorizaciónambiental.España.

[http://www.ditecom.com/datasheets/monitorizacion_ip/termometro-ip-HWg-STE.pdf]*.*[URL,fechadeconsulta]

[5] UBIQUITINETWORKS,mFimPortsInterfaceandSensors

[https://www.ubnt.com/mfi/mport/]*.*[URL,fechadeconsulta]

[6] PYBONACCI,Tutorialdematplotlib.pyplot.2012

[https://pybonacci.org/wp-content/uploads/2012/08/tutorial-de-matplotlib-pyplotv0-1-201208311.pdf]**[URL,fechadeconsulta]

Bibliografíacomplementaria

[1] CISCO,CiscoNetworkingAcademy,IntroductiontoIoT

[https://www.netacad.com/es/courses/intro-iot/]*].*[URL,fechadeconsulta]

[2] PONTIFICIAUNIVERSIDADJAVERIANA,Prototiposistemademonitoreoparalainfraestructura

eléctrica de un nodo remoto de telecomunicaciones para la empresa Telefónica Colombia.

Bogotá,D.C.

[www.javeriana.edu.co/biblos/tesis/ingenieria/tesis102.pdf]*.*[URL,fechadeconsulta]

[3] TECNOLOGÍAFÁCIL,QuéesEthernet?.2014

[https://tecnologia-facil.com/que-es/que-es-ethernet/]*.*[URL,fechadeconsulta]

[4] TECNOLOGÍAFÁCIL,QuéesLAN?.2014

Page 59: Monitorización a través de IoT y análisis de datos de un

Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

59

[https://tecnologia-facil.com/que-es/que-es-lan/]*.*[URL,fechadeconsulta]

[5] UBIQUITINETWORKS,mPortQuickStartGuide.2015

[https://dl.ubnt.com/guides/mfi/mFi_mPort_QSG.pdf]*.*[URL,fechadeconsulta]

[6] 1&1DIGITALGUIDE,TutorialdeMongoDB

[https://www.1and1.es/digitalguide/paginas-web/desarrollo-web/tutorial-de-mongodb-primeros-pasos/]*.*[URL,fechadeconsulta]

[7] ROBO3T,Robomongo

[https://robomongo.org]*.*[URL,fechadeconsulta]

[8] MOKAROO,Creacióndedatasets

[https://www.mockaroo.com]*.*[URL,fechadeconsulta]

[9] DATACAMP,DataManipulationwithPython

[https://www.datacamp.com/home]*.*[URL,fechadeconsulta]

[10] -,CoeficientedecorrelaciónlinealdePearson[https://personal.us.es/vararey/adatos2/correlacion.pdf]*.*[URL,fechadeconsulta]

[11] TOM’SPLANNER,Softwaredeplanificación

[https://www.tomsplanner.es]**[URL,fechadeconsulta]

Page 60: Monitorización a través de IoT y análisis de datos de un

ÍNDICEANEXO

A. Datasets....................................................................................................................2I. Datasetrealsensorcorriente.............................................................................................2..................................................................................................................................................2II. DatasetscreadosapartirdeMockaroo..............................................................................4

Temperaturaexterior....................................................................................................................4Temperaturainterior.....................................................................................................................5Humedad.......................................................................................................................................6Energíaeléctrica............................................................................................................................7Movimiento...................................................................................................................................8

B. AlgoritmoPython......................................................................................................9I. Temperaturaexterior.........................................................................................................9II. Temperaturainterior.......................................................................................................10III. Humedad.........................................................................................................................11IV. Energíaeléctrica...........................................................................................................13V. Movimiento.....................................................................................................................18VI. Sensorcorriente...........................................................................................................19VII. Eventosyalarmas........................................................................................................20VIII. Relaciones....................................................................................................................21

C. Ficheros.xlsxcreadoseneventosyalarmas.............................................................22I. Ficheroeventsexport.xlsx(apartirdedatasetsdeMockaroo)..........................................22II. FicheroEventsSensorsexport.xlsx(creadoapartirdelmFiControllerSoftware)...............24

Page 61: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

2

A. DatasetsI. Datasetrealsensorcorriente

mFiminute5.csv

Page 62: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

3

mFievent.csv

Page 63: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

4

II. DatasetscreadosapartirdeMockarooSemuestransólolos40primerosdatosdelos1000creadosTemperaturaexteriorNombrearchivo:Temperaturaext.csv

Page 64: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

5

TemperaturainteriorNombrearchivo:Temperaturaint.csv

Page 65: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

6

HumedadNombrearchivo:Humedad.csv

Page 66: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

7

EnergíaeléctricaNombrearchivo:Energiaeléctrica.csv

Page 67: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

8

MovimientoNombrearchivo:Motion&Door.csv

Page 68: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

9

B. AlgoritmoPythonI. Temperaturaexterior(tempext.py)

importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimporttimeimportdatetimeimportmatplotlib.datesasmdatesdoc=pd.read_csv('Temperaturaext.csv')df=pd.DataFrame(doc,columns=['row','last_val_time','ave'])df.rename(columns={'last_val_time':'time','ave':'value'},inplace=True)#EPOCHTOHUMANdf['time']=df['time']/1000df['time']=df['time'].apply(lambdax:datetime.datetime.fromtimestamp(x))#COMPLETARCAMPOSVACIOS(conelvaloranterior)df['value']=df['value'].fillna(method='ffill')#GRAFICARSENSORESfig,ax=plt.subplots()fig.autofmt_xdate()#Paraadaptarindicexaformatofechaplt.xlabel('Fechayhora')plt.ylabel('Temperatura[oC')plt.title('SensorTemperaturaexterior')plt.plot(df['time'],df['value'])xfmt=mdates.DateFormatter('%d-%m-%y%H:%M')ax.xaxis.set_major_locator(mdates.HourLocator(interval=3))#togetatickevery3hoursax.xaxis.set_major_formatter(xfmt)#VALORESIMPORTANTESmaximo=df['value'].max()minimo=df['value'].min()media=df['value'].mean()plt.close()

Page 69: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

10

II. Temperaturainterior(tempint.py)importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimporttimeimportdatetimeimportmatplotlib.datesasmdatesimportrandomimportmathdoc1=pd.read_csv('Temperaturaint.csv')df1=pd.DataFrame(doc1,columns=['row','last_val_time','ave'])df1.rename(columns={'last_val_time':'time','ave':'value'},inplace=True)#EPOCHTOHUMANdf1['time']=df1['time']/1000df1['time']=df1['time'].apply(lambdax:datetime.datetime.fromtimestamp(x))#COMPLETARCAMPOSVACIOS(conelvaloranterior)df1['value']=df1['value'].fillna(method='ffill')#GRAFICARSENSORESfig,ax=plt.subplots()fig.autofmt_xdate()#Paraadaptarindicexaformatofechaplt.xlabel('Fechayhora')plt.ylabel('Temperatura[oC]')plt.title('SensorTemperaturainterior')plt.plot(df1['time'],df1['value'])xfmt=mdates.DateFormatter('%d-%m-%y%H:%M')ax.xaxis.set_major_locator(mdates.HourLocator(interval=3))#togetatickevery3hoursax.xaxis.set_major_formatter(xfmt)plt.plot(df1['time'][df1['value']>50],df1['value'][df1['value']>50],'bo')#Marcarconunciruclo(bo=blueo)lospuntosporencimade40plt.plot(df1['time'][df1['value']<0],df1['value'][df1['value']<0],'ro')#VALORESIMPORTANTESmaximo=df1['value'].max()minimo=df1['value'].min()media=df1['value'].mean()

Page 70: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

11

#AJUSTARAVALORESREALES(eliminarcuandosetenganlossensores)doc=pd.read_csv('Temperaturaext.csv')df=pd.DataFrame(doc,columns=['row','last_val_time','ave'])df.rename(columns={'last_val_time':'time','ave':'value'},inplace=True)df['value']=df['value'].fillna(method='ffill')#ANADIMOSCOLUMNAVALORESTEMPEXTtempext=df['value']df2=df1df2['Tempext']=tempext#Condiciondesumarorestargradossilatempextessuperioroinferiora17(condicion,valorsisecumple,valorsinosecumple)df2['value']=np.where(df2['Tempext']>17,df2['value']+random.uniform(0.5,1.5),df2['value']-random.uniform(0.5,1.5))#CREARALARMA#DataFramedelaalarma1alarmas1=df2[df2['value']>40]alarmas1['tiposensor']='Temperatura'alarmas1['event']='TemperaturaH'delalarmas1['Tempext']#DataFramedelaalarma2alarmas2=df2[df2['value']<0]alarmas2['tiposensor']='Temperatura'alarmas2['event']='TemperaturaL'delalarmas2['Tempext']#JuntamosDataFramesenunosoloalarmast=alarmas1.append(alarmas2,ignore_index=True)#Ordenamoslasalarmasportiempoalarmast=alarmast.sort_values(by='time')plt.close()III. Humedad(humedad.py)importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimporttimeimportdatetime

Page 71: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

12

importmatplotlib.datesasmdatesimportmathdoc2=pd.read_csv('Humedad.csv')df3=pd.DataFrame(doc2,columns=['row','last_val_time','ave'])df3.rename(columns={'last_val_time':'time','ave':'value'},inplace=True)#EPOCHTOHUMANdf3['time']=df3['time']/1000df3['time']=df3['time'].apply(lambdax:datetime.datetime.fromtimestamp(x))#COMPLETARCAMPOSVACIOS(conelvaloranterior)df3['value']=df3['value'].fillna(method='ffill')#GRAFICARSENSORESfig,ax=plt.subplots()fig.autofmt_xdate()#Paraadaptarindicexaformatofechaplt.xlabel('Fechayhora')plt.ylabel('HumedadRelativa(%)')plt.title('SensorHumedad')plt.plot(df3['time'],df3['value'])xfmt=mdates.DateFormatter('%d-%m-%y%H:%M')ax.xaxis.set_major_locator(mdates.HourLocator(interval=3))#togetatickevery3hoursax.xaxis.set_major_formatter(xfmt)plt.plot(df3['time'][df3['value']>55],df3['value'][df3['value']>55],'bo')#Marcarconunciruclo(bo)lospuntosporencimade40plt.plot(df3['time'][df3['value']<30],df3['value'][df3['value']<30],'ro')#Marcarconunciruclo(bo)lospuntosporencimade40#VALORESIMPORTANTESmaximo=df3['value'].max()minimo=df3['value'].min()media=df3['value'].mean()#CREARALARMA#DataFramedelaalarma1alarmas1=df3[df3['value']>55]alarmas1['tiposensor']='Humedad'alarmas1['event']='HumedadH'#DataFramedelaalarma2alarmas2=df3[df3['value']<30]

Page 72: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

13

alarmas2['tiposensor']='Humedad'alarmas2['event']='HumedadL'#JuntamosDataFramesenunosoloalarmash=alarmas1.append(alarmas2,ignore_index=True)#Ordenamoslasalarmasportiempoalarmash=alarmash.sort_values(by='time')plt.close()IV. Energíaeléctrica(EnergiaElectrica.py)importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimporttimeimportdatetimeimportmatplotlib.datesasmdatesimportmathdoc3=pd.read_csv('EnergiaElectrica.csv')df4=pd.DataFrame(doc3,columns=['row','last_val_time','salida1','salida2','salida3','salida4','salida5','salida6','salida7','salida8'])df4.rename(columns={'last_val_time':'time','ave':'value'},inplace=True)#EPOCHTOHUMANdf4['time']=df4['time']/1000df4['time']=df4['time'].apply(lambdax:datetime.datetime.fromtimestamp(x))#COMPLETARCAMPOSVACIOS(conelvaloranterior)df4['salida1']=df4['salida1'].fillna(method='ffill')df4['salida2']=df4['salida2'].fillna(method='ffill')df4['salida3']=df4['salida3'].fillna(method='ffill')df4['salida4']=df4['salida4'].fillna(method='ffill')df4['salida5']=df4['salida5'].fillna(method='ffill')df4['salida5']=df4['salida5'].fillna(method='ffill')df4['salida6']=df4['salida6'].fillna(method='ffill')df4['salida7']=df4['salida7'].fillna(method='ffill')df4['salida8']=df4['salida8'].fillna(method='ffill')#GRAFICARSENSORESfig,ax=plt.subplots()fig.autofmt_xdate()#Paraadaptarindicexaformatofecha

Page 73: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

14

plt.xlabel('Fechayhora')plt.ylabel('VolatjeVAC')plt.title('SensormPower')plt.plot(df4['time'],df4['salida1'],color='red')plt.plot(df4['time'],df4['salida2'],color='blue')plt.plot(df4['time'],df4['salida3'],color='green')plt.plot(df4['time'],df4['salida4'],color='yellow')plt.plot(df4['time'],df4['salida5'],color='orange')plt.plot(df4['time'],df4['salida6'],color='pink')plt.plot(df4['time'],df4['salida7'],color='black')plt.plot(df4['time'],df4['salida8'],color='brown')xfmt=mdates.DateFormatter('%d-%m-%y%H:%M')ax.xaxis.set_major_locator(mdates.HourLocator(interval=3))#togetatickevery3hoursax.xaxis.set_major_formatter(xfmt)#VALORESIMPORTANTESmaximo1=df4['salida1'].max()minimo1=df4['salida1'].min()media1=df4['salida1'].mean()maximo2=df4['salida2'].max()minimo2=df4['salida2'].min()media2=df4['salida2'].mean()maximo3=df4['salida3'].max()minimo3=df4['salida3'].min()media3=df4['salida3'].mean()maximo4=df4['salida4'].max()minimo4=df4['salida4'].min()media4=df4['salida4'].mean()maximo5=df4['salida5'].max()minimo5=df4['salida5'].min()media5=df4['salida5'].mean()maximo6=df4['salida6'].max()minimo6=df4['salida6'].min()media6=df4['salida6'].mean()maximo7=df4['salida7'].max()minimo7=df4['salida7'].min()media7=df4['salida7'].mean()

Page 74: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

15

maximo8=df4['salida8'].max()minimo8=df4['salida8'].min()media8=df4['salida8'].mean()#Determinarelmax/min/mediaglobal(todalaregleta)list1=[maximo1,maximo2,maximo3,maximo4,maximo5,maximo6,maximo7,maximo8]list2=[minimo1,minimo2,minimo3,minimo4,maximo5,minimo6,minimo7,minimo8]list3=[media1,media2,media3,media4,media5,media6,media7,media8]defmaximo(list):maxnum=0fornuminlist:ifnum>maxnum:maxnum=numelse:maxnum=maxnumreturnmaxnumdefminimo(list):minnum=list[0]fornuminlist:ifnum<minnum:minnum=numelse:minnum=minnumreturnminnumdefmedia(list):suma=0fornuminlist:suma=suma+numreturnsuma/len(list)#CREARALARMA#DataFramedelaalarma1alarmas4=df4[(df4['salida1']>125)]alarmas4['value']=df4['salida1']alarmas4['salida']='1'alarmas5=df4[(df4['salida2']>125)]alarmas5['value']=df4['salida2']alarmas5['salida']='2'

Page 75: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

16

alarmas6=df4[(df4['salida3']>125)]alarmas6['value']=df4['salida3']alarmas6['salida']='3'alarmas7=df4[(df4['salida4']>125)]alarmas7['value']=df4['salida4']alarmas7['salida']='4'alarmas8=df4[(df4['salida5']>125)]alarmas8['value']=df4['salida5']alarmas8['salida']='5'alarmas9=df4[(df4['salida6']>125)]alarmas9['value']=df4['salida6']alarmas9['salida']='6'alarmas10=df4[(df4['salida7']>125)]alarmas10['value']=df4['salida7']alarmas10['salida']='7'alarmas11=df4[(df4['salida8']>125)]alarmas11['value']=df4['salida8']alarmas11['salida']='8'#JuntamosDataFramesalarmase=alarmas4.append(alarmas5,ignore_index=True)alarmase=alarmase.append(alarmas6,ignore_index=True)alarmase=alarmase.append(alarmas7,ignore_index=True)alarmase=alarmase.append(alarmas8,ignore_index=True)alarmase=alarmase.append(alarmas9,ignore_index=True)alarmase=alarmase.append(alarmas10,ignore_index=True)alarmase=alarmase.append(alarmas11,ignore_index=True)alarmase['tiposensor']='mPower'alarmase['event']='VoltajeH'#DataFramedelaalarma2#alarmas2=df4[(10<df4['salida1']<110)|(10<df4['salida2']<110)|(10<df4['salida3']<110)|(10<df4['salida4']<110)|(10<df4['salida5']<110)|(10<df4['salida6']<110)|(10<df4['salida7']<110)|(10<df4['salida8']<110)]alarmas12=df4[(df4['salida1']<110)]alarmas12['value']=df4['salida1']alarmas12['salida']='1'alarmas13=df4[(df4['salida2']<110)]alarmas13['value']=df4['salida2']

Page 76: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

17

alarmas13['salida']='2'alarmas14=df4[(df4['salida3']<110)]alarmas14['value']=df4['salida3']alarmas14['salida']='3'alarmas15=df4[(df4['salida4']<110)]alarmas15['value']=df4['salida4']alarmas15['salida']='4'alarmas16=df4[(df4['salida5']<110)]alarmas16['value']=df4['salida5']alarmas16['salida']='5'alarmas17=df4[(df4['salida6']<110)]alarmas17['value']=df4['salida6']alarmas17['salida']='6'alarmas18=df4[(df4['salida7']<110)]alarmas18['value']=df4['salida7']alarmas18['salida']='7'alarmas19=df4[(df4['salida8']<110)]alarmas19['value']=df4['salida8']alarmas19['salida']='8'#JuntamosDataFramesalarmase2=alarmas12.append(alarmas13,ignore_index=True)alarmase2=alarmase2.append(alarmas14,ignore_index=True)alarmase2=alarmase2.append(alarmas15,ignore_index=True)alarmase2=alarmase2.append(alarmas16,ignore_index=True)alarmase2=alarmase2.append(alarmas17,ignore_index=True)alarmase2=alarmase2.append(alarmas18,ignore_index=True)alarmase2=alarmase2.append(alarmas19,ignore_index=True)alarmase2['tiposensor']='mPower'alarmase2['event']='VoltajeL'#JuntamosDataFramesenunosoloalarmase3=alarmase.append(alarmase2,ignore_index=True)printalarmase3delalarmase3['salida1']delalarmase3['salida2']delalarmase3['salida3']

Page 77: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

18

delalarmase3['salida4']delalarmase3['salida5']delalarmase3['salida6']delalarmase3['salida7']delalarmase3['salida8']#Ordenamoslasalarmasportiempoalarmase3=alarmase3.sort_values(by='time')plt.close()V. Movimiento(movimiento.py)

importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimporttimeimportdatetimeimportmatplotlib.datesasmdatesimportmathimportopenpyxlfrompandasimportExcelWriterdoc4=pd.read_csv('Motion&Door.csv')df5=pd.DataFrame(doc4,columns=['row','last_val_time','sensor','event'])df5.rename(columns={'last_val_time':'time'},inplace=True)#EPOCHTOHUMANdf5['time']=df5['time']/1000df5['time']=df5['time'].apply(lambdax:datetime.datetime.fromtimestamp(x))#COMPLETARCAMPOSVACIOS(conFalseyaquelaprobabilidaddeFalserespectoTrueesmasalta)df5['event']=df5['event'].fillna(False)#Identificarsensordf5['sensor']=df5['sensor'].apply(lambdax:'Sensormovimiento'ifx==1else'Sensorpuerta')move=df5[df5['sensor']=='Sensormovimiento']door=df5[df5['sensor']=='Sensorpuerta']#Recuentodetrue'squesehandado(haocurridoelevento)eventmove=np.sum(move['event'])eventdoor=np.sum(door['event'])

Page 78: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

19

#Dividimosventanaparatenerdosgraficosplt.subplot(1,2,1)plt.pie([eventmove,len(move)-eventmove],labels=['si','no'])plt.title(u'%devecesquesedetectomovimiento')plt.subplot(1,2,2)plt.pie([eventdoor,len(door)-eventdoor],labels=['si','no'])plt.title(u'%devecesqueseabriolapuerta')#CREARALARMA#DataFramedelaalarma1alarmasm=df5[df5['event']==True]alarmasm['tiposensor']=df5['sensor']alarmasm['event']=np.where(alarmasm['tiposensor']=='Sensormovimiento','Haymovimiento','Abrepuerta')alarmasm['value']=df5['event']delalarmasm['sensor']#Ordenamoslasalarmasportiempoalarmasm=alarmasm.sort_values(by='time')plt.close()VI. Sensorcorriente(CurrentSensor.py)importnumpyasnpimportpandasaspdimportdatetimeimportmatplotlib.pyplotaspltimportmatplotlib.datesasmdatesimporttimedf=pd.read_csv('mFiminute5.csv')#CREATEDATAFRAMEdf1=pd.DataFrame(df,columns=['time','size','sId','max','min','ave','last_val','last_val_time'])#CONVERSIONEPOCHTOHUMANTIMEdf1['last_val_time']=df1['last_val_time']/1000

Page 79: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

20

df1['last_val_time']=df1['last_val_time'].apply(lambdax:datetime.datetime.fromtimestamp(x))df1['time']=df1['time']/1000df1['time']=df1['time'].apply(lambdax:datetime.datetime.fromtimestamp(x))#IDENTIFICARSENSOR1o2df1['sId']=df1['sId'].apply(lambdax:'Sensor1'ifx=='ObjectId(59de90453004f138372d638f)'else'Sensor2')maximo=df1['max'].max()minimo=df1['min'].min()media=df1['last_val'].mean()s1=df1[df1['sId']=='Sensor1']s2=df1[df1['sId']=='Sensor2']#GRAFICARSENSORESfig,ax=plt.subplots()fig.autofmt_xdate()#Paraadaptarindicexaformatofechaplt.xlabel('Fechayhora')plt.ylabel('Corriente[amps]')plt.title('Sensorescorriente')plt.plot(s1['time'],s1['ave'])plt.plot(s2['time'],s2['ave'])xfmt=mdates.DateFormatter('%d-%m-%y%H:%M')ax.xaxis.set_major_locator(mdates.HourLocator(interval=3))#togetatickevery3hoursax.xaxis.set_major_formatter(xfmt)plt.close()VII. Eventosyalarmas(events.py)importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimporttimeimportdatetimeimportmatplotlib.datesasmdatesimportrandomimportmathfromtempintimportalarmast

Page 80: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

21

fromhumedadimportalarmashfromEnergiaElectricaimportalarmase3frommovimientoimportalarmasmfromEventsSensorsimportdf1alarmasc=pd.DataFrame()alarmasc['event']=df1['rulename']alarmasc['row']=df1.indexalarmasc['salida']=''alarmasc['time']=df1['time']alarmasc['tiposensor']=df1['sensor']alarmasc['value']=df1['sensor_value']TOT=alarmast.append(alarmash,ignore_index=True)TOT=TOT.append(alarmase3,ignore_index=True)TOT=TOT.append(alarmasm,ignore_index=True)TOT=TOT.append(alarmasc,ignore_index=True)TOT=TOT.sort_values(by='time')#Importaraexcelwriter=pd.ExcelWriter('eventsexport.xlsx')TOT.to_excel(writer,'Sheet1')writer.save()plt.close()VIII. Relaciones(relaciones.py)importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltfromtempextimportdffromCurrentSensorsimportdf1fromtempintimportdf2fromhumedadimportdf3fromEnergiaElectricaimportdf4#RELACIONCORRIENTEYTEMPINTcorriente=df1.ix[:,5]long=len(df1['ave'])-1temp=df2['value'].ix[:long]

Page 81: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

22

printnp.corrcoef(corriente,temp)plt.subplot(1,2,1)plt.scatter(corriente,temp)plt.title('Corrienteytemperaturainterior')plt.ylabel('Tint')plt.xlabel('Corriente')plt.axis([0,20,-20,70])#RELACIONTEMPEXTYTEMPINTtempexte=df.ix[:,2]long1=len(tempexte)-1tempint=df2['value'].ix[:long1]printnp.corrcoef(tempexte,tempint)plt.subplot(1,2,2)plt.scatter(tempexte,tempint)plt.title('TextyTint')plt.ylabel('Tint')plt.xlabel('Text')plt.axis([-10,50,-20,70])plt.close()

C. Ficheros.xlsxcreadoseneventosyalarmasI. Ficheroeventsexport.xlsx(apartirdedatasetsdeMockaroo)

Semuestranlosprimeras40filasdeuntotalde2050.

event row salida time tiposensor value0 HumedadL 755 2017-10-11

16:42:00Humedad 24,42

217 VoltajeL 755 7 2017-10-1116:42:00

mPower 102,11

216 VoltajeL 755 1 2017-10-1116:42:00

mPower 109,46

215 VoltajeH 1 4 2017-10-1116:42:00

mPower 129,63

214 VoltajeL 755 2 2017-10-1116:42:00

mPower 108,94

213 VoltajeH 755 4 2017-10-1116:42:00

mPower 126,54

Page 82: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

23

222 VoltajeH 756 4 2017-10-1116:43:00

mPower 125,76

221 VoltajeH 756 6 2017-10-1116:43:00

mPower 125,77

220 VoltajeL 756 1 2017-10-1116:43:00

mPower 109,67

219 VoltajeL 2 4 2017-10-1116:43:00

mPower 100,64

218 VoltajeL 2 3 2017-10-1116:43:00

mPower 109,67

1580 Haymovimiento

756 2017-10-1116:43:00

Sensormovimiento

1

1581 Haymovimiento

757 2017-10-1116:44:00

Sensormovimiento

1

223 VoltajeL 3 3 2017-10-1116:44:00

mPower 108,47

1 HumedadH 3 2017-10-1116:44:00

Humedad 57,48

228 VoltajeH 4 5 2017-10-1116:45:00

mPower 125,01

1582 Abrepuerta 758 2017-10-1116:45:00

Sensorpuerta 1

227 VoltajeL 4 6 2017-10-1116:45:00

mPower 107,58

226 VoltajeL 4 3 2017-10-1116:45:00

mPower 109,3

225 VoltajeL 4 8 2017-10-1116:45:00

mPower 107,73

224 VoltajeL 758 1 2017-10-1116:45:00

mPower 109,43

2 HumedadL 758 2017-10-1116:45:00

Humedad 25,45

229 VoltajeL 759 1 2017-10-1116:46:00

mPower 107,21

230 VoltajeL 5 8 2017-10-1116:46:00

mPower 107,73

3 HumedadL 6 2017-10-1116:47:00

Humedad 26,46

4 HumedadH 760 2017-10-1116:47:00

Humedad 57,13

1583 Abrepuerta 760 2017-10-1116:47:00

Sensorpuerta 1

1584 Abrepuerta 6 2017-10-1116:47:00

Sensorpuerta 1

231 VoltajeL 6 2 2017-10-1116:47:00

mPower 108,7

234 VoltajeL 7 3 2017-10-1116:48:00

mPower 108,34

232 VoltajeL 7 2 2017-10-1116:48:00

mPower 108,71

Page 83: Monitorización a través de IoT y análisis de datos de un

ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones

24

233 VoltajeH 7 5 2017-10-1116:48:00

mPower 125,31

238 VoltajeL 8 1 2017-10-1116:49:00

mPower 105,67

239 VoltajeL 762 1 2017-10-1116:49:00

mPower 108,55

237 VoltajeH 8 4 2017-10-1116:49:00

mPower 127,17

235 VoltajeL 762 3 2017-10-1116:49:00

mPower 108,3

5 HumedadL 762 2017-10-1116:49:00

Humedad 15,23

236 VoltajeH 762 7 2017-10-1116:49:00

mPower 126,14

1585 Haymovimiento

9 2017-10-1116:50:00

Sensormovimiento

1

II. FicheroEventsSensorsexport.xlsx(creadoapartirdelmFiControllerSoftware)

time rulename sensor sensor_value45 2017-10-1718:05:21 CorrienteL SensorCorriente

20,6543

48 2017-10-1718:35:26 CorrienteL SensorCorriente2

0,4021

53 2017-10-1723:32:12 CorrienteH SensorCorriente1

0,0163

56 2017-10-1723:41:55 CorrienteL SensorCorriente2

0,4645