Monitorización a través de IoT y análisis de datos de un ...
Transcript of 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
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.
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
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
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
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
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.
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.
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
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.
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
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.
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
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
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.
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.
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
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
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.
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
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
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.
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
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
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..
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
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
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:
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.
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
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).
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.
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á.
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.
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
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:
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.
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).
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"
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"
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.
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.
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.
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.
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:
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.
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
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)
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.
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
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.
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
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
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.
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
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.
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.
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
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]
Í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
ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones
2
A. DatasetsI. Datasetrealsensorcorriente
mFiminute5.csv
…
ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones
3
mFievent.csv
ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones
4
II. DatasetscreadosapartirdeMockarooSemuestransólolos40primerosdatosdelos1000creadosTemperaturaexteriorNombrearchivo:Temperaturaext.csv
ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones
5
TemperaturainteriorNombrearchivo:Temperaturaint.csv
ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones
6
HumedadNombrearchivo:Humedad.csv
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
ANEXO: Monitorización a través de IoT y análisis de datos de un nodo de telecomunicaciones
8
MovimientoNombrearchivo:Motion&Door.csv
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()
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()
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
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]
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
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()
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'
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']
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']
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'])
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
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
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]
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
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
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